1. ttest与ttest2的区别:
- 单样本,配对样本用 ttest
- 不配对样本(独立样本)用ttest2
二者的公式也不一样,但我不知道怎么打公式就不打了。
2. 导入数据
df = xlsread("C:\Users\Bai\Desktop\ex_corr.xlsx")
x=df(:1)
y=df(:2)
3.
[h,p,ci,stats] = ttest(x) ##数据均值是否等于0
[h,p,ci,stats] = ttest(x,m) ##数据均值是否等于m
[h,p,ci,stats] = ttest(x,y) ##两个配对样本
[h,p,ci,stats] = ttest2(x,y) ##两个不配对样本
h 0 or 1 接受/拒绝原假设
p pvalue
ci 置信区间
stats 统计量
tail: right 均值是否大于m ; left 小于m; both 等于m
4. vartype
help ttest2后,有一个参数值得注意:
vartype: equal or unequal
equal: 两组的方差一致
unequal: 两组的方差不一致
- 如何判断两组方查是否一致呢,palisade给出很好的解释,搬运过来:
直接说结论:选择unequal
原因:很多书和计算器用“pooling”这个术语,如果两组的方差一致,你就可以“pool the dataset”,假定他们是从同一个数据集中出来的。
检验两组不同数据的方差是否相等,需要用F检验,但如果F检验出得出很大的P值,你只能说没法成功拒绝原假设,你并不能证明他。而且,F检验需要两组数据符合正态分布,不像T检验大概是正态分布就可以了。你永远不知道什么时候是正态分布的。所以保守的来讲,要选择unequal。即使你选择unequal,pooling or not 只有微小的区别。用unequal不需要你作出“我确定事实就是如此”的假设,也不会对你的结果造成很大的影响。
原文:http://kb.palisade.com/index.php?pg=kb.page&id=1708
最后,学matblab随手记感想:为什么实验室都用matlab我就也要从头学,这些东西明明用R已经可以做的很好了。并且实验室不分享脚本,我就更找不到学他的理由了……