Up

カイ2乗検定

適合度の検定

 

データに対する理論的分布の適合度の検定を行うVisual C++プログラムを作成した。このカイ2乗検定については<岡本安晴「データ分析のための統計学入門」2009、おうふう;第3章:検定>などを参照されたい。

プログラムTestDistriByChi2.exeをクリックしてダウンロード・実行すると図1のウィンドウが表示される。

図1

 

実行開始時に「***.dllがインストールされていません」というようなエラーが表示されたときは、Visual Studio Express for Window Desktop

http://www.microsoft.com/visualstudio/jpn/downloads

からダウンロード・インストールすれば、必要なファイルがインストールされるので、プログラムTestDistriByChi2.exeをクリックしてダウンロード・実行することができるようなる。

なお、Windows 8/8.1の場合の手順については、特にウェブサイトを用意して説明している。

「カテゴリ追加」ボタンをクリックしてカテゴリの数を必要なだけ用意する。増やしすぎたときは「カテゴリ削除」ボタンをクリックすると減らすことができる。必要なカテゴリ数に設定後、各カテゴリの確率と観測度数を設定する。確率は

 

               double sum = 0.0;

               for (int i = 0; i < c; i++) sum += p[i];

               for (int i = 0; i < c; i++){

                             p[i] /= sum;

                             dataGridView1->Rows[0]->Cells[i]->Value = p[i];

               }

と和が1になるように調整されるので、確率ではなく比率を設定してもよい。すべてに同じ値を設定すると一様分布を設定したことになる。調整後の確率値はグリッドに表示されるので、正しく調整されたかどうかを確認することができる。

確率(比率)とデータの設定後、「計算」ボタンをクリックすると計算結果が下のリッチテキストボックス内に表示される(図2)。

図2

 

の値(chi-squared)に対応する確率を求めるVisual C++プログラムはウェブサイト<カイ2乗分布の計算>に用意した。

 

 リッチテキスト内のテキストは「コピー」ボタンのクリックでクリップボードにコピーすることができるので、コピー後、ワードなどに張り付けることができる。

 

プログラム・ファイルは圧縮ファイルとしてまとめた。ファイル名TestDistriByChi2.zipをクリックしてダウンロードしたものをマウスの右ボタンクリックで表示されるメニュ「解凍」あるいは「展開」などを選ぶと解凍できる。解凍したものはVisual Studio 2013などで開いてビルド実行することができる。

 

上のプログラムでは「確率Pi」が設定されているが(図2)、重みで設定するプログラムTestDistriByChi2Weight.exeも用意した。このプログラムをクリックして起動すると図3のフォームが表示される。

図3

 

図1のフォームのグリッドセルの「確率Pi」とあるのが、「重みWi」に変わっている。確率ではなく、確率に比例した重みを設定する。それ以外は図1のプログラムと同じである。図4のように設定してみる。

図4

 

「計算」ボタンをクリックすると、図5のようになる。

図5

 

リッチテキスト内の出力は以下のようになっている。

 

カテゴリ - 1

             Wi          Prob.      Obs.      Est.

              3            0.5        20     25.00

カテゴリ - 2

             Wi          Prob.      Obs.      Est.

              3            0.5        30     25.00

 

chi-squared = 2.00000     df = 1

 

重みに比例して確率が設定されていることがわかる。

プログラムのソースコードファイルなどは圧縮ファイルTestDistriByChi2Weight.zipとしてまとめた。圧縮ファイル名TestDistriByChi2Weight.zipをクリックしてダウンロード解凍すれば、Visual Studio 2013などで開くことができる。

 

Up