【Python】「pandas 共分散の計算方法」 データ分析に役立つ共分散を簡単に求める方法を解説

はじめに

データ分析において、複数の変数の関係を把握するために共分散行列を求めることがあります。共分散は、2つの変数がどの程度一緒に変化するかを表す指標であり、データの相関を測ることができます。

この記事では、Pythonのpandasライブラリを使って共分散行列を簡単に求める方法を解説します。

共分散の概念とデータ分析での役割

共分散は、2つの変数の間の関係を表す指標です。具体的には、2つの変数がどの程度一緒に変化するかを表します。共分散は以下の式で表されます。

ここで、はそれぞれ変数の値を表し、はそれぞれ変数の平均値を表します。また、はサンプル数です。

共分散は、2つの変数がどの程度関連しているかを測る指標として使用されます。具体的には、共分散が正の場合は2つの変数が正の方向に関連していることを示し、負の場合は逆に関連していることを示します。また、共分散の絶対値が大きい場合は、変数間の関係が強いことを示し、絶対値が小さい場合は関係が弱いことを示します。

共分散行列は、複数の変数間の共分散を行列で表したものです。共分散行列を求めることによって、複数の変数間の相関を一度に把握することができます。共分散行列は、データ分析において重要な役割を果たします。

データの読み込みと整形

共分散行列を求めるためには、データを読み込んで整形する必要があります。ここでは、以下のようなデータを使用します。

名前 年齢 身長(cm) 体重(kg) 視力
山田 25 170 65 1.5
田中 30 180 80 1.2
佐藤 35 165 55 2.0
鈴木 40 175 70 1.8
斎藤 45 160 50 2.5

このデータをCSVファイルとして保存し、以下のコードで読み込みます。

import pandas as pd
df = pd.read_csv('data.csv')

読み込んだデータは、以下のように表示されます。

   名前 年齢 身長(cm)  体重(kg) 視力
 0 山田   25     170        65  1.5
 1 田中   30     180        80  1.2
 2 佐藤   35     165        55  2.0
 3 鈴木   40     175        70  1.8
 4 斎藤   45     160        50  2.5

このデータに対して、共分散行列を求めることを考えます。まずは、データの整形を行います。ここでは、名前の列を除外し、数値データの列だけを抽出します。

data = df.drop('名前', axis=1)

このコードによって、以下のようなデータが得られます。

   年齢  身長(cm)  体重(kg)  視力
0    25       170       65  1.5
1    30       180       80  1.2
2    35       165       55  2.0
3    40       175       70  1.8
4    45       160       50  2.5

共分散行列の計算方法:cov()関数の使い方

pandasライブラリには、共分散行列を求めるためのcov()関数が用意されています。cov()関数を使用するには、以下のように記述します。

cov_matrix = data.cov()

このコードによって、共分散行列が得られます。得られた共分散行列は、以下のように表示されます。

           年齢  身長(cm)   体重(kg) 視力
年齢      62.50  -31.25  -50.000  3.250
身長(cm) -31.25   62.50   93.750 -3.500
体重(kg) -50.00   93.75  142.500 -5.375
視力       3.25   -3.50   -5.375  0.245

共分散行列は、変数間の共分散を行列で表したものです。行列の対角成分は、それぞれの変数の分散を表します。また、共分散行列は対称行列となっており、上下対称になっています。

共分散の解釈とデータ分析への応用例

共分散行列を求めた結果から、共分散の解釈とデータ分析への応用例について解説します。

まず、共分散は変数間の関係を測る指標です。共分散の値が正の場合は、2つの変数が正の方向に関連していることを示し、負の場合は逆に関連していることを示します。また、共分散の絶対値が大きい場合は、変数間の関係が強いことを示し、絶対値が小さい場合は関係が弱いことを示します。

共分散行列からは、複数の変数の相関関係を把握することができます。共分散行列の対角成分には、それぞれの変数の分散が格納されています。また、共分散行列の非対角成分には、それぞれの変数間の共分散が格納されています。

共分散行列を使用して、データの相関を把握することができます。具体的には、以下のような分析が行えます。

  • 2つの変数間の相関を調べる
    • 複数の変数間の相関を調べる
    • 主成分分析を行う

    2つの変数間の相関を調べる場合は、共分散を求めることで相関関係を把握することができます。共分散が正の場合は、2つの変数が正の方向に関連していることを示し、負の場合は逆に関連していることを示します。また、共分散の絶対値が大きい場合は、変数間の関係が強いことを示し、絶対値が小さい場合は関係が弱いことを示します。

    複数の変数間の相関を調べる場合は、共分散行列を求めることで相関関係を把握することができます。共分散行列は、複数の変数間の共分散を行列で表したものです。共分散行列を求めることによって、複数の変数間の相関を一度に把握することができます。

    主成分分析を行う場合は、共分散行列を用いて固有値分解を行います。固有値分解によって、共分散行列から主成分を求めることができます。主成分分析は、複数の変数をより少ない変数で表現するための手法であり、データの特徴を把握するために広く用いられています。

    まとめ

    共分散は、2つの変数間の関係を測る指標であり、共分散行列は複数の変数間の相関を行列で表したものです。Pythonのpandasライブラリを使用して、共分散行列を求めることができます。共分散行列を用いて、複数の変数の相関関係を把握することができます。また、主成分分析を行うためにも共分散行列が用いられます。

    共分散と共分散行列は、データ分析において重要な役割を果たします。共分散を理解することで、データの相関関係を把握し、より良いデータ分析を行うことができるようになります。