Up

被験者内1要因分散分析

 

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

図1

 

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

図2

 

図3

 

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

図4

 

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

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

図5

 

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

図6

 

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

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

 

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

データ =

           1.00           3.00           2.00

           5.00           9.00           7.00

           6.00          12.00           9.00

 

平均値

          4.000          8.000          6.000

 

 

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

被験者間                78.00              2         39.000

要因(主効果)             24.00              2         12.000         12.000

残差(交互作用)             4.00              4          1.000

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

 

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

 

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

 

        double ss = 0.0;

        double ss_a = 0.0;

        double ss_s = 0.0;

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

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

                        ss += sqr(y[i][j] - g_my);

                        ss_a += sqr(my_j[j] - g_my);

                        ss_s += sqr(my_i[i] - g_my);

                }

        }

        double ss_sa = ss - ss_a - ss_s;

 

        //         平均平方和の計算

        double ms_s = ss_s / (n - 1);

        double ms_a = ss_a / (a - 1);

        double ms_sa = ss_sa / ((n - 1) * (a - 1));

                double f = ms_a / ms_sa;                //  F値

 

                        fout->WriteLine();

                        fout->WriteLine();

                        fout->WriteLine(String(" ").PadLeft(20) + String(" ").PadLeft(9) + "平方和" +

                                                        String(" ").PadLeft(9) + "自由度" + String(" ").PadLeft(5) + "平均平方和" +

                                                        String("F").PadLeft(15) );

                        fout->WriteLine("被験者間      " + ss_s.ToString("F2")->PadLeft(15) +

                                                        (n-1).ToString()->PadLeft(15) + ms_s.ToString("F3")->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) +

                                                        ((n-1)*(a-1)).ToString()->PadLeft(15) + ms_sa.ToString("F3")->PadLeft(15) );

 

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

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

 

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

 

Up