8. ベクトルと行列
線形代数学 I: 共分散、相関行列
スライド スライドはこちらから。
問題はこちらから
2変数の関係を探る:ベクトルで見る共分散と相関係数
これまでは1種類のデータ(1次元データ)の特性を分析してきましたが、データサイエンスの多くの場面では、身長と体重、広告費と売上のように、2種類のデータがどのように連動しているか(共変動)を分析することが重要になります。この講義では、2つの変数の関係性を捉えるための「共分散」と「相関係数」を学び、それらをベクトルや行列を用いていかにスマートに表現・計算できるかを見ていきましょう。
第1章 2変数の関係性を測る指標
1.1 2次元データと散布図
2つの変数(\(X\), \(Y\))の組として得られるデータを2次元データと呼び、\((x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)\) のように表します。この関係性を視覚的に捉える最も基本的な方法が散布図です。
[Image of scatter plots: positive, negative, and no correlation]
散布図をプロットすることで、「一方が増えるともう一方も増える(正の相関)」、「一方が増えるともう一方は減る(負の相関)」、「特に目立った関係はない(無相関)」といった傾向を直感的に把握できます。
1.2 共分散:関係性の「方向」
共分散は、2つの変数が「同じ方向に動くか、逆の方向に動くか」を数値化した指標です。
定義: 共分散 (Covariance) 2つの変数 \(X\) と \(Y\) の共分散 \(\mathrm{Cov}(X,Y)\) は、それぞれの平均からの偏差の積を平均したものです。
\[\mathrm{Cov}(X,Y) = \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y})\]
- \(\mathrm{Cov}(X,Y) > 0\): 正の相関を示唆します。
- \(\mathrm{Cov}(X,Y) < 0\): 負の相関を示唆します。
注意点: 共分散の値は、データの単位(例: cm, kg)に依存して変化するため、関係性の「強さ」を直接比較するには不向きです。
1.3 相関係数:標準化された「関係性の強さ」
共分散をそれぞれの変数の標準偏差で割ることで、単位に依存しない-1から1の間の値に標準化した指標が相関係数です。
定義: 相関係数 (Correlation Coefficient) 2つの変数 \(X\) と \(Y\) のピアソンの積率相関係数 \(\rho_{XY}\) は、次のように定義されます。
\[\rho_{XY} = \frac{\mathrm{Cov}(X,Y)}{\sigma_X \sigma_Y}\]
- \(\rho_{XY}\) は常に \(-1 \le \rho_{XY} \le 1\) の範囲に収まります。
- \(1\) に近いほど強い正の相関、\(-1\) に近いほど強い負の相関、\(0\) に近いほど無相関を示します。
第2章 ベクトルによる統計量の再定義
2.1 データベクトルと偏差ベクトル
2次元データを、それぞれの変数のデータベクトル \(\mathbf{x}\) と \(\mathbf{y}\) で表現します。
そして、それぞれの平均からの偏差をまとめた偏差ベクトル \(\mathbf{d_x}\) と \(\mathbf{d_y}\) を定義します。\(\(\mathbf{d_x} = \mathbf{x} - \bar{x}\mathbf{1}_n, \quad \mathbf{d_y} = \mathbf{y} - \bar{y}\mathbf{1}_n\)\)
2.2 ベクトルで計算する共分散
偏差ベクトルを用いると、共分散は2つの偏差ベクトルの内積として極めてシンプルに表現できます。
共分散のベクトル表記: \(\(\mathrm{Cov}(X,Y) = \frac{1}{n} (\mathbf{d_x}^T \mathbf{d_y}) = \frac{1}{n} (\mathbf{d_x} \cdot \mathbf{d_y})\)\)
2.3 💡幾何学的解釈:相関係数は「偏差ベクトル間のコサイン」
このベクトル表記の最大の利点は、相関係数に美しい幾何学的解釈を与えられることです。相関係数の定義式に、分散 \(\sigma^2_X = \frac{1}{n}\|\mathbf{d_x}\|^2\) などのベクトル表現を代入すると、
相関係数のベクトル表記: \(\(\rho_{XY} = \frac{\frac{1}{n} (\mathbf{d_x} \cdot \mathbf{d_y})}{\sqrt{\frac{1}{n}\|\mathbf{d_x}\|^2} \sqrt{\frac{1}{n}\|\mathbf{d_y}\|^2}} = \frac{\mathbf{d_x} \cdot \mathbf{d_y}}{\|\mathbf{d_x}\| \|\mathbf{d_y}\|}\)\)
この式は、2つの偏差ベクトル \(\mathbf{d_x}\) と \(\mathbf{d_y}\) のなす角を \(\theta\) としたときの \(\cos\theta\) の定義そのものです。
つまり、相関係数とは、データ空間における2つの偏差ベクトルのなす角度のコサインなのです。 - \(\rho=1\): 2つのベクトルが同じ向き(\(\theta=0^\circ\)) - \(\rho=-1\): 2つのベクトルが逆向き(\(\theta=180^\circ\)) - \(\rho=0\): 2つのベクトルが直交している(\(\theta=90^\circ\))
第3章 多次元への拡張:共分散行列
変数が3つ以上ある多変量データでは、全ての変数の組み合わせに対する分散と共分散を一覧にした共分散行列が用いられます。
定義: 共分散行列 (Covariance Matrix) 2変数 \(X, Y\) の共分散行列 \(\mathbf{\Sigma}\) は、対角成分に各変数の分散、非対角成分に共分散を配置した対称行列です。
\[\mathbf{\Sigma} = \begin{pmatrix} \mathrm{Var}(X) & \mathrm{Cov}(X,Y) \\ \mathrm{Cov}(Y,X) & \mathrm{Var}(Y) \end{pmatrix}\]
データ全体を \(n \times 2\) のデータ行列 \(\mathbf{X} = \begin{pmatrix} \mathbf{x} & \mathbf{y} \end{pmatrix}\) で表し、各列の平均を引いた中心化データ行列を \(\mathbf{X}_{dev}\) とすると、共分散行列は次のように計算できます。 \(\(\mathbf{\Sigma} = \frac{1}{n} \mathbf{X}_{dev}^T \mathbf{X}_{dev}\)\)
第4章 実践:数値例による計算(差し替え版)
4.1 問題設定
あるオンラインストアの「月間の広告費(\(X\))」と「ウェブサイト訪問者数(\(Y\))」の過去5ヶ月間のデータがあるとします。この2つの変数の関係性を調べてみましょう。
| 月 | 広告費 \(X\) (万円) | 訪問者数 \(Y\) (百人) |
|---|---|---|
| 1 | 10 | 8 |
| 2 | 15 | 12 |
| 3 | 20 | 10 |
| 4 | 25 | 18 |
| 5 | 30 | 15 |
4.2 スカラによる段階的計算
ステップ1:各変数の平均を計算します。 - \(\bar{x} = \frac{10 + 15 + 20 + 25 + 30}{5} = \frac{100}{5} = 20\) 万円 - \(\bar{y} = \frac{8 + 12 + 10 + 18 + 15}{5} = \frac{63}{5} = 12.6\) 百人
ステップ2:各データポイントの偏差と、偏差の積・二乗を計算します。
| 月 | \(x_i - \bar{x}\) | \(y_i - \bar{y}\) | \((x_i - \bar{x})^2\) | \((y_i - \bar{y})^2\) | \((x_i - \bar{x})(y_i - \bar{y})\) |
|---|---|---|---|---|---|
| 1 | -10 | -4.6 | 100 | 21.16 | 46.0 |
| 2 | -5 | -0.6 | 25 | 0.36 | 3.0 |
| 3 | 0 | -2.6 | 0 | 6.76 | 0.0 |
| 4 | 5 | 5.4 | 25 | 29.16 | 27.0 |
| 5 | 10 | 2.4 | 100 | 5.76 | 24.0 |
| 合計 | 0 | 0 | 250 | 63.2 | 100.0 |
ステップ3:共分散を計算します。 \(\(\mathrm{Cov}(X,Y) = \frac{1}{n}\sum(x_i - \bar{x})(y_i - \bar{y}) = \frac{100.0}{5} = \mathbf{20}\)\)
ステップ4:各変数の分散と標準偏差を計算します。 - \(\mathrm{Var}(X) = \sigma_X^2 = \frac{1}{n}\sum(x_i - \bar{x})^2 = \frac{250}{5} = 50\) - \(\sigma_X = \sqrt{50} \approx 7.071\)
- \(\mathrm{Var}(Y) = \sigma_Y^2 = \frac{1}{n}\sum(y_i - \bar{y})^2 = \frac{63.2}{5} = 12.64\)
- \(\sigma_Y = \sqrt{12.64} \approx 3.555\)
ステップ5:相関係数を計算します。 \(\(\rho_{XY} = \frac{\mathrm{Cov}(X,Y)}{\sigma_X \sigma_Y} = \frac{20}{7.071 \times 3.555} \approx \frac{20}{25.137} \approx \mathbf{0.796}\)\)
4.3 ベクトルによる一括計算
同じ計算をベクトルで行います。 - \(\mathbf{x} = (10, 15, 20, 25, 30)^T\) - \(\mathbf{y} = (8, 12, 10, 18, 15)^T\) - \(\bar{x} = 20\), \(\bar{y} = 12.6\)
ステップ1:偏差ベクトルを計算します。 - \(\mathbf{d_x} = (-10, -5, 0, 5, 10)^T\) - \(\mathbf{d_y} = (-4.6, -0.6, -2.6, 5.4, 2.4)^T\)
ステップ2:内積とノルムの2乗を計算します。 - \(\mathbf{d_x} \cdot \mathbf{d_y} = (-10)(-4.6) + \dots + (10)(2.4) = 100.0\) - \(\|\mathbf{d_x}\|^2 = (-10)^2 + \dots + (10)^2 = 250\) - \(\|\mathbf{d_y}\|^2 = (-4.6)^2 + \dots + (2.4)^2 = 63.2\)
ステップ3:共分散と相関係数を計算します。 - \(\mathrm{Cov}(X,Y) = \frac{1}{5}(\mathbf{d_x} \cdot \mathbf{d_y}) = \frac{100.0}{5} = \mathbf{20}\) - \(\rho_{XY} = \frac{\mathbf{d_x} \cdot \mathbf{d_y}}{\|\mathbf{d_x}\| \|\mathbf{d_y}\|} = \frac{100.0}{\sqrt{250} \sqrt{63.2}} \approx \frac{100.0}{15.811 \times 7.950} \approx \frac{100.0}{125.7} \approx \mathbf{0.796}\)
4.4 結果の解釈
相関係数が約 +0.796 となりました。これは 「強めの正の相関」 を示していると解釈できます。広告費を増やすとウェブサイトの訪問者数も増えるという全体的な傾向は見られますが、他の要因(例:3ヶ月目のように広告費を増やしても訪問者が減ることもある)も影響しており、完全な直線関係ではないことがわかります。このような、現実にありそうな関係を捉えられるのが相関係数の面白いところです。