一般化可能性理論のプログラム例
日本心理学会第78回大会一般研究発表(ポスター)1PM-2-004の「一般化可能性理論におけるベイズ的分析例:一般化可能性係数の事後分布」の作成において用いた一般化可能性理論(generalizability
theory)のプログラムを本ウェブサイトに公開した。入力データの形式は一般性を考えて設定したので、他の評定データに対しても容易に利用できると思われる。入力データの形式については、図3あるいは図9を参照されたい。プログラムは、利用者の責任において、自由に御利用下さい。
One-facet designのプログラムは圧縮ファイルNBVaried.zipにまとめ、Two-facet designのプログラムは圧縮ファイルNiNoVaried.zipにまとめた。それぞれファイル名をクリックしてダウンロード解凍すれば、Visual Studio 2013で開くことができる。
One-facet designのプログラムを起動すると、図1のフォームが表示される。
図1
「GO」ボタンのクリックで、入力データファイル名の設定を求めるダイアログウィンドウが表示される(図2)。
図2
入力用データファイルは、テキストファイルとして図3に示す形式で用意する。
図3
先頭がスラッシュ / で始まる最初の行の次の行に
被評定対象数 評定項目数
の形式で被評定対象数と評定項目数を書く。
次のスラッシュ / で始まる行の次の行から、1行に1人の評定データを、評定項目の評定を並べて書く。図3では、3項目の評定値データが1行に並べて書かれている。
入力データファイル名の設定後、「開く」ボタンをクリックすると、次に出力ファイル名の設定を求めるダイアログウィンドウが表示される(図4)。
図4
「保存」ボタンのクリックで計算が始まり、計算が終了すると図5のメッセージボックスが表示される。
図5
「OK」ボタンのクリック後、図6のフォームのボタンをクリックすると事後分布が表示される。
図6
例えば、「Draw_Rho」ボタンのクリックで図7のように一般化可能性係数(generalizability coefficient)の事後分布が表示される。
図7
図7の左上は図8のようになっている。
図8
「k-width」の値は、滑らかな曲線を引くための平均をとるときの幅(width)である。コードは以下のようである。
double k_smoother( double x, double *
samples, int N, double sgm ){
double
v = 0.0;
for
(int i = 0; i < N; i++)
if
(Math::Abs(x - samples[i]) < 4 * sgm){
v
+= Math::Exp( -0.5 * sqr((x - samples[i]) / sgm));
}
return
v / (N * sgm * Math::Sqrt(2.0 * Math::Atan(1.0) * 4.0));
}
引数 sgm にwidthが設定される。 widthの値が小さすぎると、サンプル値の度数分布の細かい変動に敏感なデコボコな曲線となり、widthの値が大きすぎると平均の範囲が広くなり過ぎておおまかな形状を表すことになる。widthの値が大きすぎると、特に裾の広がり過ぎる曲線になる。
「MaxX」は、横軸の最大値である。最小値は0に固定されている。
「Re-Draw」ボタンをクリックすると、「k-width」と「MaxX」に設定されている値で再描画が行われる。「Save」ボタンをクリックすれば画像ファイルに保存できるので、後で、画像ファイルの編集を行うこともできる。
Two-facet designのプログラムも上のone-facet designの場合と同様であるが、入力データファイルの形式は図9に示すものである。
図9
行の先頭がスラッシュ / で始まる最初の行の次の行に、被評定対象数、評定項目数、評定者数を順番に並べて書く。
次の行の先頭がスラッシュ / で始まる行の次の行から、1行に1人の被評定者の評定値を並べて書く。この並べ方は、
評定者1による各評定項目の評定値、 評定者2による各評定項目の評定値、・・・
というような形式で書く。
Two-facet designのプログラムのフォームは、one-facet designに比べてボタンの数が多くなっている(図10)。
図10
図9のデータに対する一般化可能性係数(generalizability coefficient)の事後分布は図11のようである。
図11