共分散とラグ付き共分散、自己共分散・自己相関


共分散とラグ付き共分散について簡単にまとめました。

共分散

共分散とは、2つの変数がどの程度一緒に変動するかを示す指標です。具体的には、ある変数が増加するときにもう一方の変数も増加するか、または減少するかを測定します。共分散が正の値を持つ場合、2つの変数は同じ方向に変動する傾向があります。逆に、共分散が負の値を持つ場合、2つの変数は逆方向に変動する傾向があります。

計算方法

共分散は以下の式で計算されます:

Cov(X,Y)=1nni=1(XiˉX)(YiˉY)

ここで、XY は2つの変数、ˉXˉY はそれぞれの平均値、n はデータの数です。

Pythonでの計算例

以下はPythonを用いた共分散の計算例です。

共分散からわかること

共分散が正の場合
共分散が正の値を持つ場合、2つの変数は同じ方向に変動する傾向があります。つまり、片方の変数が増加するともう片方の変数も増加し、片方の変数が減少するともう片方の変数も減少することを示します。
共分散がゼロの場合
共分散がゼロの場合、2つの変数の間には直線的な関係がないことを示します。つまり、片方の変数が増加または減少しても、もう片方の変数には特定の変動パターンが見られないことを意味します。
共分散が負の場合
共分散が負の値を持つ場合、2つの変数は逆方向に変動する傾向があります。つまり、片方の変数が増加するともう片方の変数が減少し、片方の変数が減少するともう片方の変数が増加することを示します。

共分散を計算することで、2つの変数がどの程度関連しているかを知ることができます。例えば、株価と取引量の共分散を計算することで、株価が上昇すると取引量も増加するかどうかを確認できます。

注意点

共分散の値だけでは、変数間の関係の強さを判断することはできません。共分散の値はスケールに依存するため、異なる単位やスケールのデータを比較することはできません。共分散が大きいからといって必ずしも強い関係があるとは限りません。それどころか、共分散の値が正/負だからといって必ずしも関係性があるとは言い切れません。

例えば次のデータは、共分散が5を超えるのですが、同じ方向に変動しているといえるでしょうか?

Output: 共分散: 5.2700000000000005

ラグ付き共分散

ラグ付き共分散とは、時間遅れを考慮した共分散のことです。これは、ある時点の変数と過去の時点の変数との共分散を計算するものです。ラグ付き共分散を用いることで、時間的な依存関係を分析することができます。

使用例

例えば、経済データにおいて、現在のGDPと過去の失業率のラグ付き共分散を計算することで、失業率がGDPにどのような影響を与えるかを分析することができます。また、株価の時系列データにおいて、現在の株価と過去の株価のラグ付き共分散を計算することで、株価の自己相関を分析することができます。

Pythonでの計算例

以下はPythonを用いたラグ付き共分散の計算例です。

statsmodelsライブラリのsm.tsa.acf関数を用いることで、自己相関関数(ACF)を計算することができます。これにより、1つの変数についての、異なるラグに対する共分散を簡単に計算することができます。

以下はsm.tsa.acfを用いたラグ付き共分散の計算例です。

このコードでは、sm.tsa.acf関数を用いてデータXの自己相関関数を計算しています。nlagsパラメータは計算するラグの数を指定します。

2変数のラグ付き共分散からわかること

ラグ付き共分散を用いることで、時間的な遅れを考慮した変数間の関係を明らかにすることができます。これにより、因果関係や時間的な依存関係をより正確に把握することができます。例えば、ある経済指標が他の指標にどのような時間的影響を与えるかを分析する際に有用です。

ラグ付き共分散が正の場合
ラグ付き共分散が正の値を持つ場合、過去の変数が現在の変数に対して同じ方向に影響を与えることを示します。つまり、過去の変数が増加すると現在の変数も増加し、過去の変数が減少すると現在の変数も減少する傾向があります。これは、単調増加または単調減少の性質を示すことが多いです。
ラグ付き共分散がゼロの場合
ラグ付き共分散がゼロの場合、過去の変数と現在の変数の間には直線的な関係がないことを示します。つまり、過去の変数が現在の変数に対して特定の影響を与えないことを意味します。
ラグ付き共分散が負の場合
ラグ付き共分散が負の値を持つ場合、過去の変数が現在の変数に対して逆方向に影響を与えることを示します。つまり、過去の変数が増加すると現在の変数が減少し、過去の変数が減少すると現在の変数が増加する傾向があります。これは、周期的または反転した傾向を示すことが多いです。

値とその傾向は、基本的に共分散と変わりません。 時間ずれが入ってきただけです。

1変数のラグ付き共分散(自己共分散)からわかること

1変数のラグ付き共分散、すなわち自己共分散は、同じ変数の異なる時点における値の間の共分散を示します。自己共分散を分析することで、以下のことがわかります。

自己相関の強さ
自己共分散が正の値を持つ場合、変数は時間とともに同じ方向に変動する傾向があります。これは、変数が自己相関を持つことを示します。自己共分散が大きいほど、自己相関が強いことを意味します。
周期性の検出
自己共分散が周期的に変動する場合、変数に周期性があることを示します。例えば、季節性のあるデータや周期的なパターンを持つデータにおいて、自己共分散を分析することで周期性を検出できます。
トレンドの確認
自己共分散が時間とともに増加または減少する場合、変数にトレンドがあることを示します。例えば、データが一貫して増加または減少している場合、自己共分散を分析することでトレンドを検出できます。
データの定常性の確認
自己共分散が一定の値を持つ場合、データが定常であることを示します。定常データは、平均と分散が時間とともに変わらないデータです。自己共分散を分析することで、データが定常かどうかを確認できます。
ノイズの検出
自己共分散がゼロに近い場合、データがランダムなノイズである可能性があります。自己共分散を分析することで、データに有意なパターンが存在するかどうかを確認できます。

値の正/0/負で整理すると次のようになります。

自己共分散が正の場合
変数は時間とともに同じ方向に変動する傾向があります。具体的には、以下のことがわかります。
  • 自己相関の存在: 変数が自己相関を持つことを示します。過去の値が現在の値に対して同じ方向に影響を与えることが多いです。
  • トレンドの存在 データに一貫した増加または減少のトレンドがある可能性があります。
  • 周期性の存在データに周期的なパターンがある場合、自己共分散が周期的に正の値を持つことがあります。
自己共分散が0の場合
変数の異なる時点の値の間に直線的な関係がないことを示します。具体的には、以下のことがわかります。
  • 自己相関の欠如: 変数が自己相関を持たないことを示します。過去の値が現在の値に対して特定の影響を与えないことを意味します。
  • ランダム性の存在: データがランダムなノイズである可能性があります。特定のパターンやトレンドが存在しないことを示します。
自己共分散が負の場合

変数は時間とともに逆方向に変動する傾向があります。具体的には、以下のことがわかります。

  • 逆相関の存在: 変数が逆相関を持つことを示します。過去の値が現在の値に対して逆方向に影響を与えることが多いです。
  • 周期性の存在: データに周期的なパターンがある場合、自己共分散が周期的に負の値を持つことがあります。これは、データが一定の周期で反転することを示します。

注意点

時間がずれただけですから、共分散の注意点はそのままラグ付き共分散にも当てはまります。

次の例は、値が正になるけれども関係がはっきりしない例です。

Output: ラグ付き共分散 (lag=1): 5.2700000000000005