はじめに

エクセルには、アドオンの「データ分析」ツールの中に分散共分散行列(共分散行列)を算出できる機能があります。 ここではこの機能を使わず、 エクセル関数のみで算出する方法を紹介します。

下にサンプルのセルデータがあるので、 コピペですぐに使用できます。

分散共分散行列とは

分散共分散行列は、データセット内の変数の分散と、変数間の共分散を行列形式で表したもの です。

行列の成分は

  • 対角成分: データセット内の変数の分散
  • 非対角成分: データセット内の変数間の共分散

を表します。

いつ使うのか?

多次元データの分布や全体的な構造を把握するのに役立ちます。 分散共分散行列は、以下をまとめて表しているためです。

  • データの各変数のバラツキ
  • データの変数同士がどの程度一緒に変動するか

定義式

変数が X1,X2,…,XnX_1, X_2, \dots, X_n のデータセットがあるとき、 分散共分散行列は以下のように定義されます。

(Var(X1)Cov(X1,X2)…Cov(X1,Xn)Cov(X1,X2)Var(X2)…Cov(X2,Xn)⋮⋮⋱⋮Cov(X1,Xn)Cov(X2,X1)…Var(Xn))\begin{pmatrix} {\rm Var}(X_1) & {\rm Cov}(X_1,X_2) & \dots & {\rm Cov}(X_1,X_n) \\ {\rm Cov}(X_1,X_2) & {\rm Var}(X_2) & \dots & {\rm Cov}(X_2,X_n) \\ \vdots & \vdots & \ddots & \vdots \\ {\rm Cov}(X_1,X_n) & {\rm Cov}(X_2,X_1) & \dots & {\rm Var}(X_n) \end{pmatrix}
  • Var(Xi){\rm Var}(X_i): 変数 XiX_i の分散
  • Cov(Xi,Xj){\rm Cov}(X_i, X_j): 変数 XiX_i と XjX_j の共分散

エクセルでの算出方法

以下の 全セルをコピー ボタンをクリックし、エクセルの A1 セルに貼り付けると、 H ~ J 列 に3x3の分散共分散行列が算出されます。

データを変更したい場合は、 A~D列を書き換えてください。

このサンプルでは、以下の結果が得られます。

(Var(X)Cov(X,Y)Cov(X,Z)Cov(X,Y)Var(Y)Cov(Y,Z)Cov(X,Z)Cov(Y,X)Var(Z))=(2.532.534.33.32.53.34.3)\begin{pmatrix} {\rm Var}(X) & {\rm Cov}(X,Y) & {\rm Cov}(X,Z) \\ {\rm Cov}(X,Y) & {\rm Var}(Y) & {\rm Cov}(Y,Z) \\ {\rm Cov}(X,Z) & {\rm Cov}(Y,X) & {\rm Var}(Z) \end{pmatrix} = \begin{pmatrix} 2.5 & 3 & 2.5 \\ 3 & 4.3 & 3.3 \\ 2.5 & 3.3 & 4.3 \end{pmatrix}
ABCDEFGHIJ
1データ分散共分散行列
2XYZ012
311121
42122202.532.5
531320134.33.3
64162422.53.34.3
751525

算出手順

エクセルで分散共分散行列を算出するための手順は以下の3つです。

1. 参照データ(変数)番号を記入

0 始まりで、データの変数分の連番を記入します。 ここでは、X, Y, Z の3つの変数があるため、0, 1, 2 を記入します。

以下のように、2か所に記入する必要があります。

  • 手順1a. 1列に連番を記入
  • 手順1b. 1行に連番を記入

2. 行列要素を算出

OFFSET, COVARIANCE.S 関数を使用して、行列要素を算出します。 (データの背景にある母集団を推測する必要のない場合は COVARIANCE.P 関数を使用します。) すべての要素の値を算出することで、分散共分散行列が得られます。

fxOFFSET関数
ABCDEFGHIJKL
1110100
2220200(移動量)移動後:200
3330300 縦方向:1 300
4440400 横方向:2 400
OFFSET ( 参照, 行数, 列数, 高さ, 幅)

参照を基準に、 参照位置を移動したデータを返す。
参照位置は、縦方向に行数分、横方向に列数分だけ移動する。 高さと幅を指定すると、取得するデータサイズが変わる。
スピル機能(またはCSE)使用。

•
参照
: 必須
例A1:A3
基準となる参照。
•
行数
: 必須
例1
縦方向の移動量(参照基準)。
•
列数
: 必須
例2
横方向の移動量(参照基準)。
•
高さ
: 任意
例3
返すデータの高さ。
•
幅
: 任意
例1
返すデータの幅。
fxCOVARIANCE.S関数
ABCDEFG
15040
26050共分散:350
37070
48090
59090
COVARIANCE.S ( 配列1, 配列2)

配列1と配列2のデータ列間の 不偏共分散を算出する。
配列1と配列2が等しいデータ列の場合、 分散値が算出される。

•
配列1
: 必須
例A1:A5
数値配列。
•
配列2
: 必須
例B1:B5
数値配列。
\「エクセル分析でここまでできるの?」がわかる/
統計学の基礎から学ぶ Excelデータ分析の全知識

統計学の基礎から学ぶ Excelデータ分析の全知識