Có phải một thử nghiệm chính xác luôn mang lại giá trị P cao hơn thử nghiệm gần đúng không?


8

Tôi đã chạy một mô phỏng trên đó để kiểm tra mcnemar, và câu trả lời dường như là có.

Tôi đã tự hỏi nếu điều này luôn luôn có thể được nói là trường hợp giá trị P chính xác cao hơn (hoặc không nhỏ hơn) thì giá trị p được đưa đến thông qua một xấp xỉ.

một số mã ví dụ:

set.seed(234)
n <- 100 # number of total subjects
P <- numeric(100)
P_exact <- numeric(100)
for(i in 1:100)
{
x = table(sample(1:2, n, T), sample(1:2, n, T))
P[i] <- mcnemar.test(x, correct = F)$p.v
P_exact[i] <- binom.test(x[2,1],x[1,2]+x[2,1])$p.valu
}

#for different n - the level of problem is worse
#plot(jitter(P,0,.01), P_exact )
plot(P, P_exact )
abline(0,1)

Câu trả lời:


14

Không, giá trị p từ phân phối hợp lệ không có triệu chứng không phải lúc nào cũng nhỏ hơn giá trị p chính xác. Xem xét hai ví dụ từ các xét nghiệm "không tham số" truyền thống:

Wilcoxon Rank-Sum Test cho dịch chuyển vị trí (ví dụ: trung vị) cho hai mẫu độc lập có kích thước và tính toán thống kê kiểm tra như sau: n 2n1n2

  1. đặt tất cả các giá trị quan sát vào một mẫu lớn có kích thướcN=n1+n2
  2. xếp hạng các giá trị này từ1,,N
  3. tính tổng các cấp bậc cho nhóm đầu tiên, gọi đây là . Thông thường, thống kê kiểm tra được xác định là (thống kê kiểm tra này sau đó giống hệt với U của Mann-Whitney ), nhưng điều này không quan trọng đối với hình dạng phân phối.LN+W=LN+n1(n1+1)2

Phân phối chính xác cho cho và cố định được tìm thấy bằng cách tạo tất cả có thể kết hợp các cấp bậc cho nhóm đầu tiên và tính tổng trong mỗi trường hợp. Xấp xỉ tiệm cận sử dụng , nghĩa là xấp xỉ chuẩn bình thường của thống kê kiểm tra theo mẫu . n 1 n 2LN+n1n2(Nn1)z:=Ln+n1(N+1)/2(n1n2(N+1))/12N(0,1)z

Tương tự, Kiểm tra Kruskal-Wallis-H cho dịch chuyển vị trí (ví dụ: trung vị) cho các mẫu độc lập sử dụng thống kê kiểm tra dựa trên tổng xếp hạng trong mỗi nhóm : . Một lần nữa, phân phối chính xác cho H được tìm thấy bằng cách tạo tất cả các kết hợp xếp hạng cho các nhóm. Đối với 3 nhóm, có các kết hợp như vậy. Phép tính gần đúng tiệm cận sử dụng phân phối .pR+jjH:=12N(N+1)j=1p1nj(R+jnjN+12)2(Nn1)(Nn1n2)χp12

Bây giờ chúng ta có thể so sánh các hình dạng phân phối theo hàm phân phối tích lũy cho các kích thước nhóm đã cho. Giá trị p (bên phải) cho một giá trị cho trước của thống kê kiểm tra bằng cho phân phối liên tục. Trong trường hợp riêng biệt, giá trị p cho ( giá trị -th có thể cho thống kê kiểm tra) là . Biểu đồ cho thấy phân phối chính xác tạo ra đôi khi giá trị p lớn hơn, đôi khi nhỏ hơn, trong phép thử : Với (giá trị thứ 36 của 36 giá trị H có thể), giá trị p chính xác là 0,075 ( với mã bên dưới ), trong khi giá trị p gần đúng là 0,082085 ( ). ChoF()t1F(t)tmm1F(tm1)H=5sum(dKWH_08[names(dKWH_08) >= 5])1-pchisq(5, P-1)H=2(Giá trị thứ 15 có thể), giá trị p chính xác là 0,425 ( sum(dKWH_08[names(dKWH_08) >= 2])), xấp xỉ bằng 0,67879494 ( 1-pchisq(2, P-1)).

nhập mô tả hình ảnh ở đây

