Tính toán công suất để kiểm tra tỷ lệ khả năng


8

Tôi có hai biến ngẫu nhiên poisson độc lập là và , với và . Tôi muốn kiểm tra so với thay thế .X1X2X1Pois(λ1)X2Pois(λ2)H0:λ1=λ2H1:λ1λ2

Tôi đã rút ra các ước tính khả năng tối đa theo giả thuyết không và thay thế (mô hình) và dựa trên các thống kê kiểm tra tỷ lệ khả năng (LRT) mà tôi đã tính (mã R được đưa ra dưới đây).

Bây giờ tôi quan tâm để tính toán sức mạnh của bài kiểm tra dựa trên:

  1. Đã sửa lỗi alpha (lỗi loại 1) = 0,05.
  2. Sử dụng các cỡ mẫu khác nhau (n), giả sử n = 5, 10, 20, 50, 100.
  3. Sự kết hợp khác nhau của và , sẽ thay đổi số liệu thống kê LRT (được tính như dưới đây).λ1λ2LRTstat

Đây là mã R của tôi:

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)

Từ đây, làm thế nào tôi có thể tiến hành tính toán công suất (tốt nhất là trong R)?

Câu trả lời:


9

Bạn có thể làm điều này bằng cách sử dụng mô phỏng.

Viết hàm thực hiện bài kiểm tra của bạn và chấp nhận lambdas và (các) cỡ mẫu làm đối số (bạn có một khởi đầu tốt ở trên).

Bây giờ đối với một tập hợp lambdas và (các) mẫu đã cho chạy hàm rất nhiều lần (hàm sao chép trong R là tuyệt vời cho điều đó). Khi đó, công suất chỉ là tỷ lệ số lần bạn từ chối giả thuyết null, bạn có thể sử dụng hàm trung bình để tính tỷ lệ và prop.test để đưa ra khoảng tin cậy về công suất.

Dưới đây là một số mã ví dụ:

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)

Kết quả của tôi (ý chí của bạn khác với một hạt giống khác, nhưng phải tương tự) cho thấy tỷ lệ lỗi loại I (alpha) là 0,0496 (KTC 95% 0,0455-0,0541) gần 0,05, có thể đạt được độ chính xác cao hơn bằng cách tăng 10000 trong lệnh nhân rộng. Các quyền hạn tôi tính toán là: 9,86% và 28,6%. Các biểu đồ không thực sự cần thiết, nhưng tôi thích nhìn thấy các mẫu.


Tôi đã tạo một hàm (LRT.POIS) với các tham số, nSim, Lambda1, Lambda2, nhưng từ đây trở đi tôi bị mất.
Adam

2
Tôi đã thêm một số mã ví dụ để hiển thị quá trình cơ bản.
Greg Snow
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.