せいびし

専門性を持たない自分の正体を求めて

【各種検定の理論】1標本の検定(ノンパラメトリック検定)

導入

本記事では、ノンパラメトリック検定における1標本の検定について扱っていきます。パラメトリック検定で言えば、1標本のt検定だったり対応のある2標本のt検定に相当します。ここではウィルコクソン符号付順位検定符号検定の2つを紹介しますが、それぞれの理論で前提条件が存在しています。後でも細かく述べますが、データを発生させる母集団となる分布関数に対称性が仮定されるならウィルコクソン符号付順位検定対称性が保証されなければ符号検定という物です。ここで2つの疑問が生じます。1つ目は、対称性が仮定されている所で対称性を仮定できない検定を用いるとどうなるのか。もう1つは、対称性を仮定できない所で対称性を仮定した検定を利用するとどうなるのか。後から述べていきますが、この話は中央値が鍵となります。対称な分布からデータが発生すれば、対称の中心と中央値は一致しますが、そうでない場合はそもそも対称という考え方が存在していないので、中央値で考えるしかありません。で、この中央値は一体どんな重要な役割を果たしていくのでしょうか。早速遊んでいきます。

1.ウィルコクソン符号付順位検定の概要

仕組み

初めに仕組みをしっかり押さえると、後々が入ってきやすい気がするので、先に結論となる仕組みの部分を述べます。以下の図を見てみましょう。

f:id:seibibibi:20191106141133p:plain

未知の分布関数が点線で表され、この分布に従ってデータがx軸上の丸としてサンプリングされたとします。この状態から母数である \Deltaはどの辺りかな?という推定を行う事がこの検定の本質になります。分布関数に対称性を仮定している場合、理想的にはデータは \displaystyle \Deltaを中心に左右対称にサンプル*1されます。この性質を踏まえて、多分 \displaystyle \Deltaはここだ!と \displaystyle \Delta = \Delta_0と予想した時に、次の2つのパターンが考えられます。

  • 予想した値 \displaystyle \Delta_0と母数 \displaystyle \Deltaかなり近い値を取る

データの出方は \displaystyle \Delta_0を中心に左右対称に見えるはずです。

  • 予想した値 \displaystyle \Delta_0と母数 \displaystyle \Delta大きくかけ離れている

データの出方は \displaystyle \Delta_0を中心に左右対称にはならないはずです。上の図が典型的な例になります。

 \displaystyle \Deltaはここだ!と予想した後の分布帰無仮説の下での分布)に対してそのデータは「「「図形的には」」」左右対称に表れているのかどうかを見るのがこの検定の仕組みです(厳密には違う気がするので注釈*2に回します)。図で言えばという言葉を強調したのは、厳密な説明ではない気がしたからです。

前提条件

仕組みの所で述べてしまいましたが、ウィルコクソン符号付順位検定では、母集団の分布関数が①連続であり②対称性を有する事が前提条件となります。

仮説

帰無仮説と対立仮説は以下のようになります。

 \displaystyle H_0:\Delta = \Delta_0

 \displaystyle H_0:\Delta \neq \Delta_0

上で示した対立仮説は両側仮説ですが、当然片側仮説も存在しています。

検定統計量

検定統計量の考え方を図に示します。

f:id:seibibibi:20191106141525p:plain

 \displaystyle Z_j = |X_j-\Delta_0| (j=1..n)とする時、検定統計量は次の式で定義されます。
 \displaystyle W_n = \sum_{i=1}^{n}iV_i

ここで、 \displaystyle V_i \displaystyle | Z_{(i)} |における符号が正の時に1、負の時に0になる量です。もし、帰無分布が母集団分布から大きく外れてしまった場合は、 \displaystyle W_nが極端に大きくなる( \displaystyle \Delta_0を小さく見積もってしまった=対立仮説( \displaystyle H_1:\Delta>\Delta_0)が成立)極端に小さくなるか( \displaystyle \Delta_0を大きく見積もってしまった=対立仮説( \displaystyle H_1:\Delta<\Delta_0)が成立)のどちらかになります。後は棄却域*3を設けて、基準となる値よりも大きければ(小さければ)帰無仮説を棄却します。これがウィルコクソンの符号付順位検定です。

