コルモゴロフ=スミルノフ統計量その3(ブラウン・ブリッジ)

  • 積分布の比較には特徴がある
    • スタートは0でゴールは1。必ず
    • そのため、二つの累積分布の差を見るとき、スタートが0でゴールも0になる
    • 経験分布2つ(もしくは経験分布と理論分布との2つ)の差を取ると、「0で始まって0で終わる」
    • 横軸は「0で始まって1で終わる」
  • 今、累積分布が同じ何かからできていて、そこからのずれが「ランダム」だとすると、この「ランダム」が作る「差」の挙動は
    • 横軸が0-1の範囲で動き、横軸の値が0のときは差が0、横軸の値が1のときは差が1
  • この様子が、横軸の長さが1の橋を渡っているように見えるから、そしてその橋をわたるときのずれ具合が酔歩なので、「ブラウン・ブリッジ」
  • KS統計量(K)は、この「ブラウン・ブリッジ」な酔歩で、0からのずれの最大値のことなので、それがどのような分布をとるかという問題
    • それを式で表すとPr(K\le x) = 1-2\sum_{k=1}^{\infty} (-1)^{k-1} \exp{-2k^2x^2}=\frac{\sqrt{2\pi}}{x}\sum_{k=1}^{\infty} \exp{-(2k-1)^2\pi^2/(8x^2)}となる(こちら)、というのは、コルモゴロフさん(ら)が示したことで、(簡単に書けるものではないので)ここには書かない(わかってないし)
    • ただし、\inftyとなっているところを適当に打ち止めにしてRでこの式を追いかけた結果をプロットすることはできる
ks <- 1:100

xx <- seq(from=0,to=2,length=100)

As <- Bs<- matrix(NA,length(xx),length(ks))

for(i in seq(xx)){
	As[i,] <- (-1)^(ks-1)*exp(-2*ks^2*xx[i]^2)
	Bs[i,] <- sqrt(2*pi)/xx[i]*exp(-(2*ks-1)^2*pi^2/(8*xx[i]^2))
}

matplot(As,type="l")
matplot(Bs,type="l")

a <- 1-2*apply(As,1,sum)
b <- apply(Bs,1,sum)

plot(a,b)

plot(xx,a)
  • 理論的な分布はこれでよいとして、問題は、有限個の観測値でそれがどれくらいになるか、というと、2標本の場合には、それぞれの値の個数での補正が適当であることが知られていて、それによる補正をする(1標本の場合も同じことで、値の個数で補正する)とp値化できることを利用しているのがKS検定