簡體   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