Up

係数オメガ

因子モデルに基づく信頼性係数(最小2乗法)

Pythonウェブサイトも用意しました。

ベイズ的分析によるプログラムは別のウェイブサイトに用意した。

本ウェブサイトのプログラム用データファイルをSPSSのデータファイルから用意する方法の説明も用意している。

本書「心理学データ分析と測定」の「8.1 分析例」に対応した説明は、このウェブサイトの後半で行っている。

 

 信頼性係数としてオメガMcDonald, 1999)を求めるVisual C++プログラムを作成してみた。信頼性係数は、項目jの得点の因子モデル

に基づいて算出される。ここで、は測定対象の値(真値)、は項目jに固有の特性など誤差項としてまとめたものである。は平均0、分散1に標準化されたものを考えるが、は素点である。

 項目が項目あるとし、それらの合計点がテスト得点として算出されるとする。

である。このとき、オメガは次式で与えられる。

の平均が0、分散が1であることから式(3)は

と書ける。式番号(6.20a)はMcDonald (1999)におけるものである。

 さらに、各が他の変数と独立であるとすると、式(6.20a)は

と書ける。

 各項目の真値の係数(因子負荷量)が同じであるとき、アルファ係数の公式が導かれる。

なお、項目が離散的な値をとる場合(<「当てはまる」、「どちらでもない」、「当てはまらない」>とか<「賛成」、「どちらかといえば賛成」、「どちらかといえば反対」、「反対」>のように選択肢で回答する場合)の分析法については、<カテゴリ型項目の信頼性係数>で説明している。

 

 モデル(1)におけるの推定を、以下に説明するプログラムCalcReliability.exeでは反復最小2乗法で行っている。すなわち、因子分析における主因子法の計算方法を共分散行列に適用して因子負荷量を推定している。詳しくは、本書「心理学データ分析と測定」の「第8章 心理学的特性を測る:心理尺度」を参照されたい。

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

 プログラムを実行すると、図1のフォームが表示される。

図1

 

Print Data」にチェックを入れておくと、読み込んだデータも出力ファイルに出力される。出力ファイルはテキストファイルなので、プログラムの実行終了後、エディタなどで開いて見ることができる。「GO」ボタンのクリックで、図2の入力データファイル名の設定を求めるダイアログ・ウィンドウが表示される。入力ファイルの形式は、後で説明する。

図2

 

入力データのファイル名を設定して、「開く」ボタンをクリックすると、次に出力用ファイルの名前の設定を求めるダイアログ・ウィンドウが表示される(図3)。

図3

 

出力はテキストファイルとして書き出される。出力用テキストファイル名を設定して、「保存」ボタンをクリックすると計算が始まる。計算が終了すると、出力用ファイルの保存が行われたことを示すダイアログ・ウィンドウが表示される(図4)。

図4

 

OK」ボタンをクリックすると、プログラムの実行が終了する。

 図2で指定する入力用ファイルは、以下の形式で用意する。なお、SPSSのデータファイルから、Excelとメモ帳を使って以下に説明する形式のテキストファイルを作成する方法については、<SPSSデータファイルのExcelとメモ帳による変換」(pdfファイル)>を参照されたい。

 プログラムでは、ファイルの先頭部分のスラッシュ/(半角文字)で始まる行までは、読み飛ばされる。このスラッシュで始まる行の次の行に、項目数を書き、続く行にケースラベル/番号を表す文字列(あるいは数値)を書いてから各変量のラベルを書く。

 

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

 

/

10

   ID    Item-1    Item-2    Item-3    Item-4    Item-5    Item-6    Item-7    Item-8    Item-9   Item-10

  

/

            1         1         1         1         1         1        1          1          1       1

            

/

    1        79        46        68        65        89        38        58        70        49        65

    2        48        71        61        50        43        27        48        54        34        61

    3        38        42        38        45        55        43        47        39        65        54

    4        45        51        30        71        63        45        62        58        34        51

    5        74        54        47        60        44        59        66        80        45        54

    6        63        66        58        62        74        31        75        74        58        67

    7        65        65        61        52        62        29        64        60        29        64

    8        72        85        89        82        75        11        76        73        60        82

    9        31        34        27        39        40        34        25        27        36        26

   10        62        78        45        61        60        60        47        39        63        48

       

       

       

   39        56        62        51        65        54        34        66        58        26        54

   40        58        64        70        59        67        54        69        57        56        49

   41        62        53        52        45        37        43        40        46        17        40

   42        19        25        21        32        36        65        38        22        51        33

   43        56        46        34        33        32        58        40        37        52        32

   44        62        75        85        74        65        58        76        89        63        68

   45        37        33        20        28        50        26        36        15        55        30

   46        44        46        59        50        28        62        53        38        28        53

   47        27        32        56        39        43        55        51        28        61        50

   48        36        46        49        54        31        75        43        40        30        49

   49        44        24        56        51        58        34        42        52        67        48

   50        71        75        64        84        58        25        67        65        47        56

