統計学 学習ノート

統計検定の4級から1級まで、出題範囲の順に記事と練習問題で学ぶ

準1級-30 応用統計の手法

因子分析と構造方程式モデル

  • パス図(因果図)
  • 潜在因子
  • 共通性
  • 独自性
  • 因子の回転
  • 操作変数
  • グラフィカルモデル(多変量正規分布に関する)

はじめに

「国語も英語も社会もよくできる子がいるのは、なぜ?」

テストの結果を見ると、国語の点が高い人は、英語や社会の点も高いことがよくあります。3つの科目に、同じ理由がありそうですよね。例えば「文章を読む力」です。でも、この力を直接測った人は誰もいません。テストの点という影を見ているだけです。

実は、統計学には「見えない原因」を仮定して、見えている相関を説明する方法があります。洞窟の壁に映る影から、外にある本体の形を推理するようなものです。

そこで登場するのが、今回の主役 因子分析(factor analysis) です。因子分析とは、たくさんの変数の相関を、少数の観測できない変数で説明する方法です。この観測できない変数を 潜在因子(共通因子)と呼びます。

前回の記事では、個体を似たものどうしに分けました。今回は、変数のほうに目を向けます。今回の記事では、因子分析のモデルと因子の回転を学び、それを因果の仮説まで広げた構造方程式モデルと、操作変数、グラフィカルモデルについて解説します。

因子分析モデル:見えない因子が変数を動かす

はじめに、因子分析のモデルについて解説します。

変数 X1,…,XpX_1, \dots, X_p は標準化されているとします。因子分析では、各変数を次のように分解します。

Xi=λi1f1+λi2f2+⋯+λimfm+εiX_i = \lambda_{i1} f_1 + \lambda_{i2} f_2 + \dots + \lambda_{im} f_m + \varepsilon_i

f1,…,fmf_1, \dots, f_m が潜在因子で、mm は pp より小さい数です。λij\lambda_{ij} を 因子負荷量 と言い、変数 ii が因子 jj からどれだけ影響を受けるかを表します。εi\varepsilon_i は、その変数だけの要素で、独自因子 と呼びます。

言葉で言うと、「点数 = みんなに共通の力の分 + その科目だけの分」です。合唱に例えると、共通因子は全員で歌う主旋律で、独自因子は1人1人の声のくせです。

ここで、主成分分析との違いを整理しましょう。矢印の向きが逆です。

【主成分分析と因子分析の違い】

  • 主成分分析: 変数を足し合わせて合成変数を作る(変数 → 主成分)。目的はデータの要約
  • 因子分析: 因子が変数を生み出すと考える(因子 → 変数)。目的は背後の構造の説明。独自因子を認める

標準的な仮定は、次のとおりです。因子は平均0、分散1で互いに無相関です。独自因子は互いに無相関で、因子とも無相関です。すると、XiX_i の分散は次のように分かれます。

V[Xi]=1=∑j=1mλij2⏟hi2+V[εi]⏟ψiV[X_i] = 1 = \underbrace{\sum_{j=1}^{m}\lambda_{ij}^2}_{h_i^2} + \underbrace{V[\varepsilon_i]}_{\psi_i}

hi2h_i^2 を 共通性、ψi\psi_i を 独自性 と言います。共通性は「変数の分散のうち、共通因子で説明できる割合」で、独自性はその残りです。したがって、ψi=1−hi2\psi_i = 1 - h_i^2 です。

変数の間の相関は、共通因子だけが作ります。独自因子は互いに無相関だからです。行列でまとめると、相関行列 RR は次の形に分解されます。

R=ΛΛ⊤+ΨR = \Lambda\Lambda^\top + \Psi

Λ\Lambda は因子負荷量の行列、Ψ\Psi は ψi\psi_i を並べた対角行列です。特に因子が1つなら、rik=λiλkr_{ik} = \lambda_i\lambda_k です。

例題:1因子モデルの負荷量を求める

3科目の相関が r12=0.48r_{12} = 0.48、r13=0.42r_{13} = 0.42、r23=0.56r_{23} = 0.56 でした。1因子モデルが成り立つとして、因子負荷量(正とする)、共通性、独自性を求めましょう。

