绘制一张与格兰杰因果关系图

2024-04-30 03:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用下面的代码在我拥有的数据框架上运行Granger因果关系测试。代码运行良好,返回我期望的正确结果,但是,我想知道是否可以使用python在图表中绘制数据,显示因果关系?

类似的东西: enter image description here

我尝试使用下面的代码,并成功地返回数据。

print(grangercausalitytests(df[['Number_of_Ethereum_Searches', 'Price_in_USD']], maxlag=1, addconst=True, verbose=True))

Tags: of数据代码框架truenumberdf图表
1条回答
网友
1楼 · 发布于 2024-04-30 03:54:04

如果您试图直观地检查这一点,那么您应该使用互相关图。这说明了两个时间序列之间相关性的强度。在

让我们用一个例子来说明这一点。考虑以下两个变量:

  • 日照时数
  • 最高温度

你有没有注意到北半球最热的月份是7月/8月,而最长的一天是6月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()

互相关图

enter image description here

也可以绘制这些曲线的ACF(自相关)和PACF(部分自相关)图。在

^{pr2}$

自相关和部分自相关图(最高温度)

enter image description here

enter image description here

自相关和部分自相关图(日照时数)

enter image description here

enter image description here

注意日照时数的相关强度如何持续超过最高温度,这意味着长日照时数的影响持续影响温度(即一个是格兰杰引起的另一个)。在

希望上面的例子能有所帮助。我建议同时研究交叉相关和自相关,以便更好地了解数据中格兰杰因果关系的本质。在

相关问题 更多 >