多変量重回帰モデルとコントラスト
従属変数が複数の場合
独立変数および従属変数がともに多変量である場合の回帰分析のプログラムGaussMarkoffMVMultiReg.exeを用意した。Pythonスクリプトは、このウェブサイトに用意した。
プログラム名GaussMarkoffMVMultiReg.exeをクリックしてダウンロード実行すると、図1のフォームが表示される。
図1
GOボタンのクリックで、入力データファイル名の設定を求めるダイアログウィンドウが表示される(図2)。
図2
拙著「心理学データ分析と測定」の表3.2.1のデータの場合、
表3.2.1 |
|
A校の生徒の点数 |
B校の生徒の点数 |
(41, 77) (35, 77) (74, 29) (51, 67) (58, 55) (50, 69) (61, 49) (67, 53) (60, 52) (51, 67) (44, 61) (53, 64) (62, 54) (84, 30) (61, 45) (77, 41) (67, 46) (68, 41) (53, 60) (39, 76) |
(55, 64) (54, 77) (43, 87) (83, 47) (61, 63) (84, 42) (62, 62) (86, 27) (60, 63) (35, 89) (73, 50) (64, 48) (79, 47) (48, 79) (58, 74) (54, 66) (68, 54) (90, 29) (74, 43) (49, 69) |
入力データファイル(DataTable321.txt)は以下の形式で用意する。
/
2 2
41
77
1
0
35
77
1
0
74
29
1
0
51
67
1
0
58
55
1
0
50
69
1
0
61
49
1
0
67
53
1
0
60
52
1
0
51
67
1
0
44 61
1
0
53
64
1
0
62
54
1
0
84
30
1
0
61
45
1
0
77
41
1
0
67
46
1
0
68
41
1
0
53
60
1
0
39
76
1
0
55
64
0
1
54
77
0
1
43
87
0
1
83
47
0
1
61
63
0
1
84
42
0
1
62
62
0
1
86
27
0
1
60
63
0
1
35
89
0
1
73
50
0
1
64
48
0
1
79
47
0
1
48
79
0
1
58
74
0
1
54 66
0
1
68
54
0
1
90
29
0
1
74
43
0
1
49
69
0
1
/
/
1
1 -1
/
1
1
0
/
1
1 -1
/
1
0
1
/
1
1 -1
/
1
1
1
/
-1
データファイルは、スラッシュ / で始まる行によって区切られたテキストファイルである。
最初のスラッシュ / で始まる行の次の行に、従属変数の数pと独立変数の数qを空白文字で区切って並べる。
次の行から、1行に1ケースのデータを、従属変数、独立変数と並べる。i番目のケースのデータが、従属変数Y(i,1)、・・・、Y(i,p)、独立変数X(i,1)、・・・、X(i,q)であれば、1行に
Y(i,1) Y(i,2) ・・・ Y(i,p) X(i,1) X(i,2) ・・・ X(i,q)
と書く。すべてのデータを書き終わったら、スラッシュ / で始まる行を置いてデータの終わりであることを示す。
次のスラッシュ / で始まる行の次の行には、コントラスト行列Cの行数を書き、続く行から1行に1つずつコントラストを書いていく。
Cの値を書き終わったら、また、スラッシュ / で始まる行を置いて、その次の行にはコントラスト行列Aの列数を書き、続く行からAの値を行単位で書いていく。
このCとAの値を書くことを必要な回数繰り返す。CとAによる制約条件については、拙著「心理学データ分析と測定」における次式
の説明を参照されたい。プログラムでは
の場合を扱っている。
最後は、Cの行数として負の値を書くと、入力の終了となる。
図2のダイアログで入力データファイル名を設定して、「開く」ボタンをクリックすると、次に出力ファイル名の設定を求めるダイアログウィンドウが表示される(図3)。
図3
テキストファイル名を設定して、「保存」ボタンをクリックすると計算が始まる。計算が終了すると、出力ファイルが保存されたことを示すメッセージボックスが表示される(図4)。
図4
「OK」ボタンのクリックでプログラムは終了する。
プログラムの終了後、出力ファイルを開くことができる。上の入力データDataTable321.txtの場合、出力ファイルは以下のようになっている。
/
p =
2 q = 2
Input
Data Pattern...
y[1]: 41 77 X[1]: 1 0
y[2]: 35 77 X[2]: 1 0
y[3]: 74 29 X[3]: 1 0
y[4]: 51 67 X[4]: 1 0
y[5]: 58 55 X[5]: 1 0
・
・
・
y[36]: 54 66 X[36]: 0 1
y[37]: 68 54 X[37]: 0 1
y[38]: 90 29 X[38]: 0 1
y[39]: 74 43 X[39]: 0 1
y[40]: 49 69 X[40]: 0 1
Rank
of X = 2
g = 1
C =
1 -1
u = 1
A =
1
0
Lamba
= 0.952043515145466
df1 = 1 df2 = 1 df3 = 38
F =
1.91414 df1 = 1 df2 = 38
Chi-square
= 1.84292 df = 1
g = 1
C =
1 -1
u = 1
A =
0
1
Lamba
= 0.988658155440624
df1 = 1 df2 = 1 df3 = 38
F =
0.43593 df1 = 1 df2 = 38
Chi-square
= 0.42775 df = 1
g = 1
C =
1 -1
u = 1
A =
1
1
Lamba
= 0.536331168418509
df1 = 1 df2 = 1 df3 = 38
F =
32.85175 df1 = 1 df2 = 38
Chi-square
= 23.36263 df = 1
入力データの出力後、各コントラスト行列CとAの組に対する検定統計量が出力されている。
Lambda = に続く値は、に従う統計量の値である。この統計量のp 値を求めるシミュレーションプログラムのウェブサイトも用意した。
F の値は、コントラスト行列Aの列数u が1のときに出力される。
Chi-square の値は、バートレット近似(Bartlett’s approximation)の値である。この値と分布との関係を調べるシミュレーションプログラムのウェブサイトも用意した。
上の出力結果の意味は、拙著「心理学データ分析と測定」の「3.2 分析例2」を参照されたい。
プログラムのソースコードなどを圧縮ファイルGaussMarkoffMVMultiReg.zipとしてまとめた。圧縮ファイル名GaussMarkoffMVMultiReg.zipをクリックしてダウンロード解凍すれば、Visual Studio 2013で開くことができる。