せいびし

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

【各種検定の理論】2標本の検定・尺度母数の推定(ノンパラメトリック検定)

導入

本記事では、ノンパラメトリック検定における2標本の検定(尺度母数の推定)について取り扱いたいと思います。尺度母数はデータの広がりを示すパラメータであり、分散のようなものです。後でも述べていきますが、今回取り扱う検定はMoodの検定と呼ばれており、尺度母数を検定するために2群の中央値が大体同じ位置にある事を前提としています。ここで1つの疑問が生まれます。中央値をずらせばMoodの検定は一体どういう振る舞いをするのか。早速遊んでいきましょう。

(※追記:シミュレーションの部分での検定統計量の山が2つ現れる謎については単に僕の勉強不足というだけでした。詳細は以下の記事の追記をご覧ください(2019年12月10日 追記))
seibibibi.hatenadiary.jp



1.Moodの検定の概要

しくみ

Moodの検定の仕組みは以下に示す図です。

f:id:seibibibi:20191109110823p:plain

中央値が大体同じな2つの母集団分布を2パターン用意しました。左は大体同じ形の分布関数が2つ存在していますが、右は少しだけ様子が違います。具体的にどう違うかというと、 \displaystyle F_2(x) \displaystyle F_1(x)を横に引き伸ばした感じになっています。この状況だとどんなことが起きるでしょうか。横に引き伸ばされると、より小さな値やより大きな値がサンプルされることが予想できます。つまり、横に引き伸ばされた母集団分布からは、中央値から遠いデータが観測されるのではないでしょうか。以上の事から、2つの標本があり、中央値からの距離がどちらも同じ位なら同じようなばらつきがあると言えそうです。しかし、横に引き伸ばされた例の様に、どちらかの標本の中に中央値から遠い距離が割と測定されているなら2つの標本は同じようなばらつきを持っているとは言えないのではないでしょうか。これを順位を用いていい感じにしたのがMoodの検定になります

仮説

仮説は以下のようになります。

 \displaystyle H_0:F_1(x)=F_2(x)

 \displaystyle H_1:F_2(x)=F_1(\Delta x)

帰無仮説が何だか謎のように見えますが、イメージ的にはしくみで述べた通りです。また、 \displaystyle \Delta xはxの微小変化のように見えますが、 \displaystyle \Delta (\Delta>1)は尺度母数でただの数字と同じ扱いである事に注意です。引き伸ばし度合いのようなものです。これを踏まえると、帰無仮説は2つの母集団分布は大体同じようなばらつき(引きのばしの程度)*1であり、対立仮説は2つの母集団は同じばらつきは持っていないという事になります。

検定統計量

検定統計量の考え方を図で示します。以下の図を見てみましょう。

f:id:seibibibi:20191109205240p:plain

2標本の検定・位置母数の推定と同じように、まずは全てのデータを1つにまとめて昇順にした後で、群1に属するデータに1、群2に属するデータに0を割り当てます。その後、平均順位を求め、平均順位と1を割り当てたデータとの差の2乗を累積します。操作だけを見ると、普通に分散を求めているような気がしますよね。検定統計量の式は以下になります。
 \displaystyle MO = \sum_{i=1}^{m} (R_i-\frac{m+n+1}{2})^2

ここで、 \displaystyle R_iは群1に属する \displaystyle i番目のデータの順位、 \displaystyle \frac{m+n+1}{2}は平均順位になります。ちなみに、Moodの検定では差の二乗を累積させていますが、ここを絶対値を累積させると、アンサリー・ブラッドレー検定という物が現れます。詳細は省略します。

2.シミュレーション

やること

それでは実験に入っていきましょう。今回検証する事は導入でも述べた通り、中央値をずらすとMoodの検定はどのような振る舞いをするのかです。行う実験の手順の図を以下に示します。

f:id:seibibibi:20191109224852p:plain

中央値をずらしたり一致させたりした2つの母集団分布から、赤の分布から100個のデータ、青の分布から50個のデータをサンプリングします。サンプリングした後は検定統計量を求め、ヒストグラムを作ります。標本抽出は全体で10000回行う事にします。加えて、今回用いる母集団分布の例を以下の図に示します。

f:id:seibibibi:20191109221151p:plain

位置母数の推定と同じように混合正規分布からデータを発生させます。この2つの混合正規分布について、分散を大きくしたり小さくしたり、左に動かしたり右に動かしたりして検定統計量がどのように推移するのかを検証します。

