R で相互相関を計算する方法
相互相関は、ある時系列と、別の時系列の時間差バージョンとの間の類似性の程度を測定する方法です。
このタイプの相関関係は、ある時系列の値が別の時系列の将来の値を予測できるかどうかを知ることができるため、計算に役立ちます。言い換えれば、ある時系列が別の時系列の先行指標であるかどうかを知ることができます。
このタイプの相関関係は、次のようなさまざまな分野で使用されます。
経済:消費者信頼感指数 (CCI) は、国の国内総生産 (GDP) の先行指標とみなされます。たとえば、特定の月の CCI が高い場合、 xか月後の GDP は高くなる可能性があります。
ビジネス:マーケティング支出は、将来のビジネス収益の先行指標とみなされることがよくあります。たとえば、企業がある四半期にマーケティングに異常に多額の費用を費やした場合、 x四半期後の総収益は高くなるはずです。
生物学:総海洋汚染は、特定の種のカメの個体数を示す主要な指標と考えられています。たとえば、ある年に汚染が高かった場合、 x年後にはカメの総個体数が減少すると予想されます。
次の例は、R の 2 つの時系列間の相互相関を計算する方法を示しています。
例: R で相互相関を計算する方法
R に、連続 12 か月間の特定の企業の総マーケティング支出 (千単位) と総収益 (千単位) を示す次の時系列があるとします。
#define data
marketing <- c(3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8)
revenue <- c(21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30)
次のようにccf()関数を使用して、2 つの時系列間の各ラグの相互相関を計算できます。
#calculate cross correlation
ccf(marketing, revenue)
このグラフは、異なるラグでの 2 つの時系列間の相関関係を表示します。
実際の相関値を表示するには、次の構文を使用できます。
#display cross correlation values print (ccf(marketing, revenue)) Autocorrelations of series 'X', by lag -7 -6 -5 -4 -3 -2 -1 0 1 2 3 -0.430 -0.351 -0.190 0.123 0.489 0.755 0.868 0.771 0.462 0.194 -0.061 4 5 6 7 -0.282 -0.445 -0.492 -0.358
この出力を解釈する方法は次のとおりです。
- ラグ 0 での相互相関は0.771です。
- ラグ 1 での相互相関は0.462です。
- ラグ 2 での相互相関は0.194です。
- ラグ 3 での相互相関は-0.061です。
等々。
2 つの時系列間の相関関係は、-2 対 2 の遅れを伴って非常に正であることに注意してください。これは、特定の月のマーケティング支出が 1 か月後と 2 か月後の収益をかなり予測していることを示しています。
これは直感的に理にかなっています。特定の月に多額のマーケティング支出があれば、次の 2 か月間で収益が増加すると予想されます。