マルチレベル分析用マクロ HAD7.2をアップ

このブログの目玉商品(?)、HADをバージョンアップしました。
前回のHAD5.1から大幅に機能が増えました。ちょっと増えすぎたかも。
HAD7.2
HADについての説明
今回は集団レベル・個人レベル相関係数の有意性検定を実装しました!マルチレベル分析を実行できるソフトウェアMplusの結果をほぼ完全に再現します。HLMやマルチレベルSEMをやる前に走らせておくと解釈などに非常に便利です。
あと、信頼性分析を入れました。ω係数や因子得点の信頼性係数を出力します。
この辺は完全に趣味で入れてます。でもいいんです。基本的に僕が使うプログラムだから。
さらにペアワイズ相関分析もHADに実装しておきました。
とまぁ、盛りだくさんなバージョンアップなので6を通り越して7になりました。
本当はマルチレベル相関分析が入っていないHAD6をアップしようと思ったのですが、急遽思いついたので導入しました。というわけで現段階で7.2になったわけです。
一応サンプルデータをつけているので、とりあえずどんな機能があるのか知りたい人はそれで遊んでみてください。サンプルデータの解釈についてはまた後日記事を書きます。
詳細は「続き」見てください。


さて、まず増えた機能を挙げておきます。
1.マルチレベル相関分析
Kenny & LaVoie(1985)の個人・集団レベル相関とその有意性検定の結果を出力します。
HAD5.1でも相関係数は出せましたが、有意性検定の出力は7.2からです。
マルチレベル相関係数は、後述する集団レベルと個人レベルの相関係数を意味しています。
HLMなどは標準化係数を出さないので、イマイチどれほど関連しているかわかりにくいこともあると思います。
そいうときにマルチレベル相関係数を見ておくと、解釈がやりやすいかもしれません。
2.信頼性分析
尺度の信頼性係数、および個人レベル・集団レベルの分散比率の検定を行います。
信頼性係数は、α係数、ω係数、因子得点の信頼性を出力します。
ω係数と因子得点の信頼性は因子分析の結果に基づいて出力します。因子抽出は反復主因子ほうです。
マルチレベル分散比率は、信頼性分析で推定された誤差から計算しています。尺度の平均値や因子得点が、どれほど集団レベルで共有されているか、あるいはどれほど個人レベルの情報を持っているかを推定して、その有意性検定を行います。
3.ペアワイズ相関分析
Griffin & Gonzalez(1995)のペアワイズ相関分析を実装しました。
ペアワイズ相関分析はペアデータを対象にしたマルチレベル分析です。こちらは文献どおりの有意性検定を行っています。
上のマルチレベル分析の集団レベルとペアレベル結果が若干違うことがあります。それはペアレベル相関分析がペアワイズ級内相関という、特殊な数値を使って推定しているのが理由です(後述)。
4.ペアワイズ共分散行列出力
前の記事で書いた交換可能なActor-Partner Interdependence Modelを行うためのペアワイズデータセットを出力します。Nとかも調整してますので、そのままAmosへGoです。
また、ペアワイズ相関分析をSEMで実行したい場合もこの行列が使えます。
5.ペアワイズデータセットの出力
ペアワイズ共分散行列のもとになっているデータセットを出力します。これを使うことはあまりないでしょう。一応出せますよ、程度。
6.データセットの並び替え
マルチレベル分析用のデータセットの並び方とと普通のデータの並び方を入れ替えます。
マルチレベルデータの場合、データの並び方には二種類あります。
個人をオブジェクトとして、縦に集団数×集団サイズのNが並ぶパターンが一つです。HLMなどはこの並び方を使います。
もう一つは、集団をオブジェクトとして、個人を変数にするパターンです。この場合Nは集団数になります。潜在曲線モデルや多くのペアデータ分析はこの並びを用います。
今回のオプションは、この二つのデータの並び替えを行うものです。縦に並んでいるデータを横にしたい時、横並びのデータにすることができます。
結構便利です。
7.平均値・因子得点の出力
選んだ変数の平均値と因子得点を算出します。因子分析は反復主因子法の一因子モデル限定です。一応主成分得点も出力します。
という感じで、盛りだくさんです。半分以上は自分の勉強のためと趣味で作った感はありますが。いいんです、僕が一番使うプログラムだから。
それでは、それぞれの機能についてもうちょっと解説を加えます。
・マルチレベル相関係数とは?
集団と個人の階層性があるデータの場合、集団を単位としたデータの変動と個人を単位としたデータの変動の二つがあると考えられます。
それぞれの変動に基づいて相関係数を計算したのがHADが出力するマルチレベル相関係数です。
集団レベルの相関係数は、集団の特徴を反映した得点(あるいは集団に属する個人の平均得点)同士の相関係数を偏りなく推定します。
例えば、集団で行った課題のパフォーマンスや、集団凝集性、ネットワークの特徴などの変数は、集団レベルの変数であるといえます。これらのレベルの得点同士の相関係数は、個人から得られた得点から算出された相関係数と大きく異なることがありますが、その誤差や歪みを取り除いた相関を推定することができます。
逆に個人レベルの相関係数は、そういった集団レベルの変動を統制した個人の得点間の相関を示します。あるいは集団内の相対的な関係を見ているともいえます。
例えば、恋愛関係における満足感は当然関係が上手く行っているかに影響を受けるます。しかし、関係の影響を取り除いても、「僕の関係は上手く行っているし、満足している」と思い込んでいる個人を想定することはできますし(いわゆる楽観的な人)、逆もありえます(悲観的な人)。このような、個人の特性レベルの相関関係を個人レベル相関係数は示します。
二つのレベル相関は、時に解釈が難しいことがありますが、普通の相関係数で得られない重要な情報を得ることができます。
HAD7.2では、標準誤差を最尤推定値の近似値を使って算出しています(実際に最尤推定はしていません)。なので有意性検定の結果はMplusによるMUML最尤推定の結果をほぼ再現します。作った自分でもびっくりです。
なお、係数の推定値に関しては完全に一致します(ただ、欠損データがある場合は「リストワイズ削除」を選択してください)。これは最尤法でもモーメント法でも、相関係数の値は定義式が一致するからです。
一応、有意性検定についての正規乱数を用いたシミュレーションも行っています。結果、危険率が5%を誤差の範囲で超えることはありませんでした。ただNが少ない場合、検出力が低くなります。これは最尤法の特徴でもあります。シミュレーションの結果も後日報告します。
・ω係数とは?
社会心理学やパーソナリティ心理学では、尺度の信頼性をα係数で報告することが多いと思います。良く知られているように、α係数は「下限の信頼性」を示していますが、これはどういうことかというと、「すべての項目の因子負荷量が等しい」という仮定をおいた場合の信頼性だ、ということです。
じゃあ、因子負荷量をちゃんと推定してやったらどうなるのか?というと、α係数よりも大きな(少なくとも等しい)信頼性係数を推定できます。それがω係数です。
ω係数は、各項目を合計(あるいは平均)した場合の、因子分析の結果から推定した信頼性係数です。なので因子分析の手法によって若干推定は変わります(とはいえ、一因子モデルなので方法によってそれほど大きな違いはないと思いますが)。
HAD7.2では分散・共分散行列によるSMCによる共通性推定をした反復主因子法を使って推定しています。なぜ最尤法を使わないのかというと、作者の数学能力とプログラミング能力の限界です(涙)。
・因子得点の信頼性とは?
ω係数は「項目の合計値」の信頼性の推定値でした。では、信頼性が最も大きくなるような得点の合成の仕方は?という疑問がでてきます。そのような合成の仕方によって推定される信頼性を最大信頼性係数と呼びます。
最大信頼性は、簡単に言えば因子得点の信頼性です。因子分析が適切に真の因子構造を推定している場合、因子得点は最も信頼性が高くなるように得点化されるはずです。
HADでは、反復主因子法ではありますが、因子得点の信頼性を出力します(反復主因子法は尺度不変な因子構造を与えないので、厳密には最大信頼性ではありません・・・。次にバージョンアップするときには、せめて一般化最小二乗法に対応するようにします)。
因子得点の信頼性は、推定された因子と、得点化された因子得点の相関係数の二乗に対応します。なお、HADでは相関行列を使った因子得点を算出してますので、因子構造もそれに準じたものを使っています。
・マルチレベル分散比率とは?
HADが前から出力する級内相関係数ですが、これは個人に測定したデータが集団でどれほど類似しているかを表す指標です。つまり、集団でどれほど情報が共有されているかを表す指標でもあります。
じゃあ個人レベルの情報は集団レベルの情報を引いたものなんか、といえばそうではありません。なぜなら残った分散には個人レベルと測定誤差が含まれているからです。普通ではこれらは分離できません。
そこでHAD7.2では得点を合計する前の段階で測定誤差を推定しておいて、個人レベルの分散から分離して推定した結果を出力します。これで、測定した尺度の合成得点がどれほど集団レベル・個人レベルの情報を持っているかを知ることができます。また、有意性検定も行うので、分散比率が0かどうかの検定もできます。
・ペアワイズ相関分析とは?
ペアワイズ相関分析で出力される個人レベル相関、ペアレベル相関は、上で書いたマルチレベル相関係数のペア版だと思ってもらって結構です。ペアデータで両方の分析をすると、大体同じ値を与えます。
なぜ違うかというと、ペアワイズ相関分析はペア内の平均値の差が大きいと、ペアワイズ級内相関に影響します。そうすることで、結果的に個人レベル・ペアレベルの相関係数にも影響するわけです。
もしペア内の個人が識別可能(役割が決まってるとか、性別が違うとか)な場合、「グループ内カテゴリーで統制」のチェックをつけると若干近い値になります(完全には一致しません)。
ペアワイズ相関分析についてはこちらの記事も参照ください。
とりあえず、そんな感じのバージョンアップです。
すでにマルチレベル分析の事前準備マクロの域を超えつつありますが、あくまで補佐的なプログラムであることには変わりありません。まぁ、僕が一番使うプログラムですけども!
ではー。

This entry was posted in 心理統計学. Bookmark the permalink.