2.符号検定の概要

ウィルコクソン符号付順位検定との違い

ウィルコクソン符号付順位検定では、分布関数に対称性を仮定していましたが、対称性が保証されない場合はどのような問題が生じるでしょうか。以下の図を見てみましょう。

f:id:seibibibi:20191106142745p:plain

対称でない母集団の分布関数に対して、対称である分布を仮定すると、帰無仮説の下での分布においてサンプルに偏りが生じます。上で示した図は母集団の分布関数を図で示しているため、対称じゃねえ!とかそこは中央じゃねえ!とか突っ込めますが、データだけを見ると意外に分からない物です。以下の図を見てみましょう。
f:id:seibibibi:20191106144520p:plain

いかがでしょうか?あんまり良く分からないと思います。*4

符号検定の考え方

先に仮説を示します。

 \displaystyle H_0:\Delta = \Delta_0または \displaystyle Pr(X>\Delta_0)=Pr(X<\Delta_0)=\frac{1}{2}

 \displaystyle H_1:\Delta \neq \Delta_0または \displaystyle H_1:Pr(X>\Delta_0) \neq \frac{1}{2}

ここで、 \displaystyle \Delta中央値であり、上で示した対立仮説は両側仮説ですが、片側仮説の場合は不等式になります。

なんだか難しく見えますが、符号検定では中央値を基準にしてデータの現れる確率が同じかどうかについて検討します。以下の図を見てみましょう。

f:id:seibibibi:20191106150732p:plain

実は、符号検定の初めの所で紹介した図における母集団の分布関数は、こちらの確率密度関数から生成した物でした*5。具体的には、この確率密度関数から10000点のデータをサンプルし、累積させることで分布関数を作成しました。分布関数を作成するのと同時に中央値を求めてみた所、14.27という値が出てきました。図で言えば赤いライン付近に当たる部分です。
中央値を基準にしてデータの現れる確率が同じかどうかという事は、上の確率密度関数で説明するなら*6、赤いラインより左側の面積が0.5、赤いラインより右側の面積も0.5という事です。例えば、予想した中央値が母集団の中央値に対して小さく見積もってしまった場合、予想した分布からデータを見ると、やたらと中央値より大きいデータが出てくるはずです。これを確かめるのが符号検定の考え方になります。

検定統計量

検定統計量は以下の通りです。

 \displaystyle S_n = \sum_{i=1}^{n} I(X_i)

ここで、 \displaystyle I(x) \displaystyle x>\Delta_0の時に1であり、それ以外は0となる量です。つまり、中央値よりも大きくなるデータの個数を数え上げたのが符号検定の検定統計量*7です。先ほどの予想した中央値が母集団の中央値に対して小さく見積もってしまった例の場合、この検定統計量は非常に大きな値を取る事が考えられます。

3.シミュレーション

やること

さて、説明が長くなってしまいましたが、本題であるシミュレーションの話に入りましょう。導入でも述べた通り、今回行う実験は、対称性が仮定されている所で対称性を仮定できない検定を用いるとどうなるのか(実験1)を確かめる事と、対称性を仮定できない所で対称性を仮定した検定を利用するとどうなるのか(実験2)を確かめる事でした。今回実験で用いる2つの分布を以下に示します。
(これまでの話は分布関数の話をしてきましたが、以下の図は確率密度関数です。違いに注意してください)

f:id:seibibibi:20191107143048p:plain

左側の確率密度関数は対称であり、サンプルはどちらの山からも均等にサンプルされます。しかし、右側の確率分布は非対称であり、サンプルは右側の山から主にサンプルされます。つまり、右側の確率分布は対称の中心と中央値が一致していないケースです。この状況で、まあ対称の中心は0だろうどうせと適当に検定*8してみたらどうなるのかという事を実験してみます。

