Если вы пытаетесь проверить это визуально, то вам следует использовать диаграмму взаимной корреляции. Это иллюстрирует силу корреляции между двумя временными рядами.
Давайте проиллюстрируем это на примере. Рассмотрим следующие две переменные:
- Солнечный свет часов
- Максимальная температура
Когда-нибудь замечали, как июль / август - самые жаркие месяцы в Северном полушарии, а самый длинный день - 21 июня? Это связано с задержкой во времени, когда воздействие максимального солнечного света не приводит к достижению максимальной температуры в течение месяца или около того.
Если для описания этого построить график функции взаимной корреляции, то вот как это будет выглядеть (включая код).
# Import Libraries
import numpy as np
import pandas as pd
import statsmodels
import statsmodels.tsa.stattools as ts
from statsmodels.tsa.stattools import acf, pacf
import matplotlib as mpl
import matplotlib.pyplot as plt
import quandl
import scipy.stats as ss
import os;
# Set Path
path="directory"
os.chdir(path)
os.getcwd()
# Variables
dataset=np.loadtxt("dataset.csv", delimiter=",")
x=dataset[:,1]
y=dataset[:,0]
plt.xcorr(x, y, normed=True, usevlines=True, maxlags=365)
plt.title("Sunlight Hours versus Maximum Temperature")
plt.show()
Диаграмма взаимной корреляции
Графики ACF (автокорреляция) и PACF (частичная автокорреляция) для них также могут быть построены.
# Autocorrelation
acfx=statsmodels.tsa.stattools.acf(x)
plt.plot(acfx)
plt.title("Autocorrelation Function")
plt.show()
pacfx=statsmodels.tsa.stattools.pacf(x)
plt.plot(pacfx)
plt.title("Partial Autocorrelation Function")
plt.show()
acfy=statsmodels.tsa.stattools.acf(y)
plt.plot(acfy)
plt.title("Autocorrelation Function")
plt.show()
pacfy=statsmodels.tsa.stattools.pacf(y)
plt.plot(pacfy)
plt.title("Partial Autocorrelation Function")
plt.show()
Графики автокорреляции и частичной автокорреляции (максимальная температура)
Графики автокорреляции и частичной автокорреляции (часы солнечного света)
Обратите внимание на то, как сила корреляций для часов солнечного света сохраняется дольше, чем максимальная температура, что подразумевает, что эффекты длинных часов солнечного света продолжают влиять на температуру (то есть одно вызывает Грейнджер, другое вызывает).
Надеюсь, приведенный выше пример полезен. Я бы предложил рассмотреть как взаимные корреляции, так и автокорреляции, чтобы получить более полное представление о природе причинности Грейнджера в ваших данных.