今天给大家写写如何用R软件计算t检验中统计效能和样本量。
实例描述
现在有一个公司声称他们的灯泡一般能用850±50个小时,但是我买了一个发现用了700个小时就坏了,那我就怀疑了,商家虚假宣传,那么我该如何证明呢?或者说,我要测试多少个灯泡能证明商家撒谎?
在这个例子中我们的目的就是要弄明白我们到底需要测试多少个灯泡,似乎就是一个算样本量的问题,在一个我们提前设定的显著性水平和想要的统计效能下算出这个样本量。
这么样思考好像挺难的,我们不妨先反过来想:
商家不是说他的灯泡能用850±50个小时嘛,而我坚信商家在撒谎,我认为商家多说了比如说40个小时,那么此时我们就有
- H0:灯泡能用850小时,
- H1:灯泡能用810小时,
这时我们会进行一个统计检验,显著性水平大多数情况会设定在0.05,意思是一类错误的概率是0.05,就是说当H0为真的时候我们只有0.05的可能性拒绝它,就是说我们这个统计检验做出来灯泡确实用不到850小时,95%的情况下我们都是可靠的,这个叫做significance level;
那么要做这个检验我们还要规定一个东西叫做统计效能power,通常设置为0.9,就是说我希望我做这个统计,如果灯泡真的用不到850小时,90%的情况下我能够拒绝H0。
以上两点,我们首先确定检验的可靠性,再次确定这个检验值得做确实有效力,想的都挺美,只要我做了检验,如果灯泡真的用不到850小时,90%的情况下我都能够拒绝H0得到阳性结果,而且呀,我得到阳性结果,假阳性的概率只有0.05。
别急,标准差在整个过程中也有重要影响,我们想象一个极端的例子,比如如果灯泡使用寿命没有变异,就是商家说能用850小时,那么每个灯泡都应该能用850小时,此时,只要一个灯泡就能解决我们的怀疑,但是现实总是不确定的,有的能1000小时,有的能用500小时,我们只能多取点样本以期覆盖更多的变异,所以变异常常也会影响我们做统计时的样本量,这就扯出来了我们要讨论的另一个东西,叫做效应量(下一部分会写它如何来的)。
实际上,用R语言计算统计效能
在R语言中,对于均值检验的统计功效和样本量计算是非常容易的,我们只用规定另外3个值就行,比如我要计算效应量d为(850-810)/50,统计功效为0.9,显著性水平是0.05时的样本量,写如下代码就可以:
library(pwr)
pwr.t.test(d=(850-810)/50,power=0.9,sig.level=0.05,type="one.sample",alternative="two.sided")
结果就很明确了,我们只需要测试19个灯泡就可以在90%的情况下拒绝H0(如果灯泡真的用不到850小时的话)。
上面是从确定统计效能为0.9,显著性水平为0.05时求样本量。
我们还可以确定样本量和显著性水平后求统计效能:
pwr.t.test(d=(850-810)/50,n=10,sig.level=0.05,type="one.sample",alternative="two.sided")
从结果看,我们将样本量设置为10的话,求得的统计效能就是0.616,也就是说,如果商家的灯泡真的用不到850小时,我只用10个样本来检验的话,有差不多40%的可能性是检验不出来的。
还有我们其实也可以很自然的推测出,要实现相同的统计效能,如果变异小,那么需要的样本量也就小(你可以想象刚刚的极端例子),我们可以验证一下:
pwr.t.test(d=(850-810)/50,power=0.8,sig.level=0.05,type="one.sample",alternative="two.sided")
pwr.t.test(d=(850-810)/30,power=0.8,sig.level=0.05,type="one.sample",alternative="two.sided")
上面的代码一个标准差是50,另一个是30,我们要实现0.8的统计效能,得到的样本量一个是14,一个是6.5,基本上我们的推测得到了验证。
这儿再提一句,对于我们例子中的t检验,我们感兴趣是两个样本均值之间的差异,而非单个个体之间的差异,而对于两个样本之间差异大小真正起作用的就是均值和标准差的比。
这个比就能够很好地描述两样本之间的差异,这个就叫做效应量:effect size
你可以看,下面的代码因为效应量其实是一样的,所以最后得到的我们需要的样本量都是18.4
pwr.t.test(d=(50-10)/50,power=0.9,sig.level=0.05,type="one.sample",alternative="two.sided")
pwr.t.test(d=(1-.2),power=0.9,sig.level=0.05,type="one.sample",alternative="two.sided")
很多时候我们这个效应量并不是很好得到,所以经常会有很多人问我,显著性水平,统计效能都可以默认,那么我计算样本量时研究中的效应量设多少啊?这个就得去查文献或者做预试验了。
小结
今天给大家写了t检验中样本量和统计效能的计算,前面应该还有些铺垫的,不过我感觉别的作者已经写的非常清晰了,大家可以参考AhaDad的文章:
感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,也欢迎大家的意见和建议。
如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、论文、报告、考试等发愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何问题,都可以联系我。因为我可以给您提供最好的,最详细和耐心的数据分析服务。
如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节等等统计技巧有任何问题,请私信我,获取最详细和耐心的指导。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
加油吧,打工人!