岡本安晴(Y. Okamoto; 2012.5);Up
信頼性係数オメガ
ベイズ的分析による区間推定
参考文献:Y. Okamoto (2013). “A Direct Bayesian
Estimation of Reliability” Behaviormetrika, 40, 149-168.
2013.08.28にプログラムを更新しました。
信頼性係数ωの説明は、岡本「心理学データ分析と測定」でも行っている。
信頼性係数オメガ(reliability index )の区間推定をベイズ的に行うプログラムOmegaMCMC.exeを作成した。このプログラムにより、係数ωの事後分布が図1のように得られる。
図1
実行形式プログラムOmegaMCMC.exeはクリックしてダウンロード・実行できるが、「*****.dllがありません」というようなエラーメッセージがでることがある。このときは、無料開発ツールであるVisual Studio 2013 Express for
Windows Desktopを
http://www.microsoft.com/visualstudio/jpn/downloads
からダウンロード・インストールすれば必要な「*****.dll」がインストールされる。このインストール後、プログラムOmegaMCMC.exeをダウンロード・実行できるようになる。
この事後分布から、パラメータの推定値(maximum a posteriori estimator: MAP estimator)を求めるとともに区間推定を行っている。これらの分析は、以下のテスト理論のモデル(McDonald, 1999, eq. (6.2))に基づいて行われている(関連ウェブサイトも参照)。
まず、テスト得点を、次式の1因子モデルで表す。
ここで、は第j項目()の得点であり、は平均値、は真値、は誤差項(真値以外の要因によるもので、項目に特異な値を含む)である。は項目の共通因子であり、平均0、分散1の正規分布に従い、は平均0、分散の正規分布に従うものとする。とは互いに独立であるとする。
M個の項目の和をとる。
ここで、
である。
このとき、真値の分散のの分散に対する比率として、信頼性係数ωが次式により定義される。
の事後分布を、との事後分布から求める。との事後分布は、次式により与えられる。
ここで、およびは回答者i()の項目jにおける値であることを表す。また、
である。
式(2)で与えられる事後分布をMCMCによるシミュレーションで推定すると、図1のような結果を得る。事前分布は、以下のように設定している。
ここで、は十分に広い範囲で一様分布であることを表し、は0以上の範囲で十分に広い範囲で一様分布であることを表す。
プログラムのソースコードファイルなどを圧縮ファイルとしてまとめて用意した。圧縮ファイル名OmegaMCMC.zipをクリックしてダウンロードすることができる。ダウンロードしたファイルOmegaMCMC.zipは、マウスの右ボタンでクリックして表示されるメニュから、「解凍」あるいは「展開」などを選んで解凍することができる。解凍したプログラムファイルはVisual C++ 2013で開くことができる。Visual C++ 2013は、無料開発ツールVisual Studio 2013 Express for Windows Desktopを
http://www.microsoft.com/visualstudio/jpn/downloads
からダウンロード・インストールすれば使用できる。
実行形式のプログラムファイルOmegaMCMC.exeは、クリックしてダウンロード・実行することができる。プログラムを実行すると、図2のフォームが表示される。
図2
「Print Data」にチェックを入れておくと、読み込んだデータも出力ファイルに出力されるので、データが正しく読み込まれたかどうかチェックできる。出力ファイルはテキストファイルなので、プログラムの実行終了後、エディタなどで開いて見ることができる。「GO」ボタンのクリックで、図3の入力データファイル名の設定を求めるダイアログ・ウィンドウが表示される。入力ファイルの形式は、後で説明する。
図3
入力データのファイル名を設定して、「開く」ボタンをクリックすると、次に出力用ファイルの名前の設定を求めるダイアログ・ウィンドウが表示される(図4)。
図4
出力は、テキストファイルとして書き出される。出力用テキストファイル名を設定して、「保存」ボタンをクリックすると、計算が始まる。計算が終了すると、図5のフォームが表示される。
図5
図5に描かれているのは、MCMCによる事後分布からのサンプリングの分布を、カーネル・スムーザーによって滑らかに描いたものである。この曲線は、カーネルの幅が小さすぎるとサンプリングの凸凹に過剰に対応したり(図7)、カーネルの幅が広すぎると過度に平坦になる(図8)。カーネルの幅は、図6の「W = 」の右側のテキストボックスの値で調整できる。値の再設定後、「Omega」ボタンのクリックで事後分布の再描画の計算が始まる。
図6
「W = 0.1」と設定して「Omega」ボタンをクリックすると、図7のようなグラフになる。
図7
「W = 10」で再計算を行うと、図8の結果を得る。
図8
図5の結果が適切であると判断できる。
描かれたグラフは、「Save」ボタンのクリックで保存することができる。
「Close」ボタンのクリックでプログラムの実行終了となるが、その時に、図9のメッセージボックスが表示され、計算結果が図4で設定したファイルに保存された旨が表示される。
図9
「OK」ボタンのクリックで、実行終了となる。
図3で指定する入力用ファイルは、以下の形式で用意する。なお、SPSS用データファイルから本プログラム用データファイルを作成する方法については、<http://y-okamoto-psy1949.la.coocan.jp/booksetc/pm2010/omega/#SPSSFiles>を参照されたい。
ファイルの先頭部分は、スラッシュ/(半角文字)で始まる行の次の行に項目数を書き、続く行にケースラベル(あるいは番号)を表す変量のラベルを書いてから、次に各変量のラベルを順番に書く。
======================================================
/
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
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
・
・
・
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\omega2\OmegaMCMC\OmegaMCMC\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
----------------- Main MCMC ----------------------
r_acpt_mu[0] = 0.48878
r_acpt_mu[1] = 0.46428
r_acpt_mu[2] = 0.40805
r_acpt_mu[3] = 0.47343
r_acpt_mu[4] = 0.48845
r_acpt_mu[5] = 0.47058
r_acpt_mu[6] = 0.47290
r_acpt_mu[7] = 0.46150
r_acpt_lmbd[0] = 0.46610
r_acpt_lmbd[1] = 0.46748
r_acpt_lmbd[2] = 0.41805
r_acpt_lmbd[3] = 0.47828
r_acpt_lmbd[4] = 0.44608
r_acpt_lmbd[5] = 0.47588
r_acpt_lmbd[6] = 0.49373
r_acpt_lmbd[7] = 0.44655
r_acpt_sgmE[0] = 0.45033
r_acpt_sgmE[1] = 0.45960
r_acpt_sgmE[2] = 0.41288
r_acpt_sgmE[3] = 0.45288
r_acpt_sgmE[4] = 0.49205
r_acpt_sgmE[5] = 0.46308
r_acpt_sgmE[6] = 0.46193
r_acpt_sgmE[7] = 0.49143
r_acpt_T[0] = 0.37183
r_acpt_T[1] = 0.37113
r_acpt_T[2] = 0.35508
r_acpt_T[3] = 0.33735
r_acpt_T[4] = 0.34433
r_acpt_T[5] = 0.34615
r_acpt_T[6] = 0.33768
r_acpt_T[7] = 0.38973
r_acpt_T[8] = 0.34055
r_acpt_T[9] = 0.36628
r_acpt_T[10] = 0.32140
r_acpt_T[11] = 0.37083
r_acpt_T[12] = 0.34388
r_acpt_T[13] = 0.32945
r_acpt_T[14] = 0.38198
r_acpt_T[15] = 0.33545
r_acpt_T[16] = 0.40608
r_acpt_T[17] = 0.34563
r_acpt_T[18] = 0.35015
r_acpt_T[19] = 0.34220
r_acpt_T[31] = 0.34915
r_acpt_T[32] = 0.30113
r_acpt_T[33] = 0.36295
r_acpt_T[34] = 0.33333
r_acpt_T[35] = 0.37265
r_acpt_T[36] = 0.34448
r_acpt_T[37] = 0.36303
r_acpt_T[38] = 0.39248
r_acpt_T[39] = 0.33125
r_acpt_T[40] = 0.34008
r_acpt_T[41] = 0.32868
r_acpt_T[42] = 0.34270
r_acpt_T[43] = 0.35295
r_acpt_T[44] = 0.33653
r_acpt_T[45] = 0.36173
r_acpt_T[46] = 0.33738
r_acpt_T[47] = 0.34398
r_acpt_T[48] = 0.32865
r_acpt_T[49] = 0.31958
Mean omega = 0.94540
lambda_mean[0] = 14.41370
Q1 = 9.81908
Med = 14.28156
Q3 = 19.11868
lambda_mean[1] = 13.98646
Q1 = 9.95161
Med = 13.86730
Q3 = 18.28686
lambda_mean[2] = 14.05368
Q1 = 9.31224
Med = 13.90954
Q3 = 19.13257
lambda_mean[3] = 17.84847
Q1 = 12.71646
Med = 17.66421
Q3 = 23.10596
lambda_mean[4] = 14.67915
Q1 = 10.35771
Med = 14.54231
Q3 = 19.46684
lambda_mean[5] = 13.57809
Q1 = 9.50663
Med = 13.47926
Q3 = 17.88529
lambda_mean[6] = 17.42041
Q1 = 12.87030
Med = 17.28198
Q3 = 22.54281
lambda_mean[7] = 17.55109
Q1 = 12.85886
Med = 17.36117
Q3 = 22.75478
sgmE_mean[0] = 10.52092
Q1
= 8.18810
Med = 10.42190
Q3 = 13.02909
sgmE_mean[1] = 8.99148
Q1 = 6.91157
Med = 8.91412
Q3 = 11.11532
sgmE_mean[2] = 11.99379
Q1 = 9.48207
Med = 11.89899
Q3 = 14.63092
sgmE_mean[3] = 10.78427
Q1 = 8.34031
Med = 10.70741
Q3 = 13.44118
sgmE_mean[4] = 10.11314
Q1 = 7.88159
Med = 10.02939
Q3 = 12.52127
sgmE_mean[5] = 9.33486
Q1 = 7.22619
Med = 9.24931 Q3
= 11.51613
sgmE_mean[6] = 9.46666
Q1 = 7.11798
Med = 9.37700
Q3 = 11.88494
sgmE_mean[7] = 10.31009
Q1 = 7.83934
Med =
10.22589
Q3 = 12.92017
omega_mean = 0.94540
Q1 = 0.92014
Med = 0.94670
Q3 = 0.96860
95% HPD Interval of omega = [0.92014, 0.96860]
Omega(MAP) = 0.94900 kw = 1
Omega(MAP) = 0.948224342677012 kw = 0.1
Omega(MAP) = 0.946165070109531 kw = 10
======================================================
「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に近いほど適合度は低い。
最後にの値が出力されている。McDonald (1999)の式(6.20a)による値がOmega_aであり、式(6.20b)による値がOmega_bである。式(6.20a)において、各誤差項がお互いに独立であると仮定すると、式(6.20b)が導かれる。また、各因子負荷量が同じ値であると仮定して、共通の共分散を標本共分散の平均値で推定するものがアルファ係数である。
「----------------- Main MCMC ----------------------」に続く部分が、ベイズ的分析をMCMCで行ったときの出力である。
「***_acpt_***」の値は、MCMCでのサンプリングにおけるproposal値の採用率である。
「Mean omega = 0.94540」はオメガの事後分布の平均値である。
その後、の平均値、第1四分位数、中央値、第3四分位数、およびの平均値、第1四分位数、中央値、第3四分位数が出力されている。[ ]内に示されている数値は、分析に用いられた項目の0から始まる通し番号であることに注意。
Omegaの平均値、第1四分位数、中央値、第3四分位数の出力に続いて、オメガの95% HPD確信区間が
「95% HPD Interval of omega = [0.92014, 0.96860]」
と出力されている。確信区間は信頼区間に相当するものである。
最後に
Omega(MAP) = 0.94900 kw = 1
Omega(MAP) = 0.948224342677012 kw = 0.1
Omega(MAP) = 0.946165070109531 kw = 10
と出力されているのは、図6の「W = 0.1」などの設定によって事後分布のグラフを描いたときの、Wの値(kw = として出力されている)とMAP推定値を出力したものである。推定値としてMAPを用いることについては、<岡本安晴「上下法データのベイズ的分析」基礎心理学研究、2011>を参照されたい。
引用文献
McDonald, R. P. 1999. Test Theory: A unified treatment. Psychology Press.
岡本安晴(2011).信頼性係数のベイズ推定.日本テスト学会第9回大会発表論文抄録集、120-123.