正規性テストの力の評価(R)


9

Rのさまざまなサンプルサイズでの正規性検定の精度を評価したい(正規性検定が誤解を招く可能性があることを理解しています)。たとえば、Shapiro-Wilkテストを確認するために、次のシミュレーション(および結果のプロット)を実行しています。サンプルサイズが増加すると、nullを拒否する確率が減少すると予想されます。

n <- 1000
pvalue_mat <- matrix(NA, ncol = 1, nrow = n)

for(i in 10:n){
    x1 <- rnorm(i, mean = 0, sd = 1)
    pvalue_mat[i,] <- shapiro.test(x1)$p.value
}   

plot(pvalue_mat)

私の考えでは、サンプルサイズが大きくなると、拒否率は低くなるはずですが、かなり均一に見えます。私はこれを誤解していると思います-どんな考えでも歓迎します。


2
あなたは見てみたいかもしれません:stats.stackexchange.com/questions/2492/…–
nico

回答:


7

帰無仮説(正規分布)でシミュレーションしているため、拒否率は予想どおり有意水準になる傾向があります。パワーを評価するには、非正規分布の下でシミュレーションする必要があります。調査の範囲に応じて、無限の可能性/シナリオ(例:歪度が増加するガンマ分布、dfが減少するt分布など)から選択できます。


ご回答ありがとうございます。非正規分布をシミュレートすると、原点に対して凸状のパターンが観察されます。つまり、非正規分布のサンプルサイズが大きくなると、正規性のヌルを拒否する確率が高くなります。ただし、正規分布から描画すると逆ではない理由がわかりません。なぜサンプルサイズが大きくなると、nullを拒否する確率が低下しないのですか?ありがとう
user94759 2013年

3
このようなタイプ1のエラーが発生する確率は、定義により、一定の有意水準に等しいためです。言い換えると、p値はnullの下で均一に分散されます。ところで、コード内の1つだけでなく、nの選択を含め、設定ごとに多くのシミュレーションを実行することをお勧めします。
Michael M

7

統計的仮説検定の検出力分析の理解は、いくつかを実行して結果を注意深く見ることによって強化できます。


デザインにより、サイズのテストされて意図少なくとものチャンスで帰無仮説を棄却する nullが真(その予想される場合、偽陽性率)。ααα この特性を備えた代替手順から選択する能力(または贅沢)がある場合、(a)名目上の偽陽性率に実際に近づき、(b)ある場合に帰無仮説を棄却する可能性が比較的高いものを優先します。違います。

2番目の基準では、ヌルが真に失敗する方法方法を規定する必要があります。代替案は範囲が限定され、明確に指定されているため、教科書ではこれは簡単です。Shapiro-Wilkのような配布テストでは、代替案ははるかにあいまいであり、「非正規」です。分散テストから選択する場合、アナリストは自分の1回限りの電力調査を実施して、問題が懸念されるより具体的な代替仮説に対してテストがどの程度うまく機能するかを評価する必要があります。

Michael Mayerの回答の動機付けされた例は、代替分布がスチューデントt分布のファミリーと同様の性質を持つ可能性があると仮定しています。数値(および場所とスケール)によってパラメーター化されたこのファミリーには、正規分布の大きな制限が含まれます。ν1ν

どちらの状況でも、実際のテストサイズとその検出力のどちらを評価しても、指定した分布から独立したサンプルを生成し、各サンプルでテストを実行して、帰無仮説を棄却する割合を見つける必要があります。 ただし、テスト結果には、P値など、より多くの情報があります。そのようなAシミュレーション中に生成P-値のセットを保持することにより、我々は後にテストをするためにはnullを拒否した速度を評価することができます任意の値我々が気にかもしれませんが。したがって、電力分析の中心は、このP値の分布を生成するサブルーチンです(先ほど説明したように、シミュレーションによって、または(場合によっては)理論式を使用して)。これはでコーディングした例です。その引数にはαR

  • rdist、ある分布から無作為標本を作成する関数の名前

  • n、要求するサンプルのサイズ rdist

  • n.iter、取得するそのようなサンプルの数

  • ...rdistν

