平均値の差のt検定
条件間で対応のあるデータの場合
条件間で対応のあるデータの場合の平均値の差のt検定<岡本安晴「データ分析のための統計学入門」おうふう、第3.2節参照>を行うプログラム例t-test_rel.exeを作成した。プログラムt-test_rel.exeは. NET Framework3.5対応であるが、プログラム名t-test_rel.exeをクリックしてダウンロード・実行すると図1のフォームが現れる。
図1
「*のラベル」の右に必要ならば変数名を設定する。データ・グリッド・ビューの右の「追加」ボタンをクリックして、データ・グリッド・ビュー内のセルの行数を必要なだけ増やしてデータを設定する(図2)。行を増やし過ぎたときは「削除」ボタンをクリックすると削除される。設定したデータは「保存」ボタンをクリックすると保存され、保存したデータは「読出」ボタンをクリックして読み込むことが出来る。設定されたデータは「印刷」ボタンのクリックでプリンタに印刷される。
図2
データの設定後、「計算」ボタンをクリックすると計算結果を出力するファイル名の設定を求めるダイアログ・ボックスが表示される(図3)。
図3
出力ファイル名の設定後、「保存」ボタンをクリックすると計算が始まり、計算とファイルへの書き出しが終わって出力ファイルが閉じられると図4のメッセージ・ウィンドウが表示される。
図4
「OK」ボタンのクリックで図2のフォームの状態に戻る。「終了」ボタンのクリックでプログラムの実行終了となる。実行終了後、図3で設定したテキストファイルを開くと、以下の内容が出力されている。
========================
第1変数 ==> X変数
第2変数 ==> Y変数
データ =
x[1] = 5.000 y[1] = 9.000
x[2] = 3.000 y[2] = 7.000
x[3] = 6.000 y[3] = 8.000
Xの平均 = 4.66667
Xの分散 = 1.55556
Xの標準偏差 = 1.24722
Xの不偏分散 = 2.33333
Xの不偏分散の平方根 = 1.52753
Yの平均 = 8.00000
Yの分散 = 0.66667
Yの標準偏差 = 0.81650
Yの不偏分散 = 1.000
Yの不偏分散の平方根 = 1.00000
t = -5.00000 自由度 = 2
========================
入力データと記述統計量の出力後、最後にtの値と自由度が出力されている。t値は以下のコードによって算出されている。
double sdd = 0.0;
for (int i = 0; i
< n; i++)
sdd
+= sqr(x[i] - y[i] - MeanD);
double SD = Math::Sqrt(sdd/n); // x[i]-y[i]の標準偏差
// tの計算
double t = MeanD / (SD / Math::Sqrt(n - 1.0));
t値に対する確率は<ティ分布の計算>に用意したプログラムで求めることが出来る。
平均値の差の検定のためのt値を求める上のプログラムのソースコードなどは圧縮ファイルt-test_rel.zipとしてまとめた。圧縮ファイル名t-test_rel.zipをクリックしてダウンロードしたものをマウスの右ボタンでクリックして表示されるメニュから「展開」あるいは「解凍」を選ぶと解凍することが出来る。解凍したファイルは、Visual C++2008で開くことが出来る。
また、標準C++準拠プログラム例は本ウェブサイトとは別のウェブサイト<平均値の差のt検定>に用意した。
なお、Visual C++プログラミングの入門書<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房>を上梓した。