Apakah tes yang tepat selalu menghasilkan nilai P yang lebih tinggi daripada tes yang diperkirakan?

8

Saya menjalankan simulasi itu untuk tes McNemar, dan jawabannya sepertinya ya.

Saya bertanya-tanya apakah ini selalu dapat dikatakan sebagai kasus bahwa nilai P tepat lebih tinggi (atau tidak lebih kecil) maka nilai p yang diterima melalui perkiraan.

beberapa kode misalnya:

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)
Tal Galili
sumber

Jawaban:

14

Tidak, nilai-p dari distribusi asimptotik yang valid tidak selalu lebih kecil dari nilai p yang tepat. Pertimbangkan dua contoh dari tes tradisional "non-parametrik":

Tes Wilcoxon Rank-Sum untuk pergeseran lokasi (misalnya, median) untuk dua sampel ukuran independen n1 dan n2 menghitung statistik tes sebagai berikut:

  1. masukkan semua nilai yang diamati ke dalam satu sampel ukuran besar N=n1+n2
  2. peringkat nilai-nilai ini dari 1,,N
  3. jumlah peringkat untuk grup pertama, sebut ini LN+. Seringkali, statistik uji didefinisikan sebagaiW=LN+n1(n1+1)2 (Statistik uji ini kemudian identik dengan Mann-Whitney's U), tetapi ini tidak masalah untuk bentuk distribusi.

Distribusi tepat untuk LN+ untuk diperbaiki n1 dan n2ditemukan dengan menghasilkan semua kemungkinan kombinasi peringkat untuk grup pertama, dan menghitung jumlah dalam setiap kasus. Perkiraan asimptotik menggunakan , yaitu, perkiraan standar-normal dari statistik uji yang ditransformasikan- .(Nn1)z:=Ln+n1(N+1)/2(n1n2(N+1))/12N(0,1)z

Demikian pula, Kruskal-Wallis-H-Test untuk pergeseran lokasi (misalnya, median) untuk sampel independen menggunakan uji statistik berdasarkan peringkat ke-jumlah di masing-masing kelompok : . Sekali lagi, distribusi yang tepat untuk H ditemukan dengan menghasilkan semua kombinasi peringkat untuk grup. Untuk 3 grup, ada kombinasi tersebut. Perkiraan asimptotik menggunakan .pR+jjH:=12N(N+1)j=1p1nj(R+jnjN+12)2(Nn1)(Nn1n2)χp12

Sekarang kita dapat membandingkan bentuk distribusi dalam hal fungsi distribusi kumulatif untuk ukuran grup yang diberikan. Nilai p (sisi kanan) untuk nilai diberikan dari statistik uji sama dengan untuk distribusi kontinu. Dalam kasus diskrit, nilai p untuk (nilai ke- mungkin untuk statistik uji) adalah . Diagram menunjukkan bahwa distribusi eksak menghasilkan kadang-kadang lebih besar, kadang-kadang lebih kecil nilai-p, dalam uji-H: Untuk (ke-32 dari 36 nilai-H yang mungkin), nilai-p tepat adalah 0,075 ( dengan kode di bawah ini ), sedangkan nilai p-perkiraan adalah 0,082085 ( ). UntukF()t1F(t)tmm1F(tm1)H=5sum(dKWH_08[names(dKWH_08) >= 5])1-pchisq(5, P-1)H=2(Kemungkinan nilai ke-15), nilai p-tepat adalah 0,425 ( sum(dKWH_08[names(dKWH_08) >= 2])), perkiraannya sama dengan 0,3678794 ( 1-pchisq(2, P-1)).

masukkan deskripsi gambar di sini

#### 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

Perhatikan bahwa saya menghitung distribusi tepat untuk H dengan menghasilkan semua permutasi, tidak semua kombinasi. Ini tidak perlu, dan komputasi jauh lebih mahal, tetapi lebih mudah untuk menuliskannya dalam kasus umum ... Sekarang lakukan plot membandingkan bentuk fungsi.

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))

Perhatikan bahwa tes ini mensyaratkan bahwa distribusi memiliki bentuk yang sama di setiap kelompok, jika tidak mereka bukan tes untuk lokasi saja.

caracal
sumber
2
(+1) Respons yang bagus dan kode R yang sangat bersih!
chl
Sungguh jawaban yang luar biasa. Jika saya bisa menerimanya dua kali - saya akan menerimanya. Terima kasih caracal, saya harus banyak belajar ...
Tal Galili
4

Tidak selalu meskipun biasanya. Saya kira itu tergantung pada jenis statistik, tes. Saya hanya duduk dan mencoba Pearson chi-square dan rasio kemungkinan chi-square pada 20 hingga 100 kasus dataset. Untuk Pearson, saya menemukan signifikansi yang tepat lebih kecil daripada signifikansi asimptotik sekitar 10% dari waktu. Untuk LR - 0%. Di bawah ini adalah contoh tabel frekuensi dan tes, di mana Pearson chi-square memiliki sig yang tepat. lebih rendah dari sig asimptotik.

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.
ttnphns
sumber