/

 

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

 

 2つ目のスラッシュ/で始まる行に続く行に、オメガ係数の算出に用いる変数の選択を示す値を並べる。値が1であればオメガ係数の算出に用いられ、1以外であればその変数は除かれる。上のファイル例の場合は、すべての変数がオメガ係数の算出に用いられる。

 3つ目のスラッシュ/で始まる行の次の行から、1行に1人分のデータを書いていく。各行は、まずケースラベル/番号を表す文字列を書き、その後に各変数(項目)の値を書いていく。データの最後は、スラッシュ/で始まる行を置いてデータの終わりであることを示す。

 上の入力データの場合の出力ファイルの内容は、次のようになっている。

 

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

Data File = D:\yasuharu\www\LaCoocan\booksetc\pm2010\omega\CalcReliability\CalcReliability\Data10.txt

 

Variable Labels...

      Item-1(1)      Item-2(1)      Item-3(1)      Item-4(1)      Item-5(1)      Item-6(1)      Item-7(1)      Item-8(1)      Item-9(1)     Item-10(1)

NVars = 10     NCases = 50

 

M = 10

 

Vars Selected...

    Item-1    Item-2    Item-3    Item-4    Item-5    Item-6    Item-7    Item-8    Item-9   Item-10

 

GC-Alpha = 0.87874

 

Lambda[0]**2 / VarX[0]**2 = 0.62047

Lambda[1]**2 / VarX[1]**2 = 0.68193

Lambda[2]**2 / VarX[2]**2 = 0.55300

Lambda[3]**2 / VarX[3]**2 = 0.70249

Lambda[4]**2 / VarX[4]**2 = 0.66380

Lambda[5]**2 / VarX[5]**2 = 0.01035

Lambda[6]**2 / VarX[6]**2 = 0.65218

Lambda[7]**2 / VarX[7]**2 = 0.74611

Lambda[8]**2 / VarX[8]**2 = 0.01105

Lambda[9]**2 / VarX[9]**2 = 0.71423

 

         Item-1: lambda[0] = 12.99009

         Item-2: lambda[1] = 12.64156

         Item-3: lambda[2] = 12.76465

         Item-4: lambda[3] = 16.07550

         Item-5: lambda[4] = 13.39686

         Item-6: lambda[5] = -1.71878

         Item-7: lambda[6] = 12.30094

         Item-8: lambda[7] = 15.70182

         Item-9: lambda[8] = 1.61144

        Item-10: lambda[9] = 15.80337

 

GFI = 0.99511

 

Omega_a = 0.90654

Omega_b = 0.90616

 

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

 

Variable Labels…」に続く出力は、各変数のラベルとそれに対する選択・非選択を示す値として入力ファイルで設定されたものである。

GC-Alpha」の値は、McDonald (1999)Guttman-Cronbach alphaとも呼んでいるもので、いわゆるアルファ係数である。

続いて

の値が出力されている。これは、項目ごとにおける真値の分散の割合である。

 次に、各の値が出力されている。モデル(1)が素点に対する因子モデルであるので、因子負荷量の値は1より大きくなり得る。

 「GFI」は、モデル(1)の適合度(goodness of fit index)を表し、McDonald (1999)の式(6.9)によって算出されているものである(本書「心理学データ分析と測定」の「第8章 心理学的特性を測る」参照)。GFIは1に近いほど適合度は高く、0に近いほど適合度は低い。

 最後にの値が出力されている。式(6.20a)による値がOmega_aであり、式(6.20b)による値がOmega_bである。式(6.20a)において各誤差項がお互いに独立であると仮定して式(6.20b)が導かれ、各因子負荷量が同じ値であると仮定して共通の共分散を標本共分散の平均値で推定するものがアルファ係数である。

 

 上の出力におけるの値を見ると、項目Item-6の値は負であり、Item-9の値は他と比べて小さい。これらの項目を除いて以下のように再計算を行った。

 Item-6Item-9をアルファ係数の算出から除くため、上の入力用ファイルを以下のように変更する。

 

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

/

