繁体   English   中英

如何制作具有两个时间序列的一定滞后的相关图

[英]How to make a correlation plot with a certain lag of two time series

我试图绘制两个时间序列之间的自相关来寻找所需的滞后。 Python statsmodels.graphics.tsaplots库提供了plot_acf,用于调查时间序列对其自身的滞后影响。

我如何绘制这个滞后相关性来探索影响另一个时间序列的一个时间序列,以了解我应该选择哪个滞后?

为了澄清,由于您试图调查两个不同时间序列之间的相关性,因此您尝试计算互相关

没有“两个时间序列之间的自相关”这样的东西 - 自相关意味着在一个时间序列内跨越不同时滞的相关性。

我们来举个例子吧。 假设有人希望检查一个地方的日照时数和最高温度之间的互相关性。 这个过程受到季节性滞后的影响 - 最高温度将落后于最大日照时数。

对数据绘制了互相关,如下所示:

# 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;
path="directory"
os.chdir(path)
os.getcwd()

#Variables
dataset=np.loadtxt("weather.csv", delimiter=",")
x=dataset[:,0]
y=dataset[:,1]
plt.xcorr(x, y, normed=True, usevlines=True, maxlags=365)
plt.title("Sunlight Hours versus Maximum Temperature")
plt.show()

计算最大365滞后的互相关,这是一个数据图:

阳光

在这种情况下,最大日照时数和最高空气温度之间的最强相关性滞后约40天,即这是在观察到两个时间序列之间的最强相关性时。

在您的情况下,我建议绘制两个时间序列之间的互相关,以确定是否存在滞后,如果存在滞后,则确定是否存在多少个时间段。

https://stackoverflow.com/users/7094244/michael-grogan感谢您对“自相关”和“交叉相关”的解释。 我宁愿建议将你的情节图像转换为更“统计”。 比如像我做的那样:

plt.xcorr(TS1, TS2, usevlines=True, maxlags=20, normed=True, lw=2)
plt.grid(True)
plt.axhline(0.2, color='blue', linestyle='dashed', lw=2)
plt.ylim([0, 0.3])
plt.title("Cross-correlation")

互相关图图像

你可以从情节中找到,我有一个非常特殊的情况,几乎没有相关性。 理想情况下,你应该重写

plt.set_ylim([0, 0.3])

plt.set_ylim([0, 1]) 

查看所有相关界限。 并且,正常地,> = 0.2的相关性被认为是统计学上显着的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM