Up

多変量重回帰モデルとコントラスト

従属変数が複数の場合

 

独立変数および従属変数がともに多変量である場合の回帰分析のプログラム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の値を行単位で書いていく。

このCAの値を書くことを必要な回数繰り返す。CAによる制約条件については、拙著「心理学データ分析と測定」における次式

の説明を参照されたい。プログラムでは

の場合を扱っている。

最後は、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

 

入力データの出力後、各コントラスト行列CAの組に対する検定統計量が出力されている。

Lambda = に続く値は、に従う統計量の値である。この統計量p 値を求めるシミュレーションプログラムのウェブサイトも用意した。

F の値は、コントラスト行列Aの列数u が1のときに出力される。

Chi-square の値は、バートレット近似(Bartlett’s approximation)の値である。この値と分布との関係を調べるシミュレーションプログラムのウェブサイトも用意した。

 

上の出力結果の意味は、拙著「心理学データ分析と測定」の「3.2 分析例2」を参照されたい。

 

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

 

 

Up