【解き方】

  1. モデルから r12=λ1λ2r_{12} = \lambda_1\lambda_2、r13=λ1λ3r_{13} = \lambda_1\lambda_3、r23=λ2λ3r_{23} = \lambda_2\lambda_3
  2. 掛け算と割り算で λ2,λ3\lambda_2, \lambda_3 を消す: λ12=r12r13/r23=0.36\lambda_1^2 = r_{12} r_{13} / r_{23} = 0.36
  3. 同じようにして λ22=0.64\lambda_2^2 = 0.64、λ32=0.49\lambda_3^2 = 0.49
  4. 平方根をとる: λ=(0.6, 0.8, 0.7)\lambda = (0.6,\ 0.8,\ 0.7)

答えは、共通性が 0.36, 0.64, 0.49、独自性が 0.64, 0.36, 0.51 です。2番目の科目は、共通の力の影響を最も強く受けています。

因子負荷量の2乗を、因子ごとに足した量を 因子寄与 と言います。これを pp で割ると、その因子が全体の分散の何割を説明するかが分かります。例題では (0.36+0.64+0.49)÷3≈0.50(0.36 + 0.64 + 0.49) \div 3 \approx 0.50 で、因子が全体の約半分を説明しています。

推定の方法には、相関行列の対角を共通性の推定値に置き換えて固有値分解する 主因子法 と、多変量正規分布を仮定する 最尤法 があります。因子の数は、相関行列の固有値が1以上の個数や、固有値の折れ線の折れ目(スクリープロット)を目安に決めます。

補足(ここは読み飛ばしてOK): 推定の途中で、独自性が0以下になることがあります。分散が負になるので、不適解と呼ばれます。因子の数が多すぎるときや、標本が小さいときに起こりやすいです。

以上が、因子分析モデルについての解説です。

因子の回転:見やすい向きに軸を回す

次に、結果を読みやすくする因子の回転について説明します。

実は、因子分析の答えは1つに決まりません。直交行列 TT を使って Λ∗=ΛT\Lambda^* = \Lambda T と置いても、次の式が成り立つからです。

Λ∗Λ∗⊤=ΛTT⊤Λ⊤=ΛΛ⊤\Lambda^*\Lambda^{*\top} = \Lambda T T^\top \Lambda^\top = \Lambda\Lambda^\top

つまり、因子の軸を回転させても、相関行列の説明力はまったく同じです。地図を45度回しても、町と町の距離が変わらないのと同じです。それなら、地図を読みやすい向きに回せばよいですよね。これが 因子の回転 です。

目指すのは 単純構造 です。各変数が、できるだけ1つの因子にだけ大きな負荷量をもつ形です。

具体的に見てみましょう。4科目について、回転前の因子負荷量が次のようだったとします。回転後は、軸を45度回したものです(因子2の符号は、見やすい向きにそろえています)。

科目回転前 因子1回転前 因子2回転後 因子1回転後 因子2共通性
国語0.5660.5660.800.000.64
英語0.4950.4950.700.000.49
数学0.424−0.4240.000.600.36
理科0.636−0.6360.000.900.81

回転前は、因子1が全科目に効く「総合力」、因子2が「文系か理系か」のように見えます。回転後は、因子1が「文系の力」、因子2が「理系の力」と、すっきり読めます。ここがポイントです。回転の前後で、共通性は変わりません。変わるのは、因子ごとの取り分だけです。因子寄与は 1.15, 1.15 から 1.13, 1.17 に変わりましたが、合計はどちらも2.30です。

回転の方法は、大きく2つに分かれます。

【因子の回転の2つのタイプ】

  1. 直交回転: 因子を無相関のまま回す。代表は バリマックス回転 で、各因子の負荷量の2乗の分散の合計を最大にする
  2. 斜交回転: 因子の相関を認める。代表は プロマックス回転

バリマックス回転が分散を最大にするのは、負荷量の2乗が「大きいものと0に近いものに分かれる」ほど、単純構造に近いからです。この表の例でこの量を求めると、回転前は約0.014、回転後は約0.193です。

「文系の力」と「理系の力」は、現実には相関があるはずです。そこで、因子の相関を許す斜交回転がよく使われます。ただし、斜交回転では因子が無相関でないので、共通性を負荷量の2乗和で求められません。読むときの注意点です。

試験のポイント:回転で変わらないのは共通性と独自性、モデルの当てはまりです。変わるのは因子負荷量と因子寄与です。

以上が、因子の回転についての説明です。

パス図と構造方程式モデル:因果の仮説を描く

