今天,我们来讲讲 现实生活中的T-test和如何在Excel中实现。
上次,我们讲了T test的基本原理,T test的原理简单,但是现实总是骨感的,统计学遇到错综复杂的骨感现实,总想着要给她填填补补,各种调整和修正, 今天我们来看看。(附Excel 计算文件)
T-test 基础回顾
T-test的基础,要从张三说起。 张三是个果农,张三自从上次自学了T test后,他的苹果就拥有了数学基因,得到了中小学家长的疯狂抢购,生意是蒸蒸日上。有钱人张三过上了富足生活,却觉得日渐乏味,于是养了一条宠物犬,天天喂它鸡鸭鱼肉,狗狗日渐丰满。
但是,张三还是喜欢苗条的狗狗,于是决定不能再放纵下去了,天天唠叨: 你看看你,又胖了。 狗狗, 矢口否认,汪汪汪。
学过统计的张三不甘示弱,张三祭出了他的苹果秤! 我们用数据说话。
上有计策,下有对策。狗狗在秤上蹦蹦跳跳,不得安定,读数也就没那么准确了。
最后,张三记录两个月的小狗体重,每个月在月末测5次读数:
本月 [6.88, 6.73, 6.69, 6.72, 6.64] kg
上月 [6.61, 6.72, 6.66, 6.50, 6.58] kg
所以与上个月相比,狗狗真的变重了吗?
张三悠然的写出以下计算过程(有疑问的可以回顾往期文章)
我们记 上个月体重为a, 这个月为b, 有
我们假设体重没变化,来计算取得0.3这样的变化的概率。为了得到一个标准的t-分布,我们计算t值
,
这个值就是t值,此时的分布是一个标准的t-分布,不需要考虑SE了,但需要考虑自由度,自由度为 5+5-2 =8,
如果体重没变化,这个t值应该遵从均值为0, 自由度为8的t-分布。 查表可知,2.16这个值对应的双尾p值为0.063, p > 0.05, 狗狗的体重没有显著变重, 数据的平均值的有6%的概率是偶然产生的。
Unequal sample size with equal variance
过了几天,张三还是心有不服,说数据太少了,多测几次才有,于是乎,这次李梅再次上秤,又测了三次,分别为 6.67kg,6.78kg, 6.65kg
于是乎,a = [6.61, 6.72, 6.66, 6.50, 6.58], b = [6.88, 6.73, 6.69, 6.72, 6.64,6.67,6.78, 6.65],这就面临一个问题了,当我们的样本量不相等时,是否还可以用之前的计算方式。
张三查阅了各种资料发现,在假设相等方差时,通用的计算标准误SE的方法为pooled variance, 公式为
我们可以看到,pooled variance 所用的 sum of square 其实就是两个样本sum of square 的和,我们假设两个Sample方差相等,所以可以使用这个variance来代表这两个sample的variance, 所以叫pooled variance。
在这里,我们发现当sample size 相等时,这两个公式算出的SE是一样的。
张三拿到了这个公式,很开心地把数字代入, 算得SE = 0.046, t=2.306, p = 0.0416。于是他终于有理由管住狗狗的嘴了。
Unequal sample size with unequal variance
但与此同时,他在好奇心的驱使下,越来越想知道,当我们预设方差不等时,我们要如何计算p值。
我们看一下原来的公式
variance 是通过两个样本variance直接相加得出的, 对样本方差无假设,所以在这里是可以直接用,算得SE = 0.046
但是,骨感的现实需要让我们对Degree of freedom做一定的modification(welch modification)才能最大概率的接近真实。
新的Degree of freedom公式为:
好,这个公式很丑,但我们带入公式后,可得 df = 8.32
t = 2.28,p = 0.052
综上,小狗狗可能并没有显著变重。
故事到了这里,可能同学们就要发问了,像这种假设方差相等和不等时,p值一个显著一个不显著的情况,我们如何是好
结语
p值在0.05左右徘徊闪烁,犹如薛定谔的猫咪,是一个萦绕在统计学家脑中的灵魂质问,尤其是对于做科研的我们,p值微微大于0.05,简直就和见到鬼一样。
在R中,t.test默认选项是假设方差不等,在python的scipy中,stats.ttest_ind 默认假设方差相等。可见,统计学家会更加倾向于使用更加严格的方式去做假设检验(方差不等会导致更大的p值),在该问题下,我也看到国外论坛有人倡导无论何种情况,都建议假设方差不等。而python的使用者更加考虑工程问题,对p值的没有那么依赖。毕竟p=0.05这个硬指标说来总有些不太合理的地方,一味强调p值,而忽略了问题本身并不能帮助我们解决问题。
最后,附上一份Excel文件,里面有Excel计算P值的方法
(可以使用两组数据求T test,也可以直接输入sd和mean,sample size求p值)。
后台回复
T test
领取。
2020-05-11
网友评论