参考资料:R语言实战【第2版】
1、比例检验
当比较两个比例时,可使用pwr.2p.test()函数进行功效分析。格式为:
pwr.2p.test(h=, n=, sig.level=, power=, alternative=)
其中,h是效应值,n是各相同的样本量。效应值h的定义如下:
在R语言中可以使用ES.h(p1,p2)函数进行计算。
当各组中的n不相同,则使用函数:
pwr.2p2n.test(h=, n1=, n2=, sig.level=, power=, alternative=)
sig.level为显著性水平;
power为功效值;
alternative为备择假设,默认是双尾检验("two.sided"),也可以设置为单位检验("greater"或"less")。
假设我们对某流行妖族能缓解60%使用者的症状表示怀疑。而一种更贵的新药如果能缓解65%使用者的症状,就会被投放到市场中。此时,在研究中我们需要多少受试者才能检测到这两种药物存在这一特定的差异?
假设我们想有90%的把握得出新药更有效的结论,并且希望有95%的把握不会误得结论。另外,我们只对评价新药是否比标准药物更好感兴趣,因此只需要用单边检验,代码如下:
#加载pwr包
library(pwr)
# 比例检验功效分析
pwr.2p.test(
h=ES.h(0.65,0.6),
sig.level=0.05,
power=0.9,
alternative = "greater"
)
结果表明:为满足上面的要求,在本研究中需要1605个人试用新药,1605个人试用已有药物。
2、卡方检验
卡方检验常常用来评价两个类别变量的关系。典型的零假设是变量之间独立,备择假设是不独立。pwr.chisq.test()函数可以评估卡方检验的功效。格式为:
pwr.chisq.test(w=, N=, df=, sig.level=, power=)
其中,w是效应值,N是总样本大小,df是自由度。此处,效应值w定义为:
,其中p0_i为H0(原假设)时第i个单元格中的概率;p1_1为H1(备择假设)时第i单元格中的概率。函数ES.w2(p)可以计算双因素列联表中备择假设的效应值,p是一个假设的双因素概率表。
书中案例研究人种与工作晋升的关系。我们的预期样本70%是白种人,10%是美国黑人,20%是西班牙裔人。假设我们认为相比30%的美国黑人和50%西班牙裔人,60%的白种人更容易晋升。研究假设的晋升概率如下表:
从表中看到,我们预期总人数的42%是晋升的白种人(0.42=0.7*0.6),总人数的7%是未晋升的美国黑人(0.07=0.1*0.7)。让我们去0.05显著性水平和0.9的预期功效水平。双因素列联表的自由度为(r-1)(c-1),r是行数,c是列数。计算如下:
prob<-matrix(c(0.42,0.28,0.03,0.07,0.10,0.10),byrow=TRUE,nrow=3)
# 卡方检验功效分析
pwr.chisq.test(
ES.w2(prob),
df=2,
sig.level=0.05,
power=0.9
)
结果表明:在既定的效应值、功效水平和显著性水平下,该研究需要369为受试者才能检验人种与工作晋升的关系。