続いて、因子分析を広げた構造方程式モデルについて解説します。

因子分析の探索的な使い方では、どの因子がどの変数に効くかをデータに任せました。これに対して、「この因子はこの変数に効く」「この因子があの因子の原因になる」と、仮説を先に立ててから確かめる方法があります。それが 構造方程式モデル(SEM) です。共分散構造分析とも呼びます。

仮説を描くのが、パス図(因果図)です。パス図は、変数の関係を矢印で表した図で、決まった書き方があります。

【パス図の部品】

  • 四角: 観測変数
  • 丸: 潜在因子などの潜在変数
  • 片方向の矢印: 原因から結果への影響(パス係数を添える)
  • 両方向の矢印: 因果を決めない相関

例えば、「読む力(丸)→ 国語、英語(四角)」が因子分析の部分で、測定モデルと言います。「読む力 → 成績全体」のような潜在変数どうしの因果が、構造モデルです。この2つを1枚のパス図にまとめたものが、構造方程式モデルです。

パス図の便利なところは、矢印をたどるだけで効果を計算できることです。標準化した変数なら、経路の係数を掛け算し、経路どうしを足し算します。

例題:パス図から効果を計算する

勉強時間 XX が理解度 MM に、MM が点数 YY に影響し、XX から YY への直接の矢印もあるとします。標準化したパス係数は X→MX \to M が0.5、M→YM \to Y が0.4、X→YX \to Y が0.3です。XX から YY への効果と相関を求めましょう。

【解き方】

  1. 直接効果: X→YX \to Y の 0.3
  2. 間接効果: X→M→YX \to M \to Y の 0.5 × 0.4 = 0.2
  3. 総合効果: 0.3 + 0.2 = 0.5

答えは総合効果0.5です。他に経路がないので、XX と YY の相関 rXYr_{XY} も0.5になります。

一方で、MM と YY の相関は 0.4+0.5×0.3=0.550.4 + 0.5 \times 0.3 = 0.55 で、パス係数0.4より大きいです。XX を通って MM と YY がつながる経路があるからです。この区別は、統計的因果推論の記事で詳しく学びます。

モデルの良さは、パス図が予測する共分散行列と、データの共分散行列を比べて判定します。これを 適合度 と言います。カイ二乗検定のほか、RMSEA(0.05以下が目安)やCFI(0.95以上が目安)といった指標を使います。

ただし、大切な注意があります。適合度が高くても、因果が証明されたわけではありません。矢印の向きを逆にしたモデルが、同じ適合度になることもあります。パス図の矢印は、あくまで分析者の仮説です。

以上が、パス図と構造方程式モデルについての解説です。

操作変数:隠れた交絡を飛び越える

次に、因果を推定するための操作変数について説明します。

回帰で因果を推定するとき、怖いのは隠れた交絡です。例えば、勉強時間 XX が点数 YY に与える効果を知りたいとします。

Y=βX+uY = \beta X + u

uu には、「やる気」のような測っていない要因が入っています。やる気のある人は勉強時間も長いので、XX と uu に相関があります。このとき、回帰係数は β\beta に向かいません。

Cov(X,Y)V[X]=β+Cov(X,u)V[X]\frac{\text{Cov}(X, Y)}{V[X]} = \beta + \frac{\text{Cov}(X, u)}{V[X]}

勉強の効果に、やる気の効果が混ざるのです。そこで、操作変数 の出番です。操作変数 ZZ は、次の2つの条件を満たす変数です。

【操作変数の2つの条件】

  1. 関連性: ZZ は XX と相関する(Cov(Z,X)≠0\text{Cov}(Z, X) \ne 0)
  2. 外生性: ZZ は誤差 uu と無相関で、XX を通してしか YY に影響しない(Cov(Z,u)=0\text{Cov}(Z, u) = 0)

パス図で言えば、Z→X→YZ \to X \to Y の経路だけがあります。例えば、無料の学習アプリをくじで配ったとしましょう。くじの結果 ZZ はランダムなので、やる気とは無関係です。でも、当たった人の勉強時間は増えます。つまり、XX のうち、やる気と無関係な部分だけを ZZ が動かしてくれるのです。

求め方は簡単です。Y=βX+uY = \beta X + u と ZZ の共分散をとると、Cov(Z,u)=0\text{Cov}(Z, u) = 0 なので次の式になります。

