二値の因子分析

二値のデータ(binary data)の因子分析か構造方程式モデリング(共分散構造分析、SEM)と格闘する必要に迫られてきた。
ごにょごにょと調べてみると、やはりφ係数を基に分析するのはよろしくないらしい。

心理学研究の基礎(fpr)メーリングリストに関連する議論があった。
[fpr 288] quant 3 etc.を含むスレッドや[fpr 289] FA of bin dataを含むスレッドが参考になる。


SASのCALISプロシジャやmplus、EQS、LISREあたりでは四分相関係数(tetrachoric correlation)や多分相関係数(polychoric correlation)を使っている模様。”—ʉ»‚R—ނƏ‡˜ŽÚ“x€–ځ|”n’ûŒ`–â‘è参照。


あいにくそんな高級なツールは持ち合わせていない。
だけど、四分相関係数や多分相関係数さえ算出できればSPSSなりAMOSなりに突っ込んで分析はできそう。
ぐぐってみると幾つか公開されているツールが見つかった。


まず、堀先生のところにexcel vbaのプログラムがある。
これらはクロス集計表を基に算出する形なので沢山の変数から相関行列を作りたいときには手間がかかる。


それから、EasyOneFactorという国産フリーソフトでも四分相関係数を算出できる。
こちらは相関行列を返してくれるうえ、SPSSデータ形式でも出力してくれる。(ただ、私が使っているSPSS11.5ではうまく読み込んでくれなかった。)


そして、われらがR言語ではJohn Fox先生のpolycorパッケージで計算できる。


で、EasyOneFactorとR言語のpolycorパッケージをいじってみたのですが、それぞれの出す数字が少しずれているのです。
実用上障害になるような違いではないと思うのですが、どっちが正しいのか検証もできず困ってます。
とりあえずは、使い慣れているR言語のほうを使うことになりそうですが。