ここに、上記の3つの方法がどのように機能するかの一般的な説明があります。
カイ二乗法は、ビンに含まれる観測値の数を、分布に基づいてビンに含まれると予想される数と比較することで機能します。離散分布の場合、ビンは通常、離散的な可能性またはそれらの組み合わせです。連続分布の場合、カットポイントを選択してビンを作成できます。これを実装する多くの関数は自動的にビンを作成しますが、特定の領域で比較したい場合は独自のビンを作成できるはずです。この方法の欠点は、理論的な分布と、同じビンに値を入れた経験的データとの差が検出されないことです。理論的には、2から3の間の数値が範囲全体に広がる場合、丸めが例になります(2.34296のような値が表示される予定です)、
KS検定統計量は、比較される2つの累積分布関数(多くの場合、理論的および経験的)間の最大距離です。2つの確率分布の交点が1つだけの場合、1から最大距離を引いた値が2つの確率分布の重なりの領域になります(これにより、測定対象を視覚化できます)。同じプロットに理論的な分布関数とEDFをプロットし、2つの「曲線」間の距離を測定すると考えてください。最大の違いは検定統計量であり、nullがtrueの場合の値の分布と比較されます。これは、分布の形状または1つの分布が他の分布と比較してシフトまたはストレッチされていることを示しています。1n
Anderson-Darling検定もKS検定のようにCDF曲線間の差を使用しますが、最大差を使用するのではなく、2つの曲線間の合計面積の関数を使用します(実際に差を2乗し、それらが尾を持つより多くの影響力があり、分布のドメイン全体で統合されます これにより、KSよりも外れ値の重みが大きくなり、いくつかの小さな違いがある場合にも重みが大きくなります(KSが強調する1つの大きな違いと比較して)。これにより、重要ではないと思われる相違点(穏やかな丸めなど)を見つけるためのテストが圧倒される可能性があります。KSテストと同様に、これはデータからパラメーターを推定しなかったことを前提としています。
最後の2つの一般的なアイデアを示すグラフを次に示します。
このRコードに基づいて:
set.seed(1)
tmp <- rnorm(25)
edf <- approxfun( sort(tmp), (0:24)/25, method='constant',
yleft=0, yright=1, f=1 )
par(mfrow=c(3,1), mar=c(4,4,0,0)+.1)
curve( edf, from=-3, to=3, n=1000, col='green' )
curve( pnorm, from=-3, to=3, col='blue', add=TRUE)
tmp.x <- seq(-3, 3, length=1000)
ediff <- function(x) pnorm(x) - edf(x)
m.x <- tmp.x[ which.max( abs( ediff(tmp.x) ) ) ]
ediff( m.x ) # KS stat
segments( m.x, edf(m.x), m.x, pnorm(m.x), col='red' ) # KS stat
curve( ediff, from=-3, to=3, n=1000 )
abline(h=0, col='lightgrey')
ediff2 <- function(x) (pnorm(x) - edf(x))^2/( pnorm(x)*(1-pnorm(x)) )*dnorm(x)
curve( ediff2, from=-3, to=3, n=1000 )
abline(h=0)
上のグラフは、標準の標準のCDFと比較した標準の標準のサンプルのEDFと、KS統計を示す線を示しています。中央のグラフは、2つの曲線の違いを示しています(KS統計が発生する場所を確認できます)。下部は2乗の重み付き差であり、AD検定はこの曲線の下の面積に基づいています(すべてが正しいと仮定した場合)。
他のテストでは、qqplotの相関関係を調べ、qqplotの傾きを調べ、モーメントに基づいて平均、var、およびその他の統計を比較します。