具体的な実験の手順としては、この山から100個のデータをサンプルし検定統計量を求めます。サンプルして検定統計量を求めて、またサンプルして検定統計量を求めて…を各実験で10000回行い、検定統計量に関するヒストグラムを作成します。
また、今まで述べてきた検定統計量はサンプル数が大きい時、検定統計量から平均を引いて標準偏差で割った量は標準正規分布に近づく事に知られています。これを利用してパーセント点を求め、正しい仮定を行った検定統計量のヒストグラムと誤った過程を行った検定統計量のヒストグラムでどのような違いが見られるかを検討していきます。

実験1では、帰無仮説として0を置くべきを中央値を置いてしまった事を想定します。実験1で用いる分布は対称の中心と中央値がだいたい一致しているので、さほど結果は変わらないことが予想できます。
実験2では、帰無仮説として中央値を置くべきを0としてしまった事を想定します。実験2はそもそも対称という考え方が無いので、おかしい結果が出てくることは目に見えています。

2つの実験をするにあたり、予め母数である中央値は既知であるとします。具体的には、左側の確率密度関数の中央値は0、右側の確率密度関数の中央値は4.3としておきます。

実験0 検定統計量の正規近似

理論的背景

本題に入る前に、予備実験として検定統計量の正規近似の実験を行います。ウィルコクソン符号付順位検定と符号検定では、検定統計量が従う分布の導出が少しだけ異なります(詳細は注釈*9に回します)。棄却域が2つの検定で変わられては困るので、検定統計量の正規近似を利用します。サンプルサイズが大きい時には、帰無仮説の下での検定統計量 \displaystyle U中心極限定理を利用して次のように正規近似する事が出来ます。

 \displaystyle Z = \frac{U-E[U]}{\sqrt{V[U]}}~N(0, 1)

ウィルコクソン符号付順位検定の検定統計量 \displaystyle W_nと符号検定の検定統計量 \displaystyle S_nもサンプルサイズが大きい時は正規近似されます。ここで、それぞれの検定統計量の期待値と分散は次の式で表されることが知られています。
 \displaystyle E[W_n] = \frac{n(n+1)}{4}, V[W_n] = \frac{n(n+1)(2n+1)}{24}

 \displaystyle E[S_n] = \frac{n}{2}, V[S_n] = \frac{n}{4}

以上より、取ってきたデータに対して、①平均と分散を求めて理論値になるかどうか②標準化した後の検定統計量は標準正規分布に本当に従うのかの2点を確かめていきたいと思います。

ちなみに、「サンプルサイズが大きい時」というのは一体どこから?という話ですが、例えばRのwilcox.testのdocumentationには以下のような記述があります。

… an exact p-value is computed if the samples contain less than 50 finite values and there are no ties. Otherwise, a normal approximation is used.

wilcox.test function | R Documentation
どうやら50より大きければ正規近似が適用されるようです。符号検定については特に記述が無かったので、とりあえずはサンプル数を50で……とは言わずに、冒頭で述べたようにでっかく100くらいにしておきました。どうせシミュレーションですし。

実験結果

初めに、それぞれの検定統計量の平均と分散のヒストグラムを示します。実験条件は、サンプルサイズを100、標本抽出を10000回行いました。

f:id:seibibibi:20191107141332p:plain

赤のグラフが \displaystyle W_n、緑のグラフが \displaystyle S_nです。手に入れた検定統計量から計算した平均と分散はそれぞれ、 \displaystyle W_nが平均2521.41、分散が83157.5で、 \displaystyle S_nが平均49.94、分散が24.49でした。理論的には \displaystyle W_nの期待値は2525、分散が84587.5で、 \displaystyle S_nが平均50、分散が25なので、かなり理論値に近い値が出ている事が分かります。

