これはシミュレーションを使用して行うことができます。
テストを実行し、引数としてラムダとサンプルサイズを受け入れる関数を記述します(上で良いスタートがあります)。
ここで、ラムダとサンプルサイズの特定のセットについて、関数を何度も実行します(Rのレプリケート関数はそのために最適です)。次に、検出力は、帰無仮説を棄却する時間の比率にすぎません。平均関数を使用して比率を計算し、prop.testを使用して検出力に信頼区間を与えることができます。
ここにいくつかのサンプルコードがあります:
tmpfunc1 <- function(l1, l2=l1, n1=10, n2=n1) {
x1 <- rpois(n1, l1)
x2 <- rpois(n2, l2)
m1 <- mean(x1)
m2 <- mean(x2)
m <- mean( c(x1,x2) )
ll <- sum( dpois(x1, m1, log=TRUE) ) + sum( dpois(x2, m2, log=TRUE) ) -
sum( dpois(x1, m, log=TRUE) ) - sum( dpois(x2, m, log=TRUE) )
pchisq(2*ll, 1, lower=FALSE)
}
# verify under null n=10
out1 <- replicate(10000, tmpfunc1(3))
mean(out1 <= 0.05)
hist(out1)
prop.test( sum(out1<=0.05), 10000 )$conf.int
# power for l1=3, l2=3.5, n1=n2=10
out2 <- replicate(10000, tmpfunc1(3,3.5))
mean(out2 <= 0.05)
hist(out2)
# power for l1=3, l2=3.5, n1=n2=50
out3 <- replicate(10000, tmpfunc1(3,3.5,n1=50))
mean(out3 <= 0.05)
hist(out3)
私の結果(異なるシードでは異なりますが、類似しているはずです)は、タイプIエラーレート(アルファ)が0.0496(95%CI 0.0455-0.0541)であることを示しています。これは0.05に近く、10000を増やすことでより高い精度を得ることができます複製コマンドで。私が計算したパワーは、9.86%と28.6%でした。ヒストグラムは厳密には必要ありませんが、パターンを見ることは好きです。