我试图了解两个独立样本 t 检验的功率计算(不假设方差相等,所以我使用了 Satterthwaite)。
这是我发现有助于理解该过程的图表:
所以我假设给定以下关于两个总体的信息并给出样本量:
mu1<-5
mu2<-6
sd1<-3
sd2<-2
n1<-20
n2<-20
我可以计算与具有 0.05 上尾概率相关的空值下的临界值:
df<-(((sd1^2/n1)+(sd2^2/n2)^2)^2) / ( ((sd1^2/n1)^2)/(n1-1) + ((sd2^2/n2)^2)/(n2-1) )
CV<- qt(0.95,df) #equals 1.730018
然后计算备择假设(在这种情况下,我学到的是“非中心 t 分布”)。我使用非中心分布和上面找到的临界值计算了上图中的 beta。这是R中的完整脚本:
#under alternative
mu1<-5
mu2<-6
sd1<-3
sd2<-2
n1<-20
n2<-20
#Under null
Sp<-sqrt(((n1-1)*sd1^2+(n2-1)*sd2^2)/(n1+n2-2))
df<-(((sd1^2/n1)+(sd2^2/n2)^2)^2) / ( ((sd1^2/n1)^2)/(n1-1) + ((sd2^2/n2)^2)/(n2-1) )
CV<- qt(0.95,df)
#under alternative
diff<-mu1-mu2
t<-(diff)/sqrt((sd1^2/n1)+ (sd2^2/n2))
ncp<-(diff/sqrt((sd1^2/n1)+(sd2^2/n2)))
#power
1-pt(t, df, ncp)
这给出了 0.4935132 的功率值。
这是正确的方法吗?我发现如果我使用其他功率计算软件(比如 SAS,我认为我已经设置了与下面的问题等效的软件)我会得到另一个答案(来自 SAS 是 0.33)。
SAS 代码:
proc power;
twosamplemeans test=diff_satt
meandiff = 1
groupstddevs = 3 | 2
groupweights = (1 1)
ntotal = 40
power = .
sides=1;
run;
最终,我希望获得一种理解,使我能够查看更复杂程序的模拟。
编辑:我发现了我的错误。本来应该
1-pt(CV, df, ncp) 不是 1-pt(t, df, ncp)