因子分析の実践ガイド:ITで使う手法・実装・注意点
概要:因子分析とは何か
因子分析は観測された多数の変数の背後にある潜在的な共通因子(latent factors)を抽出・検討する統計手法です。元々は心理学・社会科学で尺度の構造探索に用いられてきましたが、IT領域では次元削減、特徴抽出、ユーザー行動の潜在構造解析、プロダクト指標の統合などに応用されます。主に探索的因子分析(EFA)と確証的因子分析(CFA)の2系統があり、それぞれ目的や前提が異なります。
理論的背景と基本概念
因子分析の基本モデルは観測変数xが共通因子fと固有因子(誤差)eの線形結合で表現されるというものです。数学的には x = Λf + e と表され、Λは因子負荷量行列(loadings)。主な関心はΛの推定、因子の数、因子間相関、各変数の共通性(communality)や固有性(uniqueness)です。
- 共通性(communality): その変数の分散のうち因子で説明される割合。
- 因子負荷量: 変数と因子の関連の強さ。高い負荷量は変数がその因子をよく表すことを示す。
- 因子数の決定: スクリープロット、カイザー基準(固有値>1)、parallel analysis(並列分析)がよく使われる。
探索的因子分析(EFA)の流れ
EFAはデータから因子構造を探索する手続きです。典型的な手順は以下の通りです。
- データの前処理(欠損、外れ値、尺度の確認、正規性の確認)
- 相関行列の確認と診断(KMO検定、Bartlettの球面性検定)
- 因子抽出法の選択(主成分分析(PCA)ではなく共通因子法(ML, Principal Axisなど)を検討)
- 因子数の決定(固有値、スクリープロット、parallel analysis)
- 回転(直交回転:Varimax、斜交回転:Promax/Oblimin)による解釈性の向上
- 因子負荷量に基づく因子命名と解釈、因子得点の算出
確証的因子分析(CFA)と構造方程式モデリング(SEM)
CFAは事前に仮定した因子構造の適合度を検証する手法です。モデルの同定、適合度指標(CFI, TLI, RMSEA, SRMRなど)、パラメータ推定(最尤法や最小二乗法)、モデル修正(修正指標)といったプロセスを通して、理論的な潜在構造をテストします。ITではユーザービリティ尺度や満足度調査の妥当性検証、複数指標からの潜在要因のモデル化に使われます。
因子抽出法の違い:PCAと共通因子法
しばしば混同されるPCA(主成分分析)と因子分析は目的とモデルが異なります。PCAはデータの総分散を説明する直交軸を求める次元削減手法であり、潜在変数モデルを仮定しません。一方、因子分析は共通因子による共分散の説明を目的とします。尺度の背後にある潜在構造を検討する場合は共通因子法(例:主軸法、最尤法)が適切です。
回転法:直交か斜交か
因子負荷量の行列を回転することで解釈しやすい簡潔な構造を得られます。直交回転(Varimax)は因子間を独立と仮定し、斜交回転(Promax, Oblimin)は因子間に相関を許します。多くの実データでは因子が相互に相関するため斜交回転を用いると実態に近い解釈が得られることが多いです。
因子数の決定:実務的な指針
因子数を決める際の手法と注意点は次の通りです。
- 固有値>1(Kaiser基準)は単純だが過剰抽出のリスクがある。
- スクリープロットは主観が入るため、曲がり角(elbow)をよく観察する。
- 並列分析(Parallel Analysis)はランダムデータの固有値と比較するため、安全性が高い。
- 最終的には理論的妥当性と解釈可能性、モデルの適合度を総合的に判断する。
診断指標:KMO、Bartlett、共通性、信頼性
Kaiser-Meyer-Olkin(KMO)はサンプルの適合度を示し、0.6以上が目安。Bartlettの球面性検定は相関行列が単位行列と異なるかを検定し、有意なら因子分析に適する可能性があります。因子抽出後は各因子の内部整合性(Cronbachのαなど)や各変数の共通性を確認します。
因子得点の算出と機械学習への応用
因子得点(factor scores)は各観測における潜在因子の値を推定したものです。これを特徴量として機械学習モデル(分類、回帰、クラスタリング)に投入することで次元圧縮や多重共線性の軽減が期待できます。ただし因子得点の推定法(回帰法、Bartlett法など)により性質が異なるため用途に応じて選択します。
IT領域での具体例
- ユーザー行動解析:複数の行動指標(クリック、滞在時間、遷移回数)から潜在的な利用パターンを抽出し、セグメンテーションに利用。
- テレメトリ・指標集約:大量のメトリクスを因子にまとめてダッシュボード指標を簡素化。
- 製品・UX調査:アンケート項目から満足度や使いやすさの潜在構造を検証。
- 異常検知の前処理:多次元時系列の次元削減によりノイズを除去し異常スコアの算出を安定化。
実装:RやPythonでの主要ツール
代表的な実装ライブラリとポイント:
- R: psychパッケージ(EFAの基本、KMO、parallel analysisを提供)、lavaan(CFA/SEM向け)
- Python: scikit-learnのFactorAnalysis(共通因子法の一実装)、factor_analyzerパッケージ(回転やKMO, Bartlettを提供)
- SPSS/Mplus/JASP: GUIベースでEFA/CFAを実施可能。大規模データや複雑なSEMはMplusやlavaanが適する。
実装時は欠損の扱い(リストワイズ/多重代入)、標準化の要否(尺度が異なる場合は変数を標準化)を検討してください。
注意点とよくある落とし穴
- 目的の不一致: 因子分析は因果推論の手法ではない。観察された相関の構造を説明するため、因果解釈には追加の設計が必要。
- 尺度水準: 順序尺度(Likert尺度)をそのまま扱う場合は注意。多くの実務では問題ないが、厳密には順序データ用の手法(項目反応理論やpolychoric相関に基づく因子分析)が望ましい。
- サンプルサイズ: 厳密な規則はないが、一般に変数1つ当たり少なくとも5〜10サンプルが目安。共通のアドバイスとしてはN>200が安心。
- 過剰解釈: 回転後の負荷量は解釈を助けるが、恣意的な命名や過度な打ち切りに注意。
実践のためのチェックリスト
- 目的は探索か検証かを明確にする(EFA vs CFA)。
- 欠損・外れ値・尺度の確認を行う。
- KMOとBartlett検定で適合性を確認する。
- 抽出法と回転法はデータ特性(因子相関の有無)に基づき選ぶ。
- 因子数は並列分析等の複数基準を組み合わせて決定する。
- 因子得点の算出方法とその用途を明確にする。
まとめ
因子分析はITでのデータ整理・次元削減・指標設計に有用なツールです。ただし手法の前提や限界を理解し、適切な抽出法や回転、因子数判定を行うことが重要です。理論的妥当性と統計的診断を併用し、EFAで見つけた構造はCFAなどで検証すると堅牢性が高まります。
参考文献
psych: Procedures for Psychological, Psychometric, and Personality Research (R package)
lavaan: An R Package for Structural Equation Modeling
UCLA: What is Factor Analysis? (FAQ)
IBM SPSS Statistics Documentation


