我在R中模拟了数据,并进行了2-sample t-test (2-sided hypothesis)。我假设alpha值为0.05,计算p值来决定我是否接受或拒绝原假设。我现在需要计算每个数据集和图的功率。我需要你帮我计算已知阿尔法时的能量。关于我的数据的更多信息:对于每个样本1和样本2,我有100个样本-rnorm(100,mean1,sd1)
的数据集。
示例数据:
sample1 <- replicate(100,rnorm(100,0,1))
sample2 <- replicate(100,rnorm(100,5,3))
我认为你的意思是这样的:
通过对每组样本运行测试来提取p值向量
alpha <- 0.05
nsim <- 100
set.seed(101)
sample1 <- replicate(nsim, rnorm(100,0,1))
sample2 <- replicate(nsim, rnorm(100,5,3))
pvalues <- rep(NA, nsim)
for (i in 1:nsim) {
tt <- t.test(sample1[,i], sample2[,i]
pvalues[i] <- tt$p.value
}
计算能力(p<alpha)>
您可以对sum(pvalues<alpha)/nsim
执行此操作,但是
mean(pvalues<alpha)
稍微紧凑一些。(pvalues < alpha
为TRUE
或FALSE
;对其应用sum()
或mean()
等数字函数,将FALSE
转换为0,TRUE
转换为1;取均值计算值的比例,pvalues < alpha
恰好是拒绝零假设→幂的观察概率。
正如@neilfws指出的,使用power.t.test()
可以更有效地找到t检验的功能(然而,模拟对于处理不符合标准框架的异常情况仍然有用)。