#### Wilcoxon-Rank-Sum-Test: exact distribution
n1      <- 5                           # group size 1
n2      <- 4                           # group size 2
N       <- n1 + n2                     # total sample size
ranks   <- t(combn(1:N, n1))           # all possible ranks for group 1
LnPl    <- apply(ranks, 1, sum)        # all possible rank sums for group 1 (Ln+)
dWRS_9  <- table(LnPl) / choose(N, n1) # exact probability function for Ln+
pWRS_9  <- cumsum(dWRS_9)              # exact cumulative distribution function for Ln+
muLnPl  <- (n1    * (N+1)) /  2        # normal approximation: theoretical mean
varLnPl <- (n1*n2 * (N+1)) / 12        # normal approximation: theoretical variance

#### Kruskal-Wallis-H-Test: exact distribution
P  <- 3                                # number of groups
Nj <- c(3, 3, 2)                       # group sizes
N  <- sum(Nj)                          # total sample size
IV <- rep(1:P, Nj)                     # factor group membership
library(e1071)                         # for permutations()
permMat <- permutations(N)             # all permutations of total sample
getH <- function(rankAll) {            # function to calc H for one permutation
    Rj <- tapply(rankAll, IV, sum)
    H  <- (12 / (N*(N+1))) * sum((1/Nj) * (Rj-(Nj*(N+1) / 2))^2)
}

Hscores <- apply(permMat, 1, getH)     # all possible H values for given group sizes
dKWH_08 <- table(round(Hscores, 4)) / factorial(N)  # exact probability function
pKWH_08 <- cumsum(dKWH_08)             # exact cumulative distribution function

Lưu ý rằng tôi tính toán phân phối chính xác cho H bằng cách tạo tất cả các hoán vị, không phải tất cả các kết hợp. Điều này là không cần thiết, và tính toán tốn kém hơn nhiều, nhưng việc viết ra trong trường hợp chung đơn giản hơn ... Bây giờ hãy thực hiện âm mưu so sánh các hình dạng hàm.

dev.new(width=12, height=6.5)
par(mfrow=c(1, 2), cex.main=1.2, cex.lab=1.2)
plot(names(pWRS_9), pWRS_9, main="Wilcoxon RST, N=(5, 4): exact vs. asymptotic",
     type="n", xlab="ln+", ylab="P(Ln+ <= ln+)", cex.lab=1.4)
curve(pnorm(x, mean=muLnPl, sd=sqrt(varLnPl)), lwd=2, n=200, add=TRUE)
points(names(pWRS_9), pWRS_9, pch=16, col="red")
abline(h=0.95, col="blue")
legend(x="bottomright", legend=c("exact", "asymptotic"),
       pch=c(16, NA), col=c("red", "black"), lty=c(NA, 1), lwd=c(NA, 2))

plot(names(pKWH_08), pKWH_08, type="n", main="Kruskal-Wallis-H, N=(3, 3, 2):
     exact vs. asymptotic", xlab="h", ylab="P(H <= h)", cex.lab=1.4)
curve(pchisq(x, P-1), lwd=2, n=200, add=TRUE)
points(names(pKWH_08), pKWH_08, pch=16, col="red")
abline(h=0.95, col="blue")
legend(x="bottomright", legend=c("exakt", "asymptotic"),
       pch=c(16, NA), col=c("red", "black"), lty=c(NA, 1), lwd=c(NA, 2))

Lưu ý rằng các thử nghiệm này yêu cầu các bản phân phối có hình dạng giống nhau trong mỗi nhóm, nếu không, chúng không phải là thử nghiệm cho vị trí một mình.


2
(+1) Phản hồi tốt và mã R rất sạch sẽ!
chl

Thật là một câu trả lời tuyệt vời. Nếu tôi có thể chấp nhận nó hai lần - tôi sẽ. Cảm ơn bạn caracal, tôi có nhiều điều để học ...
Tal Galili

4

Không phải luôn luôn mặc dù thường. Tôi đoán nó phụ thuộc vào loại thống kê, bài kiểm tra. Tôi chỉ ngồi và thử Pearson chi-vuông và Likabilities tỷ lệ chi-vuông trên 20 đến 100 bộ dữ liệu trường hợp. Đối với Pearson, tôi thấy ý nghĩa chính xác nhỏ hơn ý nghĩa tiệm cận khoảng 10% thời gian. Đối với LR - 0%. Dưới đây là bảng tần suất mẫu và các bài kiểm tra, trong đó Pearson chi-vuông có sig chính xác. ít hơn so với sig tiệm cận.

7   12   4
26  12  17
6   10   6

Chi-Square Tests
                    Value      df   Asymp. Sig. (2-sided)   Exact Sig. (2-sided)
Pearson Chi-Square  8.756(a)    4       .068                   .067
Likelihood Ratio    8.876       4       .064                   .073

a   0 cells (.0%) have expected count less than 5. The minimum expected count is 5.94.
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.