10

   ID    Item-1    Item-2    Item-3    Item-4    Item-5    Item-6    Item-7    Item-8    Item-9   Item-10

  

/

            1         1         1         1         1         0        1          1          0       1

           

/

    1        79        46        68        65        89        38        58        70        49        65

    2        48        71        61        50        43        27        48        54        34        61

    3        38        42        38        45        55        43        47        39        65        54

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

 

すなわち、Item-6Item-9に対する値を1から0に変更する。このデータを入力ファイルとしてオメガ係数を求めると、以下の出力ファイルを得る。

 

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

Data File = D:\yasuharu\www\LaCoocan\booksetc\pm2010\omega\CalcReliability\CalcReliability\Data10Sel.txt

 

Variable Labels...

      Item-1(1)      Item-2(1)      Item-3(1)      Item-4(1)      Item-5(1)      Item-6(0)      Item-7(1)      Item-8(1)      Item-9(0)     Item-10(1)

NVars = 10     NCases = 50

 

M = 8

 

Vars Selected...

    Item-1    Item-2    Item-3    Item-4    Item-5    Item-7    Item-8   Item-10

 

GC-Alpha = 0.93991

 

Lambda[0]**2 / VarX[0]**2 = 0.61837

Lambda[1]**2 / VarX[1]**2 = 0.68261

Lambda[2]**2 / VarX[2]**2 = 0.54611

Lambda[3]**2 / VarX[3]**2 = 0.70852

Lambda[4]**2 / VarX[4]**2 = 0.65920

Lambda[5]**2 / VarX[5]**2 = 0.65277

Lambda[6]**2 / VarX[6]**2 = 0.74942

Lambda[7]**2 / VarX[7]**2 = 0.71547

 

         Item-1: lambda[0] = 12.96813

         Item-2: lambda[1] = 12.64792

         Item-3: lambda[2] = 12.68483

         Item-4: lambda[3] = 16.14445

         Item-5: lambda[4] = 13.35040

         Item-7: lambda[5] = 12.30649

         Item-8: lambda[6] = 15.73652

        Item-10: lambda[7] = 15.81708

 

GFI = 0.99867

 

Omega_a = 0.94156

Omega_b = 0.94154

 

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

 

オメガ係数の値が0.91から0.94に上がっていることがわかる。

 

 

本書「心理学データ分析と測定」の「8.1 分析例」におけるプログラムの実行例

 

8.1 分析例」では、表8.1.1のデータ(DataTable811.txt)を扱っている。このデータを、因子分析のプログラム(実行形式fa_pf.exe、プログラムソースコードファイルなどの圧縮ファイルfa_pf.zip)で因子数2を指定して分析すると、以下の結果を得る。

 

Data File = D:\yasuharu\www\LaCoocan\booksetc\pm2010\omega\fa_pf\fa_pf\DataTable811.txt

 

/

Vars =         X1        X2        X3        X4        X5        X6

n = 50

 

                mean        sd

X1             3.840     1.891

X2             4.040     1.843

X3             4.000     1.908

X4             4.240     1.924

X5             4.160     1.891

X6             4.120     1.545

 

相関行列

                  X1        X2        X3        X4        X5        X6

        X1   1.00000   0.71914  -0.73190  -0.09390  -0.65309   0.69148

        X2   0.71914   1.00000  -0.68238   0.05932  -0.68471   0.69371

        X3  -0.73190  -0.68238   1.00000   0.00545   0.65982  -0.67870

        X4  -0.09390   0.05932   0.00545   1.00000  -0.08752  -0.04334

        X5  -0.65309  -0.68471   0.65982  -0.08752   1.00000  -0.60929

        X6   0.69148   0.69371  -0.67870  -0.04334  -0.60929   1.00000

 

相関行列の固有値

                                      Cum.Sum    Cum.Prop(%)

             1:        3.72318        3.72318           62.1

             2:        1.03244        4.75561           79.3

             3:        0.37846        5.13407           85.6

             4:        0.32738        5.46145           91.0

             5:        0.29449        5.75594           95.9

             6:        0.24406        6.00000          100.0

 

繰り返し回数     = 2310

抽出された因子数 = 2

 

 

初期解

            Factor-1  Factor-2  Communalities

X1           0.86204  -0.15069        0.76581

X2           0.84843   0.09641        0.72914

X3          -0.83419   0.01656        0.69614

X4          -0.00045   0.61304        0.37582

X5          -0.78448  -0.14684        0.63697

X6           0.80466  -0.06588        0.65181

 

バリマックス回転後の因子パターン

            Factor-1  Factor-2  Communalities

