統計分析用プログラムHAD

 階層的データ分析のための、統計分析プログラムです。

 HADについては別の記事にまとめてますので、そちらを参照してください。なお、最新版HADの機能一覧についてはHADでできることのほうを参照してください。

 また、ダウンロードはここです。  階層データ分析用マクロ

以下の機能はHAD7.2について書いてあります。

1.個人・集団レベルの相関行列の出力

 この機能が目玉の1つです。これはKenney & LaVoie(1985)の集団レベル相関を出力するオプションです。計算方法は豊田(2000)で紹介されているの2段抽出モデルの簡便法を用いてますが、結果は一致します。

 集団レベル相関とは、グループの平均値を算出することなく、集団の性質を示す変数間の関連を表したものです。集団凝集性といった集団レベルの概念をモデルに組み込みたいときは有効な指標です。

 HAD7.2で有意性検定を実装しました。Mplusなどのソフトウェアの結果をほぼ再現します。  なお、「簡便法用共分散行列」をAmosに入力した場合、SEMが出力する集団レベル相関の有意性検定は正確ではないので、参考にしないでください。

 モデリングしたパスの有意性検定を行うには、簡便法でない二段抽出モデルを行う必要があります。下の方法を使うことで有意確率を知ることができます。相関係数だけならこのマクロで検定を行うことができます。

2.マルチレベル用共分散行列(MUML)の出力

  上の方法では相関係数しか知ることができませんが、このオプションで出力される共分散行列をAmosで適切に分析することでSEMによるモデリングとその有意性検定をすることができます。  詳しくはこちらの記事を参照してください。

3.信頼性分析

 選んだ変数の内的一貫性の信頼性係数を出力します。指標は、α係数、ω係数、因子得点の信頼性係数を出力します。あと、一因子モデルによる因子分析結果を一緒に載せています。 またマルチレベルデータの場合、測定誤差を取り除いた集団レベルと個人レベルの分散比率とその有意性検定の結果を出力します。

4.ペアワイズ相関分析

 ペアデータに特化した、マルチレベル分析であるペアワイズ相関分析の結果を出力します。 また、それに関連した共分散行列、データセットを出力します。 ペアワイズ相関分析については、こちらの記事を参照してください。

5.級内相関係数と級内α係数の出力

 グループ内の類似度を示す、級内相関係数を出力します。 また、グループ内の平均値を得点として用いてよいかの指標である、級内α係数も出力します。級内α係数が低いときにグループの平均値を算出してしまうと、誤差が大きくなり、相関が希薄化したり検定結果がゆがんだりします。詳しくはこちら

 あと、グループ内の人数の平均サイズ(ω)も出力します(豊田, 2000 参照)。

6.データの変換(センタリング、標準化、合成得点)

 HLMをする場合にクラスごとにセンタリングする必要があるのですが、そのグループ内平均・全体平均によるセンタリングデータや、グループ平均を出力します。 また、複数の変数の平均値や因子得点などの合成得点を出力します。あとオマケに得点を標準化する機能もつけてます。

7.共分散行列と相関行列の出力

 いわゆる、普通の共分散行列と相関行列を出力します。ポイントはAmosにそのまま入力できるように出力するところで、エクセルのシートを指定してやれば、SEMにそのまま持っていけます。  HAD5から、相関係数の有意性検定を行う出力も付け加えました。

8.欠損値処理

 HAD5.1から、データセットの欠損値をペアワイズ削除とリストワイズ削除のどちらかを選ぶことができるようになりました。それに伴い、各種データセット出力も同様に二つの方法のどちらかを選ぶことができます。 ペアワイズ削除は、変数のペアごとに欠損があるデータを省きます。リストワイズ削除は、選んだ変数のうち一つでも欠損があればサンプルごと削除します。

9.その他

 「マルチレベル分析」のチェックをはずすと、普通の共分散行列や相関行列の計算が速くなります。普通のデータ分析をしたいだけのときは、チェックをはずすことをオススメします。 使い方については↓

