用MATLAB做T检验(ttest)
t-检验:
t-检验,又称student‘s t-test,可以用于比较两组数据是否来自同一分布(可以用于比较两组数据的区分度),假设了数据的正态性,并反应两组数据的方差在统计上是否有显著差异。
matlab中提供了两种相同形式的方法来解决这一假设检验问题,分别为ttest方法和ttest2方法,两者的参数、返回值类型均相同,不同之处在于ttest方法做的是 One-sample and paired-sample t-test,而ttest2则是 Two-sample t-test with pooled or unpooled variance estimate, performs an unpaired two-sample t-test。但是这里至于paired和unpaired之间的区别我却还没搞清楚,只是在Student's t-test中看到了如下这样一段解释:
“Two-sample t-tests for a difference in mean involve independent samples, paired samples and overlapping samples. Pairedt-tests are a form of blocking, and have greater power than unpaired tests when the paired units are similar with respect to "noise factors" that are independent of membership in the two groups being compared.[8] In a different context, paired t-tests can be used to reduce the effects ofconfounding factors in an observational study.”
因此粗略认为paired是考虑了噪声因素的。
在同样的两组数据上分别用ttest和ttest2方法得出的结果进行比较,发现ttest返回的参数p普遍更小,且置信区间ci也更小。
最常用用法:
[H,P,CI]=ttest2(x,y);(用法上ttest和ttest2相同,完整形式为[H,P,CI, STATS]=ttest2(x,y, ALPHA);)
其中,x,y均为行向量(维度必须相同),各表示一组数据,ALPHA为可选参数,表示设置一个值作为t检验执行的显著性水平(performs the test at the significance level
(100*ALPHA)%),在不设置ALPHA的情况下默认ALPHA为0.05,即计算x和y在5%的显著性水平下是否来自同一分布(假设是否被接受)
结果:H=0,则表明零假设在5%的置信度下不被拒绝(根据当设置x=y时候,返回的H=0推断而来),即x,y在统计上可看做来自同一分布的数据;H=1,表明零假设被拒绝,即x,y在统计上认为是来自不同分布的数据,即有区分度。
P为一个概率,matlab help中的解释是“ the p-value, i.e., the probability of observing the given result, or one more extreme, by chance if the null hypothesis is true. Small values of P cast doubt on the validity of the null hypothesis.” 暂且认为表示判断值在真实分布中被观察到的概率(?不太懂)
CI为置信区间(confidence interval),表示“a 100*(1-ALPHA)% confidence interval for the true difference of population means”,即达到100*(1-ALPHA)%的置信度的数据区间(?)
应用:常与k-fold crossValidation(交叉验证)联用可以用于两种算法效果的比较,例如A1,A2两算法得出的结果分别为x,y,且从均值上看mean(x)>mean(y),则对[h,p,ci]=ttest2(x,y);当h=1时,表明可以从统计上断定算法A1的结果大于(?)A2的结果(即两组数据均值的比较是有意义的),h=0则表示不能根据平均值来断定两组数据的大小关系(因为区分度小)
临时学的,没经过太多测试,不一定对,还请高手指教。
另外还有在某个ppt(http://jura.wi.mit.edu/bio/education/hot_topics/pdf/matlab.pdf)中看到这样一页

参考资料:
经验+自身理解
matlab 7.11.0(R2010b)的帮助文档
wikipedia
http://www.biosino.org/pages/newhtm/r/schtml/One_002d-and-two_002dsample-tests.html
本文中提到的pair应该如此理解:两个样本是有顺序的(比如两个病人24个整点的体温),两个同一序号(比如说6点)的体温为一个配对.而不配对的则不考虑这些,把24个体温放在一起看分布情况
用MATLAB做T检验(ttest)的更多相关文章
- matlab做聚类分析
说明:如果是要用matlab做kmeans聚类分析,直接使用函数kmeans即可.使用方法:kmeans(输入矩阵,分类个数k). 转载一: MATLAB提供了两种方法进行聚类分析: 1.利用 clu ...
- matlab做曲线拟合
python 做曲线拟合 https://blog.csdn.net/qq_16583687/article/details/72723708 matlab做拟合函数,可以在命令行输入:数据x,数据y ...
- matlab做gaussian高斯滤波
原文链接:https://blog.csdn.net/humanking7/article/details/46826105 核心提示 在Matlab中高斯滤波非常方便,主要涉及到下面两个函数: 函数 ...
- MATLAB做主成分分析(PCA)
简单的主成分分析.第一次见识PCA,我的认识是,尽量用更少的维度来描述数据,以达到理想(虽不是最好,但是''性价比''最高)的效果. %% 主成分分析降维 clear; % 参数初始化 inputfi ...
- 如何使用Matlab做数字信号处理的仿真1
例如 第三版数字信号处理P51 -1.14习题时域离散信号的相关性研究x(n)=Asin(ωn)+u(n),其中ω=π/16,u(n)是白噪声,现要求 ⑴.产生均值为0,功率P=0.1的均匀分布白噪声 ...
- 统计中的f检验和t检验的区别
参考:http://emuch.net/html/201102/2841741.html 首先是目的不同.F检验用于比较两种分析方法是否存在显著差异(单边检验)或者两种方法紧密度是否存在差异(双边检验 ...
- Matlab与Windows桌面提醒
最近在实验室用Matlab做实验,一次训练下来最少得也得5到10分钟吧.在Matlab运行的过程中,又不太好去做别的事情,因为5到10分钟的时间实在有点短.但是,眼睁睁看着代码的运行的话,5分钟又实在 ...
- 【我是老中医】Win10系统下MATLAB无法正常打开的解决方案
转眼大四了,要开始做毕设了,导师给的题目要用到他之前做的东西,都是MATLAB做的,所以不太熟悉MATLAB的我也得用这玩意儿了,想想自己目前也就大二的DSS实验和大三的AI实验用过MATLAB,当时 ...
- matlab的滤波器仿真——低通滤波器与插值滤波器
项目里面有用到插值滤波器的场合,用matlab做了前期的滤波器性能仿真,产生的滤波器系数保存下来输入到FPGA IP中使用即可. 下面是仿真的代码 % clear all close all Nx = ...
随机推荐
- Vue为什么没有templateUrl
Why Vue.js doesn't support templateURL Vue.js为什么不支持templateUrl模式 原因 templateUrl使用ajax的方式在运行时加载templa ...
- eclipse/STS 提升注解提示速度
window -- preference -- 输入content -- java -- editor -- content Assist --auto delay 选项 改为100或者更低 提示速 ...
- 用pyenv和virtualenv搭建单机多版本python虚拟开发环境
作为主流开发语言, 用python 开发的程序越来越多. 方便的是大多linux系统里面都默认集成了python, 开发可以随时随地开始. 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试 ...
- 索引唯一性扫描(INDEX UNIQUE SCAN)
索引唯一性扫描(INDEX UNIQUE SCAN)是针对唯一性索引(UNIQUE INDEX)的扫描,它仅仅适用于where条件里是等值查询的目标SQL.因为扫描的对象是唯一性索引,所 ...
- java 怎么打印变量
//Test.java public class Test16{ public static void main(String args[]){ int age=28; System.out.prin ...
- SSH黄金参数
ssh -o ConnectTimeout=3 -o ConnectionAttempts=5 -o PasswordAuthentication=no -o StrictHostKeyCheckin ...
- Huginn部署到 Heroku
折腾了几个小时,现在记录下安装步骤 1.本机Win10,放弃本地安装,官网建议也是, 2.安装虚拟机,装ubuntu系统 3.更换国内源(包括apt和gem,bunlde)ruby中国 4.注册her ...
- 浏览器跨域问题(jsonp)——jsonp详解
json相信大家都用的多,jsonp我就一直没有机会用到,但也经常看到,只知道是“用来跨域的”,一直不知道具体是个什么东西.今天总算搞明白了.下面一步步来搞清楚jsonp是个什么玩意. 同源策略 首先 ...
- keras embeding设置初始值的两种方式
随机初始化Embedding from keras.models import Sequential from keras.layers import Embedding import numpy a ...
- [转]awesome-tensorflow-chinese
模型项目 Domain Transfer Network - Implementation of Unsupervised Cross-Domain Image Generation Show, At ...