もう上のヒストグラムから察しは付いているような気はしますが、それぞれの検定統計量を標準化してみましょう。以下の図がその結果になります。

f:id:seibibibi:20191107142407p:plain

標準正規分布になりました。中心極限定理おそるべし…

実験1 対称性を仮定すべきを非対称を仮定した場合

標準化後の検定統計量のヒストグラムを以下に示します。

f:id:seibibibi:20191107155231p:plain

対称の中心と中央値が一致しているので、2つの山はほとんど重なっている事が分かります。

実験2 非対称性を仮定すべきを対称性を仮定した場合

こちらも標準化後の検定量ヒストグラムを以下に示します。

f:id:seibibibi:20191107161359p:plain

中央値が4.3である所を、帰無仮説として0を仮定してしまったウィルコクソンはほとんどの検定量が棄却域に落ちている事が分かります。

考察

そりゃそう

結論

今回は、ウィルコクソン符号付順位検定と符号検定で遊んでみました。ここまで理論を勉強してプログラムを考えてみて、そもそも対称だ非対称だを考える事は無いんじゃないかなあと思いました。その上、どうやったら検定の適用違いを起こすことができるかなあと思って考えていたのですが、この2つの検定の適用違いの例は思いつきませんでした。なので、当たり前の実験しかできませんでした…残念…

と、ここまで偉そうに記事を書いてしまいましたが、とても自信がありません。というのも、ノンパラ検定の理屈の話を勉強して大して経っていない*10上に、手を動かしながら勉強したい、勉強ノートのようなものがあればモチベが上がるという動機で始めたからです…間違いがたくさんある気がします…今回は以上でした!


※作成したプログラムはこちら
seibibibi.hatenadiary.jp

*1:対称な分布関数を微分すると対称な確率密度関数が出てくると思います。ノンパラメトリックの話をしている所で持ってくる分布ではありませんが、例えば正規分布とか一様分布とか

*2:厳密には違う気がしています。これは僕がノンパラ検定の理論の勉強をし始めたばかりという事で確証が無いので注釈に回しました。ウィルコクソン符号付順位検定は符号検定と比較すると、検定統計量に順位の情報を用いている所が特徴的です。つまり、全体に対するデータの現れ方のバランスを定量化しているのではなくて、順位で重みづけた情報を見ています。この事から、ウィルコクソン符号付順位検定は、順位の和がある一定の値を超えるかどうかを見ているに過ぎないような気がしています。一方で、符号検定は後で述べる検定統計量と帰無仮説から考察するに、中央値を基準として確率が左右対称かどうかを見ているのだと思います。なので、左右対称という言葉の定義がまず難しいのですが、確率的に左右対称と条件づけるなら、左右対称かどうかを見ているのは符号検定な気がしています。間違えていたらごめんなさい…

*3:考え得る全ての順位の組み合わせを考えた後でその順位が実現される個数を数え上げます。全ての個数に対して該当する順位が実現される個数の割合が、その順位の確率となります。全ての順位で個の確立を設ける事で帰無分布を作成する事が出来ます。

*4:値が小さいデータの所に若干寄せました。この状態で例えば対称性を有する分布を仮定すると、値が大きい所のデータが帰無仮説の下での分布では値が大きすぎる事になると思います。

*5:混合正規分布

*6:一応「上で作成した確率密度関数が母集団分布」と定義しておきます。結局は上で示した図も標本でしかないので、そこを議論してしまえば先に進まなくなってしまうので…

*7:よって、二項分布に従います。

*8:現実ではありえない話ですが、シミュレーションならあり得ない話も実現できます。

*9:ウィルコクソン符号付順位検定では、全ての順位の組み合わせから分布を導出します。一方で、符号検定の場合は検定統計量が二項分布に従うので、帰無仮説の下での分布は仮定せず、単に二項分布表から棄却域を求める事が出来ます。

*10:なんなら1週間経ったか経たないかくらい