シャピロウィルク検定は、サンプル分布の裾で鈍感ですか?私はそのような声明を紙で読みましたが、その検定統計量Wから理由を理解できません。誰かがこれを理解するのを手伝ってくれませんか?
シャピロウィルク検定は、サンプル分布の裾で鈍感ですか?私はそのような声明を紙で読みましたが、その検定統計量Wから理由を理解できません。誰かがこれを理解するのを手伝ってくれませんか?
回答:
状況は複雑ですが、結果はこの主張の反対になる傾向があります。中程度のデータセットサイズ場合、Shapiro-Wilk検定は、他の場所よりも尾の感度が高くなります。
「敏感」とは、データセットの値が乱されたときに結果がどの程度変化するかを意味します。 (もう1つの考えられる解釈は、「感度」は正規分布の裾の振る舞いからの逸脱を検出する検定のパワーに関して意味されるということです。しかし、「感度」と「パワー」は一般的なので、明確な意味で、この2番目の解釈は適切ではないようです。)
一般的に、テストの「結果」(通常はp値として解釈されます)を順序付けされたデータ関数と見なします。次に、の要素に対するの感度をように定義することができます。
ただし、これにはいくつかの問題があります。まず、は微分可能ではない可能性があります。第2に、非常に小さな変更に対する感度は、大きな変更に対する感度よりも重要ではない可能性があります。これらの複雑化に対処するには、(1)を個別に増減したときの変化を調べるために有向有限差分を使用し、(2)データの広がりと比較して認識できる偏差についてこれらの差分を取得します。このため、偏差与えられた LET
(ここでの広がりの標準尺度であるようなその標準偏差など)と定義し、感度の差分絶対商のベクトルであること
つまり、各データ値は、全体の広がりの倍の量だけ上方および下方に変位します。感度は、データを中心とした正味偏差を反映する、絶対相対変化の合計です。δ σ
感度はデータセットによって異なります。データが帰無仮説に一致するとき、または帰無仮説から離れているとき、それを評価する必要がありますか?どちらの評価も参考になります。しかし、分布テストの場合、代替案は多くの場合パラメーター化できないという複雑さに直面します。帰無仮説はデータが正規分布からサンプリングされるという仮説かもしれませんが、代替案はそれらが任意の分布からサンプリングされるというものです。
徹底的な研究は、多くの選択肢と多くのサンプルサイズを見ます。以下では、Shapiro-Wilk検定が使用されるデータセットに典型的な3つのサンプルサイズ 4、12、36の結果と、null(正規分布)の場合は、短い裾の代替(Uniform分布)、ロングテールの代替(指数分布)、およびバイモーダルの代替(ベータ分布)。どちらの場合も、データセットをその親分布にできるだけ似せるようにします。これは、確率プロットポイントでの分布の分位数を計算することによって達成されます(Filibenの式に従って間隔をあけた、別名「ワイブルプロットポイント」)。(2 、2 )n個
参考までに、同じ分析をコルモゴロフ・スミルノフ検定の変形に適用しました。このバリアントについては、最初にデータを最近調整します。これは、(少なくとも代替案では)KSテストが現実的な比較にならないためです。最近のデータでは、両方のテストで同等のp値が生成されることが多く、それらのp値の範囲はからまでであり、有用な範囲の可能性をカバーしています。0.0003
の感度は、データインデックス(ランク)に対して対数軸にプロットされます。SWテストの結果は、赤丸で囲まれた円で示されています。KSテスト用のものは、青色で塗りつぶされた三角形です。(ゼロの感度はプロットされます。)10 − 12
SWテストは、非常に小さなデータセットを除いて、真ん中よりも、尾(つまり、ランクがまたは近い場所)のデータに対してわずかに敏感になる傾向があります。対照的に、KSテストは、少なくともデータセットのサイズが十分に大きくなると、片側または両側の少数のデータに非常に敏感になる傾向があります。明らかに、これらのテストはデータセットの形状についてさまざまなことを教えてくれます。n
概して、SWテストはKSテストよりも感度が大幅に高くなっています。この理由は複雑ですが、特に2つの分布検定を感度のみに基づいて比較することはできません。これらの感度が測定されるp値も考慮する必要があります。
R
これらの結果を生成するために使用されるコードは以下の通りです。さまざまなサンプルサイズ、さまざまなデータセット分布、さまざまな分布テストなど、任意の方向に研究を拡張するために簡単に変更できるように構成されています。
filliben <- function(n) {
a <- 2^(-1/n); c(1-a, (2:(n-1) - 0.3175)/(n + 0.365), a)
}
sensitivity <- function(x, f, delta=1, ...) {
s <- delta * sd(x) / 2
e <- function(i) {u <- rep(0, length(x)); u[i] <- s; u}
f.x <- f(x)
sapply(1:length(x), function(i) f(x + e(i)) - f.x) / abs(s)
}
sensitivity.abs <- function(x, f, delta, ...) {
abs(sensitivity(x, f, delta/2, ...)) + abs(sensitivity(x, f, -delta/2, ...))
}
delta <- 1
beta <- function(q) qbeta(q, 1/2, 1/2) # A bimodal distribution
par(mfrow=c(3, 4))
for (n in c(4, 12, 36)) {
x <- filliben(n)
for (f.s in c("qnorm", "qunif", "qexp", "beta")) {
# Perform the tests.
y <- do.call(f.s, list(x))
y <- (y - mean(y))
cat(n, f.s, shapiro.test(y)$p.value, ks.test(y, "pnorm")$p.value, "\n")
# Compute sensitivities.
shapiro.s <- sensitivity.abs(y, function(x) shapiro.test(x)$p.value, delta)
ks.s <- sensitivity.abs(y, function(x) ks.test(x, "pnorm")$p.value, delta)
shapiro.s <- pmax(1e-12, shapiro.s) # Eliminate zeros for log plotting
ks.s <- pmax(1e-12, ks.s) # Eliminate zeros for log plotting
# Plot results.
plot(c(1,n), range(c(shapiro.s, ks.s)), type="n", log="y",
main=f.s, xlab="Rank", ylab=paste0("Sensitivity, n=", n))
points(shapiro.s, pch=16, col="Red")
points(ks.s, pch=24, bg="Blue")
lines(shapiro.s, col="#801010")
lines(ks.s, col="#101080", lty=3)
}
}
私はそれが特に鈍感だとは思わない。たとえば、Lillieforsテストよりも感度が高いと思います。また、広く使用されている他の同等の適合度テスト*を考えるのに苦労しています。
適合度検定(数値の論文がある)の検出力の比較を見ると、Shapiro Wilkは、「尾に対する感受性」に関連すると私が考える状況を含め、さまざまな状況で一般的に非常にうまく機能します。
*まあ、おそらくアンダーソンダーリングは別として、場合によってはテール感度でそれを打ち負かすかもしれません。
編集:私は、対称的な重い裾のある選択肢や、外れ値による汚染が少量の選択肢(「尾に対する感度」を確認する最も明白な2つの方法)やShapiro-Wilkが行うものなど、いくつかの電力比較研究を行ってきましたこのタスク(ADが優れていると期待されるタスク)でアンダーソンダーリングよりも一般的に優れています。
は、パラメータを指定せずに正規性のテストに固有のパラメータ推定に適切に適応させます。もちろん、D'AgostinoとStephensによる「適合度テクニック」という本の説明を参照してください。
[著者は、この感度がどのように測定されたか、それが何と比較されたかを述べていますか?この論文は、主張の正当性や背景を説明していますか?]