使い方

1.データ入力

 データをエクセルのシートに入力。 1行目は変数名をいれて、2行目からデータを入力してください。また、データはB列から順番につめて入力してください。  最初の列(B列)は必ずグループを判別する変数(以後、ID変数)を投入してください。なお、ID変数は同じグループのデータを連続するように入力してください。  グループ内の人数は一致してなくても大丈夫です。

データ入力例

2.マクロ起動

 一番左にある起動ボタンを押せば、起動します。  変数の数は、B列から数えて分析に使う変数の数を入力してください。つまり、ID変数も含むということです。上の例だと5を入力すればいいことになります。  あとは出力したいオプションにチェックをしてOKを押してください。

3.出力について

 すべてのオプションは新規シートを作成して出力します。  同じ出力をもう一度した場合、シートは上書きされますので、残しておきたいときはシート名を変更してください。

 モデル用共分散行列はAmosに入力できるようになっています。Amosからファイルを指定して、シートを選べばすぐに分析できます。変数名_wが個人レベル、変数名_bが集団レベルの変数です。

 上にも書きましたが、この簡便法を用いたときは、有意性検定の結果が正しくありません(タイプⅠエラーを犯します)。推定値だけを知りたいときに活用してください。

いくつかの注意点

1.データ入力について  ID変数以外に文字データを入力するとプログラムがエラーを出します。面倒なのでその辺の識別をしていません(HAD7.2で対応しました)。必ず数字かピリオドのみを入力してください。  また、クラス内の人数がすべて1(クラス数=1)の場合、入力エラーになります。

2.計算方法について  級内相関と各行列の計算は、方法を2つから選べます。 モーメント法・・・Kenney & LaVoie(1985)の方法です。2段抽出モデルはこっちに一致します。 最尤推定値・・・Gollob(1991)の方法です。Griffin & Gonzalez(1995)のペアワイズ相関分析はこれに一致します。HAD5以降では選択できません。

3.Between.covの出力について  このマクロが出力するマルチレベル用共分散行列のBetween.covは純粋な集団レベルの共分散行列ではなく、集団平均の共分散行列です。これは二段抽出モデルを行うために必要なデータセットです。ですので、これを用いて普通に分析しても希薄化した値しか得られません。

4.Amosがシートを読み込んでくれないとき 次の理由が考えられます。 ・セルの書式設定をいじった ・共分散が大きすぎて1次従属であると判断された なぜかAmosはセルの書式設定をいじくると読み込んでくれません。いじらないでください(笑)。 あと、集団レベル相関は、級内相関が小さいと1を超えるときがあります。このようなときはAmosは分析してくれません。級内相関が低すぎる変数や、相関が高い変数ペアを省いて分析しなおしてみてください。

引用文献

Gollob, H. 1991 Methods for Estimating Individual- and Group-level Correlations. Journal of Personality and Social Psychology, 60, 376-381.

Griffin, D., & Gonzalez, R. 1995 Correlational Analysis of Dyad-Level Data in the Exchange Case. Psychological Bulletin, 118, 430-439.

Kenney, D. A. & La Voie, L. 1985 Separating individual and group effects. Journal of Personality and Social Psychology, 48, 339-348.

豊田秀樹 2000 共分散構造分析 応用編 朝倉書店

 

This entry was posted in HAD. Bookmark the permalink.