β=Cov(Z,Y)Cov(Z,X)\beta = \frac{\text{Cov}(Z, Y)}{\text{Cov}(Z, X)}

例題:操作変数で効果を推定する

Y=3X+uY = 3X + u で、V[X]=4V[X] = 4、Cov(X,u)=2\text{Cov}(X, u) = 2、Cov(Z,X)=2\text{Cov}(Z, X) = 2、Cov(Z,u)=0\text{Cov}(Z, u) = 0 とします。回帰係数が向かう値と、操作変数を使った推定が向かう値を比べましょう。

【解き方】

  1. 回帰係数: 3+2÷4=3.53 + 2 \div 4 = 3.5
  2. Cov(Z,Y)=3×2+0=6\text{Cov}(Z, Y) = 3 \times 2 + 0 = 6
  3. 操作変数の推定: 6÷2=36 \div 2 = 3

答えは、回帰では3.5、操作変数では真の値の3です。

実際の計算では、2段階最小二乗法 を使うことがあります。1段階目で XX を ZZ に回帰して予測値 X^\hat{X} を作り、2段階目で YY を X^\hat{X} に回帰します。ZZ が1つなら、上の式と同じ答えになります。

なお、ZZ と XX の相関が弱いと、分母が0に近づいて、推定が大きく不安定になります。これを 弱操作変数 の問題と言います。また、外生性はデータから確かめられない仮定なので、背景の知識で説明する必要があります。

試験のポイント:操作変数の条件は「XX と相関がある」「誤差と相関がない」の2つです。YY と相関してはいけない、という意味ではありません。

以上が、操作変数についての説明です。

グラフィカルモデル:偏相関で線を引く

最後に、多変量正規分布に関するグラフィカルモデルを見ていきましょう。

クラスの人間関係を思い浮かべてください。AさんとCさんは話が合うように見えます。でも、よく調べると、2人ともBさんと仲がよいだけで、Bさんの話題でつながっているだけかもしれません。つまり、Bさんを除いて見ると、AさんとCさんに直接の関係はないのです。

グラフィカルモデル は、変数を点、直接の関係を線で表すモデルです。線が引かれていない2つの変数は、他のすべての変数を固定すると独立である、と約束します。これを 条件つき独立 と言います。

多変量正規分布では、この判定がとてもきれいに書けます。分散共分散行列の逆行列を K=Σ−1K = \Sigma^{-1} とします。KK を 精度行列 と言います。

Xi と Xj が他の変数を与えて条件つき独立  ⟺  kij=0X_i \text{ と } X_j \text{ が他の変数を与えて条件つき独立} \iff k_{ij} = 0

このとき、他のすべての変数を固定した 偏相関係数 は、次の式で求まります。

ρij⋅rest=−kijkii kjj\rho_{ij \cdot \text{rest}} = -\frac{k_{ij}}{\sqrt{k_{ii}\, k_{jj}}}

要するに、「精度行列の0の場所 = グラフで線がない場所」です。分布の特性値の記事で学んだ偏相関係数が、ここで線を引くかどうかの判定に使われます。

ここが間違えやすいところです。相関係数が0のことと、偏相関係数が0のことは別です。Σ\Sigma の0は「周辺で独立」、Σ−1\Sigma^{-1} の0は「条件つきで独立」を表します。

例題:相関行列から線を引く

3つの変数の相関が r12=0.6r_{12} = 0.6、r23=0.5r_{23} = 0.5、r13=0.3r_{13} = 0.3 でした。多変量正規分布を仮定して、グラフを描きましょう。

【解き方】

  1. X1X_1 と X3X_3 の偏相関を、X2X_2 を固定して求める。分子は r13−r12r23=0.3−0.3=0r_{13} - r_{12} r_{23} = 0.3 - 0.3 = 0
  2. X1X_1 と X2X_2 の偏相関は (0.6−0.15)÷0.91×0.75≈0.54(0.6 - 0.15) \div \sqrt{0.91 \times 0.75} \approx 0.54
  3. X2X_2 と X3X_3 の偏相関は (0.5−0.18)÷0.64×0.91≈0.42(0.5 - 0.18) \div \sqrt{0.64 \times 0.91} \approx 0.42

答えは、X1−X2−X3X_1 - X_2 - X_3 の1本道のグラフです。X1X_1 と X3X_3 の相関は0.3ありますが、X2X_2 を通じた見かけのつながりで、直接の線はありません。

