Up

被験者間1要因分散分析

 

 被験者間1要因分散分析<岡本安晴「データ分析のための統計学入門」おうふう、第4.2節参照>を行うプログラム例OneFactorBtwn.exeを作成した。プログラムOneFactorBtwn.exe.NET Framework3.5対応である。プログラム名OneFactorBtwn.exeをクリックしてダウンロード・実行すると図1のフォームが現れる。

図1

 

データ・グリッド・ビュー内の「1番目」とある行のセルをクリックしてマークし(青色に変える[図2])、「追加(行)」ボタンをクリックするとマークしたセルの行に新しい行が挿入される(図3)。

図2

 

図3

 

「削除(行)」ボタンをクリックするとマークされたセルの行が削除される。この「追加(行)」ボタンおよび「削除(行)」ボタンのクリックにより、データ・グリッド・ビュー内の行数を調整する。条件を表す列も「追加(条件)」および「削除(条件)」ボタンを同様にクリックして列数(条件数)を調整する。行数と列数を分散分析のデザインに合わせて調整して、データをセル内に設定する。各条件に対するラベルも適当に設定する(図4)。

図4

 

設定したデータは「保存」ボタンのクリックでファイルに保存され、保存されたデータは「読出」ボタンのクリックで読み込むことが出来る。「印刷」ボタンをクリックすると印刷される。

「計算」ボタンのクリックで計算が始まるが、まず図5のダイアログ・ボックスが表示されて計算結果を出力するファイル名の設定が求められる。

図5

 

出力ファイル名の設定後、「保存」ボタンをクリックすると計算が始まり、計算結果などの出力がファイルに書き出されると図6のメッセージ・ウィンドウが表示される。

図6

 

OK」ボタンのクリックで図4のフォームに戻るので、「終了」ボタンをクリックしてプログラムの実行を終了する。

実行終了後、出力ファイルを開くと以下のように分散分析表が出力されている。

 

=================================

データ =

           5.00           8.00           3.00

           7.00           6.00           5.00

           3.00           9.00           2.00

 

平均値

          5.000          7.667          3.333

 

 

               平方和         自由度     平均平方和              F

級間           28.67              2         14.333          4.962

級内           17.33              6          2.889

計            46.00              8

=================================

 

F値に対する確率は<エフ分布の計算>に用意したプログラムで求めることができる。

 

分散分析表の算出は以下のコードで行っている。

 

        double ss_a = 0.0;

        double ss_sa = 0.0;

        for (int j = 0; j < a; j++){

                ss_a += n * sqr( my[j] - g_my );                //  級間平方和

                for (int i = 0; i < n; i++)

                        ss_sa += sqr( y[i][j] - my[j] );        //  級内平方和

        }

 

        double ss_total = ss_a + ss_sa;                         //  データ全体の変動量

        double ms_a = ss_a / (a - 1.0);                         //  級間平均平方和

        double ms_sa = ss_sa / (a * (n - 1));           //  級内平均平方和

 

        double f = ms_a / ms_sa;                                        //  F値

 

        fout->WriteLine();

        fout->WriteLine();

        fout->WriteLine(String(" ").PadLeft(6+9) + "平方和" + String(" ").PadLeft(9) + "自由度" +

                                        String(" ").PadLeft(5) + "平均平方和" + String("F").PadLeft(15) );

        fout->WriteLine("級間 " + ss_a.ToString("F2")->PadLeft(15) + (a-1).ToString()->PadLeft(15) +

                                        ms_a.ToString("F3")->PadLeft(15) + f.ToString("F3")->PadLeft(15) );

        fout->WriteLine("級内 " + ss_sa.ToString("F2")->PadLeft(15) + (a*(n-1)).ToString()->PadLeft(15) +

                                        ms_sa.ToString("F3")->PadLeft(15) );

        fout->WriteLine("計  " + ss_total.ToString("F2")->PadLeft(15) + (a*n-1).ToString()->PadLeft(15) );

 

上のプログラムのソースコードファイルなどは圧縮ファイルOneFactorBtwn.zipとしてまとめた。圧縮ファイル名OneFactorBtwn.zipをクリックしてダウンロードしたものをマウスの右ボタンでクリックして表示されるメニュから「展開」あるいは「解凍」を選ぶと解凍することが出来る。解凍したファイルは、Visual C++2008で開くことが出来る。

また、標準C++準拠プログラム例は本ウェブサイトとは別のウェブサイト<被験者間1要因分散分析>に用意した。

 

なお、Visual C++プログラミングの入門書<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房>を上梓した。

 

Up