More Related Content
More from Hiroshi Shimizu (20)
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
- 2. 自己紹介
• 清水裕士
– 専門:社会心理学グループダイナミクス
– 所属:広島大学大学院総合科学研究科助教
– 趣味:フリーの統計ソフトを作ってます
– 連絡先:simizu706(あっと)hiroshima-u.ac.jp
• (あっと)を@に変えてください。
– ブログ:http://norimune.net
– Twitter: @simizu706
Kazutan.R
- 3. 本発表のメニュー
• Rで因子数の決定についての分析をしよう!
– VSS関数で因子数決定の指標を出力しよう!
– fa.parallel関数で平行分析を使おう!
• Rで因子分析をしよう!
– fa関数を使おう!
– 多彩な回転方法でグルグルしよう!
• Rでカテゴリカル因子分析
– mirt関数を使おう!
Kazutan.R
- 4. 因子分析
• 項目群の背後にある潜在因子を見つける
– 心理尺度を用いる研究では必須のテクニック
• 大抵の統計ソフトに搭載されている
– SASやSPSSはもちろん,エクセル統計,フリーソフ
トにも導入される
• しかし,必要最低限の機能しかない
– 商用ソフトであっても,かなり制限されている
Kazutan.R
- 5. 因子分析の流れ
• 因子数を決める
– 適切な因子の数を決める
• 因子の抽出
– 項目の共通性(独自性)を推定する
• 因子軸の回転
– 因子負荷を解釈しやすいように変換する
Kazutan.R
- 6. これまでの(アカン)因子分析の流れ
• 因子数を決める
– 固有値1以上の因子が勝手に出てきたで!
• 適切な因子数を提案しない
• 因子の抽出
– とりあえずデフォルト設定の主成分分析でええか!
• 因子分析は主成分分析と違う
• 因子の回転
– とりあえずプロマックス回転でええやろ!
• プロマックス回転は簡便的手法で,理論どおりの結果を出さない
Kazutan.R
- 7. Rのpsychパッケージで因子分析
• 因子数を決める
– 平行分析,MAP,情報量規準を用いて因子数を推定
• fa.parallerやVSS関数を利用
• 因子の抽出
– 最尤法はもちろん,最小残差法を選択できる
• fa関数を利用
• 因子の回転
– 最近流行りのgeomin回転や,cluster回転を利用
• GPArotationパッケージの様々な回転法を選択できる
Kazutan.R
- 8. 今日使うデータとパッケージ
• psychパッケージ
– 心理学用の便利なパッケージ
• サンプルデータ
– psychに入っている,bfiデータ
• Big-Five25項目についての2800人のデータ
今回はBig-five得点だけを使う
Kazutan.R
- 10. 因子数をどうやって決めるか
• 古い基準
– ガットマン基準(固有値1以上)
– スクリー基準(スクリープロットから視覚的に判断)
– 必ずしもよい因子数を提案しない
• これからの基準
– MAP基準
– 情報量規準(BIC)
– 平行分析
– しかし,これらの機能は商用ソフトに搭載されていない
Kazutan.R
- 11. MAPで因子数決定
• MAP(Minimum Average Partial)基準
– 最も効率的に相関行列を説明できる因子数を提案
– どちらかというと,最小の因子数を提案
• VSS関数を使う
– 因子分析の場合は,とりあえずリストワイズ削除
– n=は推定する因子数。予想よりも多めに指定
Kazutan.R
- 12. VSS関数の結果
• MAPの提案因子数・・・5!
• 因子数を情報量規準に基づいて決定
– 最も情報量規準が小さい因子数を採用
– BICがオススメby堀先生
• ただし,因子数は若干多めに提案される模様
– 上の結果だと,8因子が提案されている
Kazutan.R
- 13. 平行分析で因子数決定
• 平行分析(Parallel Analysis)
– 乱数から生成したデータの固有値よりも大きな
固有値の因子を意味のあるものとする
• fa.parallel関数を使う
– リストワイズ削除した相関行列を入力
• リストワイズしたサンプルサイズをn.obs = で入力
• nrow(na.omit(dat))でわかる
Kazutan.R
- 15. 因子数決定の「堀先生」基準
• MAP基準は最小の因子数
– 提案するよりも少ない因子数は採用しないほうがいい
– マイナー因子を拾わない傾向がある
• 解釈可能性を考慮しながら,ここから増やしていく
• 平行分析(PC)もそこそこいい
– しかし,必ずしもベストではない
– MAPと平行分析(PC)が一致すれば,それを採用
– マイナー因子を拾いたいなら,MAPから順に解釈可能性を考慮
に入れながら,平行分析PCの提案数まで増やしてみる
• 平行分析(FA)は最大の因子数
– 平行分析(FA)よりも多い因子数は採用しないほうがいい
• 解釈可能性を考慮しながら,ここから減らしていく
Kazutan.R
- 17. 因子の抽出=共通性の推定
• 主成分分析で因子分析をするな
– 主成分分析は,共通性を正しく推定できない
• 変数を合成する方法であって,共通部分を推定する方法で
はない
• せめて反復主因子法を使う
• 基本は最尤法
– 漸近一致性,漸近有効性,漸近正規性
• データが正規分布でなくても,漸近一致性は維持される
• 最小残差法もかなりよい
– 最尤法にかなり近い結果
– 不適解が出にくく,相関行列が特異でも解を出す
Kazutan.R
- 18. fa関数で因子分析
• 選べる推定法:fm = “”
– 最小残差法(ミンレス法):“minres” デフォルト
– 最尤法:“ml”
– 反復主因子法:“pa”
– 「とりあえず最小残差法」で問題はない
• サンプルサイズが大きいなら,最尤法を使うべき
Kazutan.R
- 22. faを使う上での注意点
• 欠損値を含むデータの場合
– デフォルトではペアワイズ削除の相関行列を使う
• しかし,ペアワイズ削除した相関行列に基づいて尤度
を計算することは問題
• せめてリストワイズ削除する方がマシな気がする
• もちろん,完全情報最尤法がベスト
• promax関数は商用ソフトと結果が一致しない
– 共通性の平方根で重みづけていない
– 一致する関数を作りました→ norimune.net/2219
Kazutan.R
- 24. プロマックス回転がすべてではない
• プロマックス回転は簡便法
– 計算が早く,確実に解が出せる
– 計算機が遅い時代にはとても重宝される
• しかし,必ずしもよい解を出すとは限らない
– 理論通りの因子構造にならないこともある
• 理論的にはoblimin回転が良い→fa関数のデフォルト
– パラメータで結果が依存する
• SPSSはpower=4,SASはpower = 3,と一貫してない
• どれがいいかは理論的根拠はなく感覚的な判断でしかない
Kazutan.R
- 25. (個人的な)オススメ回転法
• 独立クラスタ回転
– 通称,ハリス・カイザー法など
– 完全クラスタ(各項目に1因子しか負荷しない)を目指す
• 因子間相関は高め
– rotate = “cluster”
• ジオミン(geomin)回転
– 負荷しない因子の負荷量を0に近づけることを目指す
• 因子負荷量の幾何平均を最小にする
– 複数の因子に負荷することを許す
• 因子間相関は低め
– rotate = “geominQ”が斜交,“geominT”が直交
Kazutan.R
- 26. (個人的な)オススメ回転法
• オブリミン(oblimin)回転
– クォーティミン回転ともいう
– 因子負荷の列間の共分散の和を最小にする
• 因子間相関は小さめ
– rotate = “oblimin” faのデフォルト
• 因子間相関の大きさ
– 独立クラスタ> プロマックス> オブリミン
>ジオミン
Kazutan.R
- 29. 「データが順序尺度なんですけど」
• 本来は連続的な変数を順序尺度で測定
– 特定の態度を,3件法のリッカートで答えてもらう
– 行動を,「する・しない」,の2値で測定
– 測定の「粗さ」によって,相関が希薄化される
• 背後の連続的な得点間の相関を推定
– ポリコリック相関係数
• 2変数の順序尺度の背後に,2変量正規分布を仮定して,
その相関係数を推定
• 構成概念間の相関を,希薄化せずに推定することができる
• パラメトリックな順位相関
Kazutan.R
- 33. しかし注意が必要
• ポリコリック相関行列をそのまま因子分析
– 一致性を持たない推定量
– とくに,段階数が少ない(2値とか)場合は,真値
から大きくハズレてしまう
• 正しく推定するには,標準誤差の逆行列で重みづけて,
最小二乗法で推定する必要がある
• fa関数のカテゴリカル因子分析の因子得点
– 算出法が適当
• 因子負荷量のみで重みづけた得点を算出
• 推定精度がよくない
Kazutan.R
- 36. 因子得点の計算
• カテゴリカル因子分析の因子得点
– 簡便的因子得点は当然意味が無い
• 足し算は尺度が等間隔であることを仮定しているため
– 因子負荷量と閾値の両方パラメータを使ってベイ
ズ推定する必要がある
• fscores関数を使う
– 期待事後分布(EAP)や,最大事後分布(MAP)を
利用可能
Kazutan.R
- 37. まとめ
• 商用ソフトでは対応されていない様々な機能
– 因子数決定の分析
• MAP
• 平行分析
– 因子の抽出法
• 最小残差法
– 因子軸の回転
• ジオミン回転,独立クラスタ回転などなど
– カテゴリカル因子分析
• ポリコリック相関係数,多次元項目反応理論
Kazutan.R