残りのパラメーターは、結果の表示を制御します。これらは主に、この回答で図を生成するための便宜として含まれています。

sim <- function(rdist, n, n.iter, prefix="",
                breaks=seq(0, 1, length.out=20), alpha=0.05,
                plot=TRUE, ...) {

  # The simulated P-values.
  # NB: The optional arguments "..." are passed to `rdist` to specify
  #     its parameters (if any).
  x <- apply(matrix(rdist(n*n.iter, ...), ncol=n.iter), 2, 
             function(y) shapiro.test(y)$p.value)

  # The histogram of P-values, if requested.
  if (plot) {
    power <- mean(x <= alpha)
    round.n <- 1+ceiling(log(1 + n.iter * power * (1-power), base=10) / 2)
    hist(x[x <= max(breaks)], xlab=paste("P value (n=", n, ")", sep=""), 
         breaks=breaks, 
         main=paste(prefix, "(power=", format(power, digits=round.n), ")", sep=""))
    # Specially color the "significant" part of the histogram
    hist(x[x <= alpha], breaks=breaks, col="#e0404080", add=TRUE)
  }

  # Return the array of P-values for any further processing.
  return(x)
}

5100.n520.

n.iter <- 10^5                 # Number of samples to generate
n.spec <- c(5, 10, 20)         # Sample sizes to study
par(mfrow=c(1,length(n.spec))) # Organize subsequent plots into a tableau
system.time(
  invisible(sapply(n.spec, function(n) sim(rnorm, n, n.iter, prefix="DF = Inf ")))
)

パラメータを指定すると、このコードも1行になります。次の出力が生成されます。

ヌルのヒストグラム

01α=0.05,.04810.0499

10.2

νν=100ν=11001000)、まったく時間をかけません。今度は、コードに二重ループが必要です(より複雑な状況では、変化させる必要のあるすべての側面に対応するために、三重または四重ループが必要になることがよくあります)。自由度。ただし、もう一度、すべてが1行のコード(3行目と最後の行)で行われます。

df.spec <- c(64, 16, 4, 2, 1)
par(mfrow=c(length(n.spec), length(df.spec)))
for (n in n.spec) 
  for (df in df.spec)
    tmp <- sim(rt, n, n.iter, prefix=paste("DF =", df, ""), df=df)

代替案のヒストグラム

このタブローの少しの研究は力についての直感を提供します。 私はその最も顕著で有用な側面に注目したいと思います。

  • ν=64ν=1

  • n=5n=20

  • 1

  • 201110086.57=13%205%95%

  • αα=0.10

    α0.05020%α=0.01α=0.005breakssim


面白いことに、実際には3行のコードに相当するものが収集されます。1つは指定された分布からのiidサンプルをシミュレートし、1つはnull分布の配列にそれを適用し、3つ目はそれを適用します。代替ディストリビューションの配列。これらは、電力分析に入る3つのステップです。残りは、結果を要約して解釈するだけです。


1

(コメント以上、おそらく完全な答えではありません)

[I]は、サンプルサイズが増加するにつれて、nullを拒否する確率が減少することを期待します

バイアスされたテスト(適合度の点では珍しいことではないので、言及する価値があります)の考慮事項は別として、検討する必要のある拒否率に関連する3つの状況があります。

1)nullからシミュレーションするときの拒否率(質問で行っているようです)

α

2)いくつかの代替案からシミュレーションした場合の拒否率

ここで、拒絶率はnが増加するにつれて増加するはずです。

3)実際のデータの一部のコレクションの拒否率

実際には、ヌルが実際に真になることは決してなく、実際のデータには、(検定統計量で測定される)非正規性の量の混合が含まれます。非正規性の程度がサンプルサイズに関連していない場合、nが増加するにつれて拒否率は増加するはずです。

したがって、実際には、これらの状況のいずれにおいても、サンプルサイズに応じて拒否率が低下することはありません。

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