検定統計量はRに存在するmood.testを利用したいと思います。以下にdocumentationのリンクを貼っておきます。また、mood.testで計算される検定統計量は標準化されています。Moodの検定もまた正規近似できる検定統計量である事が知られています。
mood.test function | R Documentation
ちなみにですが…

There are more useful tests for this problem.

という何やら不穏な1文が書いてありますが、気にしない事にします。何を問題にしているのかはリンク先に飛べば分かりますが、何も分からないという事が分かります。ノンパラと言ってるのに中央値を利用するんじゃねえよって事なんですかね。真相は謎のままです*2

今回は(今回から)、僕がまだノンパラ検定の理論を深く知っていない*3事の反省を込めて、あまり深入りをしない事にしました。ノンパラ検定の理論をしっかり勉強したら、しれっと修正しておきたいと思います*4

実験結果

実験1 2つの母集団で分散と中央値を完全に一致させる

まずは中央値を完全に一致させるように混合正規分布を配置しました。2つの母集団分布は以下のような様子です。2つの混合正規分布の平均と分散は完全に一致させました。*5

f:id:seibibibi:20191109221533p:plain

この時、mood.test(data1, data2)とmood.test(data2, data1)と2パターンの検定統計量を求めた時のヒストグラムを以下に示します。

f:id:seibibibi:20191109231926p:plain

全く同じ母集団分布を2つ用意したなら、検定量が棄却域に落ちないのは納得ですね。見事に2つとも一致しています。

実験2 中央値を一致させて分散を変える

今後は中央値を一致させて分散を変えてみましょう。これが本来のMoodの検定の前提条件となっています。用いる2つの母集団分布*6を以下に示します。

f:id:seibibibi:20191109223118p:plain

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

f:id:seibibibi:20191109233125p:plain

Mann-Whitneyの時と同じく2つに分かれましたね。ちなみに、山が二つに分かれてはいますがp値はどちらも同じ値を示します。この2つの山の平均を求めれば平均は0になります。

実験3 分散は同じにして中央値を変える

今度は分散を同じにして中央値を変えてみましょう。以下に2つの母集団分布*7を示します。

f:id:seibibibi:20191109223840p:plain

検定統計量はどうなるのでしょうか。以下にヒストグラムを示します。

f:id:seibibibi:20191109233328p:plain

両方とも棄却域に値が集中していますね。中央値が離れてしまうと正しく検定できないんですね。当たり前のことですが…

追加実験 F検定との比較

F検定はパラメトリック検定の枠組みの中で等分散かどうかを調べる検定です。Mood検定とF検定を比較してみましょう。実験条件は、実験2と同じデータセットを用います。

f:id:seibibibi:20191109234719p:plain

今回の実験では、F検定における検定統計量は自由度が(99, 49)のカイ二乗分布に従います。有意水準 \displaystyle \alpha0.05とした時、F分布では35個、Moodの検定では1656個が棄却域に落ちていました。やっぱり約束を守らないと変な結果になっちゃうんですね。

感想

やくそくをやぶるってたのしい

まとめ

今回はMoodの検定で遊びました。やはりMoodの検定も引数の渡し方(どちらの標本を基準にするか→1を割り当てるか)によって結果は変わるようですね。2標本のノンパラ検定の全てにこういう傾向が見られるのでしょう。この辺りはノンパラ検定の理論を深く追求した時に、まとめてどこかで書きたいと思います。

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

*1:イコールと書いてしまうと全く同じ関数であると勘違いしてしまいますよね…有意差が出なかった時の解釈に困るなあと個人的に思います。伸びてるか伸びてないかで言えば伸びてはいるんだろうけど何とも言えないよねえ…的な事を言える仮説があればなあ…

*2:何を問題にしているのかが原文には明記されていない

*3:2019年11月9日現在

*4:とりあえず現在は医療統計が入り用になっているので

*5:両方とも \displaystyle N(10, 5), N(20, 5)を0.3と0.7の割合で混合させました。

*6: \displaystyle N(10, 5), N(20, 5)を0.3と0.7の割合で混合したものと、 \displaystyle N(10, 10), N(20, 10)を0.3と0.7の割合で混合したものです。

*7: \displaystyle N(10, 5), N(20, 5)を0.3と0.7で混合した物、 \displaystyle N(20, 5), N(30, 5)を0.3と0.7で混合した物です。