X1           0.86176  -0.15226        0.76581

X2           0.84861   0.09486        0.72914

X3          -0.83415   0.01808        0.69614

X6           0.80454  -0.06734        0.65181

X5          -0.78475  -0.14541        0.63697

X4           0.00067   0.61304        0.37582

Contri.        3.422     0.434

 

プロマックス回転後の因子パターン (r = 4)

            Factor-1  Factor-2

X1           0.85963  -0.15076

X2           0.84997   0.09637

X3          -0.83392   0.01661

X6           0.80360  -0.06593

X5          -0.78682  -0.14682

X4           0.00933   0.61312

 

因子相関行列...

                      Factor-1       Factor-2

Factor-1               1.00000       -0.01590

Factor-2              -0.01590        1.00000

 

プロマックス回転後の構造行列

            Factor-1  Factor-2

X1           0.86203  -0.16443

X2           0.84844   0.08286

X3          -0.83418   0.02987

X6           0.80465  -0.07871

X5          -0.78449  -0.13430

X4          -0.00042   0.61297

 

本書「心理学データ分析と測定」の表8.1.2(固有値)と表8.1.3(バリマックス回転後の因子パターン)を確認することができる。

 

項目X4を除いたデータ(DataX4Del.txt)に対して、因子数1を指定したときの解は以下のようになる。

 

Data File = D:\yasuharu\www\LaCoocan\booksetc\pm2010\omega\fa_pf\fa_pf\DataX4Del.txt

 

/

Vars =         X1        X2        X3        X5        X6

n = 50

 

                mean        sd

X1             3.840     1.891

X2             4.040     1.843

X3             4.000     1.908

X5             4.160     1.891

X6             4.120     1.545

 

相関行列

                  X1        X2        X3        X5        X6

        X1   1.00000   0.71914  -0.73190  -0.65309   0.69148

        X2   0.71914   1.00000  -0.68238  -0.68471   0.69371

        X3  -0.73190  -0.68238   1.00000   0.65982  -0.67870

        X5  -0.65309  -0.68471   0.65982   1.00000  -0.60929

        X6   0.69148   0.69371  -0.67870  -0.60929   1.00000

 

相関行列の固有値

                                      Cum.Sum    Cum.Prop(%)

             1:        3.72318        3.72318           74.5

             2:        0.39739        4.12056           82.4

             3:        0.33174        4.45230           89.0

             4:        0.29459        4.74690           94.9

             5:        0.25310        5.00000          100.0

 

繰り返し回数     = 21

抽出された因子数 = 1

 

 

初期解

            Factor-1  Communalities

X1           0.85522        0.73139

X2           0.84752        0.71829

X3          -0.83703        0.70062

X5          -0.77942        0.60749

X6           0.80582        0.64934

 

8.1.4(因子負荷量)に示されている結果を確認することができる。

 

項目4(X4)を除き、項目3と5(X3X5)のスコアをそれぞれ逆転したとき(DataX4Del_X3X5Inv.txt)の信頼性係数を、プログラム(実行形式CalcReliability.exe、ソースコードファイルなどの圧縮ファイルCalcReliability.zip)で求めると以下のようになる。

 

Data File = D:\yasuharu\www\LaCoocan\booksetc\pm2010\omega\CalcReliability\CalcReliability\DataX4Del_X3X5Inv.txt

 

Variable Labels...

          X1(1)          X2(1)         X3I(1)          X3(0)         X5I(1)          X5(0)          X6(1)

NVars = 7     NCases = 50

 

M = 5

 

Vars Selected...

        X1        X2       X3I       X5I        X6

 

GC-Alpha = 0.91268

 

Lambda[0]**2 / VarX[0]**2 = 0.73122

Lambda[1]**2 / VarX[1]**2 = 0.71524

Lambda[2]**2 / VarX[2]**2 = 0.70067

Lambda[3]**2 / VarX[3]**2 = 0.61077

Lambda[4]**2 / VarX[4]**2 = 0.64902

 

             X1: lambda[0] = 1.63310

             X2: lambda[1] = 1.57488

            X3I: lambda[2] = 1.61322

            X5I: lambda[3] = 1.49254

             X6: lambda[4] = 1.25694

 

GFI = 0.99966

 

Omega_a = 0.91459

Omega_b = 0.91457

 

本書「心理学データ分析と測定」の「8.1 分析例」に示されている値

が確認できる。

 

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

 

 

引用文献

McDonald, R. P. 1999. Test Theory: A unified treatment. Psychology Press.

 

 

Up