9 thoughts on “統計分析用プログラムHAD

  1. 清水 says:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    書き込みおよびプログラムのご利用ありがとうございます。
    実は完全に自分のために作ったものなのですが、あれよこれよとオプションがつきました。
    ぜひ宣伝しておいてください(笑)。

  2. ソーマ says:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    先ほどは使い方教えてくれてありがとう。
    便利やなあー
    っと使った後、一人でつぶやいてしまいました。

  3. 清水 says:

    SECRET: 0
    PASS: 8eed272a5a89980408800fc51719446f
    清水です。
    上の僕のコメントに間違いがありました。申し訳ありません。
    下記にて詳細を記載しています。ご参照ください。
    http://norimune.blog15.fc2.com/blog-entry-215.html

  4. 清水 says:

    SECRET: 0
    PASS: 8eed272a5a89980408800fc51719446f
    その級内相関係数の式も展開すれば相関比と同じ算出式になります。
    相関比と級内相関は名前が違うだけあって、後者のほうは負の値を許容するということなのかもしれませんね。
    そのあたりは統計学の理論的定義でどうなっているのか、僕もイマイチわかっていません。
    いろいろコメントありがとうございました。またプログラムのことを含めて何かありましたらご意見をお寄せください。

  5. 通りすがりM says:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    相関比だと、ご指摘の通り値が負になるのはおかしいですよね。
    次の式で構成される「別の」級内相関係数は、級内平均平方が大きいと負の値を取りうるということが容易にわかります。
    ICC = (BMS-WMS)/BMS = 1- WMS/BMS
    級間平均平方に比して、級内平均平方が大きい=集団内の同質性や合意の程度が低い場合に負になっちゃいます。
    悩ましい指標ですね。。。

  6. 清水 says:

    SECRET: 0
    PASS: 8eed272a5a89980408800fc51719446f
    どうも、こんにちは。
    マクロのご利用ありがとうございます。
    級内相関は計算上確かに負の値になりえます。でも理論上は正の値になる指標です。
    級内相関は分散分析の相関比と同じなので、全分散中の効果分散の割合、が定義となります。負の分散は定義から外れますので、理論上は負の値はないことになります。
    類似性ではなく、相補性という意味で負になることもあるとは思います。この場合は解釈が難しいです。
    僕のマクロはMCA(多段共分散構造分析)を実行するために計算していますので、負の値を許容しないようにしています。負の値の場合に0としているのは、プログラム上でエラーが出ないようにするためです。ですので、負の値の級内相関をお知りになりたい場合は、申し訳ありませんが、僕のマクロ以外のプログラムを使っていただければと思います。
    なお、マクロの計算式は分散分析を使ったものとまったく同じですし、有意性検定もF値から行っています。
    僕もまだまだ勉強中の身ですので、また何か新しいことがわかり次第、ブログに更新したいと思います。貴重なご質問ありがとうございました。

  7. 通りすがりM says:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    こんにちは。
    非常に有益なHPでしたので、いろいろと勉強させてもらいました。
    ところで、階層データ分析用マクロ、とてもすばらしいので活用させて頂こうと思っております。
    ただ、ちょっと疑問が。。。不勉強なので、教えてください。
    マクロでは、ICCを算出することができますが、ICCはどのような公式を使っていますか?参考文献を参照したのですが、分散分析の級内・級間平均平方を用いたICCだと、値が負の場合もあり得ると思うのです。たとえば、集団内の個人の評価の得点は完全に不一致、ところが、評価得点の集団平均値が集団間で等しい場合、級間平均平方が0になるので、ICCは負の値を取ると思うのですが。。。このようなケースデータをマクロに入力すると、ICCがゼロになります。
    ご教示頂ければ幸いです。

  8. 清水 says:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    お久しぶりです。
    実はまさに昨日、有意性検定をAmosでやる方法が判明したところです。
    ただ、非常にやり方がややこしく、また面倒くさくもあります。知人用に作った説明用のファイルを送りましょうか?

  9. 後輩Oならぬ先輩O says:

    SECRET: 0
    PASS: 51741e5e90725107e9c52af6fcf64741
    がんばってるみたいですね。
    大変興味深い内容です。早速使ってみたいです。
    今書いている論文で、集団レベルの相関が使えると説得力が増すなぁってのがあるのです。
    有意性検定がしたいのですが、どうしたらいいのでしょうか?
    おしえて、おしえて。