Perhitungan daya untuk uji rasio kemungkinan

8

Saya memiliki dua variabel acak poisson independen, dan , dengan dan . Saya ingin menguji versus alternatif .X1X2X1Pois(λ1)X2Pois(λ2)H0:λ1=λ2H1:λ1λ2

Saya sudah mendapatkan estimasi kemungkinan maksimum berdasarkan hipotesis nol dan alternatif (model), dan berdasarkan pada itu saya menghitung statistik uji rasio kemungkinan (LRT) (kode R diberikan di bawah).

Sekarang saya tertarik untuk menghitung kekuatan tes berdasarkan:

  1. Alfa tetap (kesalahan tipe 1) = 0,05.
  2. Dengan menggunakan ukuran sampel yang berbeda (n), katakanlah n = 5, 10, 20, 50, 100.
  3. Kombinasi berbeda dari dan , yang akan mengubah statistik LRT (dihitung sebagai berikut).λ1λ2LRTstat

Ini kode R saya:

X1 = rpois(λ1); X2 = rpois(λ2)
Xbar = (X1+X2)/2
LLRNum = dpois(X1, X1) * dpois(X2, X2)
LLRDenom = dpois(X1, Xbar) * dpois(X2, Xbar)
LRTstat = 2*log(LLRNum/LLRDenom)

Dari sini, bagaimana saya bisa melanjutkan dengan perhitungan daya (lebih disukai di R)?

Adam
sumber

Jawaban:

9

Anda dapat melakukan ini menggunakan simulasi.

Tulis fungsi yang melakukan tes Anda dan menerima lambdas dan ukuran sampel sebagai argumen (Anda memiliki awal yang baik di atas).

Sekarang untuk satu set lambdas dan ukuran sampel menjalankan fungsi beberapa kali (fungsi replikasi dalam R sangat bagus untuk itu). Maka kekuatan hanyalah proporsi kali Anda menolak hipotesis nol, Anda dapat menggunakan fungsi rata-rata untuk menghitung proporsi dan prop.test untuk memberikan interval kepercayaan pada kekuatan.

Berikut ini beberapa contoh kode:

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)

Hasil saya (keinginan Anda berbeda dengan seed berbeda, tetapi harus serupa) menunjukkan tingkat kesalahan tipe I (alpha) 0,0496 (95% CI 0,0455-0,0541) yang mendekati 0,05, lebih presisi dapat diperoleh dengan meningkatkan 10000 dalam perintah replikasi. Kekuatan yang saya hitung adalah: 9,86% dan 28,6%. Histogram tidak sepenuhnya diperlukan, tetapi saya suka melihat polanya.

Greg Snow
sumber
Saya telah membuat fungsi (LRT.POIS) dengan parameter, nSim, Lambda1, Lambda2, tetapi dari sini saya agak bingung.
Adam
2
Saya menambahkan beberapa kode contoh untuk menunjukkan proses dasar.
Greg Snow