精度行列で確かめると、次のようになります。

K=R−1≈(1.56−0.940−0.941.90−0.670−0.671.33)K = R^{-1} \approx \begin{pmatrix} 1.56 & -0.94 & 0 \\ -0.94 & 1.90 & -0.67 \\ 0 & -0.67 & 1.33 \end{pmatrix}

(1,3)(1, 3) 成分が確かに0です。例えば (1,2)(1, 2) 成分からは、0.94÷1.56×1.90≈0.540.94 \div \sqrt{1.56 \times 1.90} \approx 0.54 で、同じ偏相関が得られます。

補足(ここは読み飛ばしてOK): 精度行列の一部を0に固定してモデルを作ることを、共分散選択と言います。変数が多いときは、L1正則化で精度行列を疎にする方法も使われます。分割表の場合のグラフィカルモデルは、対数線形モデルの記事で学びます。

以上が、グラフィカルモデルについての解説です。

細かい式を忘れてしまっても問題ありません。ここでは、「共通性は回転で変わらない」「操作変数は誤差と無相関」「精度行列の0は線がない」という3点だけ押さえておきましょう。

今回のまとめ

それでは、今回の内容を振り返ります。

今回は、目に見えない因子から相関を説明する因子分析と、その発想を因果の仮説や条件つき独立へ広げた手法について紹介しました。どの手法にも共通するのは、「見えている相関の裏に、どんな構造があるのか」を問う姿勢です。ただし、構造はデータだけでは決まりません。回転の向きも、矢印の向きも、操作変数の妥当性も、最後は分析者の説明が必要です。

今回のポイントを振り返りましょう。

振り返り

  • 因子分析は「主旋律と声のくせ」。R=ΛΛ⊤+ΨR = \Lambda\Lambda^\top + \Psi で、共通性と独自性の和は1。
  • 因子の回転は地図を回すこと。共通性は変わらず、単純構造を目指す。直交はバリマックス、斜交はプロマックス。
  • パス図は因果の仮説を描く図。経路の係数を掛けて足すと、直接効果と間接効果が分かる。
  • 操作変数は、XX と相関し誤差と無相関な変数。隠れた交絡があっても効果を推定できる。
  • 多変量正規分布のグラフィカルモデルでは、精度行列の0が「線がない」、つまり条件つき独立を表す。

キーワードのおさらい

  • パス図(因果図): 変数の因果の仮説を、四角・丸・矢印で表した図
  • 潜在因子: 観測できず、複数の変数に共通して影響すると仮定する変数
  • 共通性: 変数の分散のうち、共通因子で説明できる割合
  • 独自性: 変数の分散のうち、共通因子で説明できない割合
  • 因子の回転: 説明力を変えずに軸を回して、因子負荷量を読みやすくすること
  • 操作変数: 説明変数と相関し、誤差とは無相関な変数
  • グラフィカルモデル: 変数の条件つき独立の関係をグラフで表すモデル

さて、ここまでは量的な変数の相関が出発点でした。でも、手元にあるのが「距離の表」だけのときや、「クロス表」だけのときはどうでしょうか? 2組の変数群の関係を知りたいこともあります。

次回は、多次元尺度法や対応分析など、「その他の多変量解析手法」について紹介します。

それでは、次の記事へ進んでいきましょう。

練習問題5問開いて挑戦する
問1. 2因子の因子分析で、ある変数の因子負荷量が 0.6 と 0.5 であった。この変数の独自性として、正しいものはどれか。
問2. 1因子モデルで、2つの変数の因子負荷量が 0.9 と 0.5 であるとき、この2変数の相関係数として正しいものはどれか。
問3. 因子の直交回転を行っても変わらない量として、正しいものはどれか。
問4. Y=βX+uY = \beta X + u で、XX と uu に相関がある。操作変数 ZZ について Cov(Z,Y)=12\text{Cov}(Z, Y) = 12、Cov(Z,X)=4\text{Cov}(Z, X) = 4 であるとき、β\beta の値として正しいものはどれか。ただし Cov(Z,u)=0\text{Cov}(Z, u) = 0 とする。
問5. 3変量正規分布の精度行列が K=(2−10−12−10−12)K = \begin{pmatrix} 2 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 2 \end{pmatrix} であるとき、正しい説明はどれか。