正確な検定では常に、近似検定よりも高いP値が得られますか?


8

その上でmcnemarテストのシミュレーションを実行しましたが、答えは「はい」のようでした。

これは常に、正確なP値が近似によって到達したp値よりも高い(または小さくない)場合であると言えるのではないかと思っていました。

たとえばいくつかのコード:

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)

回答:


14

いいえ、漸近的に有効な分布からのp値は、正確なp値より常に小さいとは限りません。従来の「ノンパラメトリック」テストの2つの例を考えてみます。

サイズと 2つの独立したサンプルの位置シフト(中央値など)のウィルコクソン順位和検定は、次のように検定統計量を計算します。n1n2

  1. すべての観測値をサイズ 1つの大きなサンプルに入れますN=n1+n2
  2. これらの値をからランク付けする1,,N
  3. 最初のグループのランクを合計するには、これをと呼びます。多くの場合、検定統計量はとして定義され(この検定統計量は、マンホイットニーのUと同じです。 )、しかし、これは分布形状には関係ありません。LN+W=LN+n1(n1+1)2

固定との正確な分布は、最初のグループのランクの可能な組み合わせをすべて生成し、その合計を計算することで見つかりいずれの場合にも。漸近近似は、つまり、変換された検定統計量の標準正規近似。LN+n1n2(Nn1)z:=Ln+n1(N+1)/2(n1n2(N+1))/12N(0,1)z

同様に、独立したサンプルの位置シフト(中央値など)のクラスカル-ワリス-H検定では、各グループのランク合計に基づく検定統計量を使用します:。繰り返しになりますが、Hの正確な分布は、グループのランクのすべての組み合わせを生成することによって見つかります。3つのグループの場合、ような組み合わせがあります。漸近近似は分布を使用します。pR+jjH:=12N(N+1)j=1p1nj(R+jnjN+12)2(Nn1)(Nn1n2)χp12

これで、特定のグループサイズの累積分布関数に関して分布形状を比較できます。test-statisticの特定の値の(右側の)p値は、連続分布の等しくなります。離散的なケースでは、のp値(検定統計量の番目の可能な値)はです。この図は、H検定で正確な分布がときどき大きいp値と小さいp値を生成することを示しています(可能な36のH値の32番目)の場合、正確なp値は0.075です(以下のコードを使用) )、おおよそのp値は0.082085()です。用F()t1F(t)tmm1F(tm1)H=5sum(dKWH_08[names(dKWH_08) >= 5])1-pchisq(5, P-1)H=2(15番目の可能な値)、正確なp値は0.425(sum(dKWH_08[names(dKWH_08) >= 2]))、近似値は0.3678794(1-pchisq(2, P-1))です。

ここに画像の説明を入力してください

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

すべての組み合わせではなく、すべての順列を生成することで、Hの正確な分布を計算していることに注意してください。これは不必要であり、計算的にはるかに高価ですが、一般的なケースでは書き留める方が簡単です...次に、関数の形状を比較してプロットを行います。

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

これらのテストでは、分布が各グループで同じ形状である必要があることに注意してください。それ以外の場合は、場所のみのテストではありません。


2
(+1)素敵な応答と非常にきれいなRコード!
chl

なんて素晴らしい答えでしょう。私がそれを二度受け入れることができれば-私はします。カラカルに感謝します。学ぶことがたくさんあります...
タルガリリ

4

いつもとは限りませんが。統計、検定の種類によると思います。私は座って、ピアソンのカイ二乗と尤度比のカイ二乗を20から100のケースのデータセットで試してみました。ピアソンの場合、正確な有意性は、時間の約10%の漸近的有意性よりも小さいことがわかりました。LRの場合-0%。以下は、頻度表と検定の例です。ピアソンのカイ2乗は、正確なsigを持ちます。漸近的sigよりも小さい。

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.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.