首頁 > 易卦

時間序列分析中的自相關

作者:由 deephub 發表于 易卦日期:2023-01-15

非同步資料如何進行同步

什麼是自相關以及為什麼它在時間序列分析中是有用的。

在時間序列分析中,我們經常透過對過去的理解來預測未來。為了使這個過程成功,我們必須徹底瞭解我們的時間序列,找到這個時間序列中包含的資訊。

自相關就是其中一種分析的方法,他可以檢測時間系列中的某些特徵,為我們的資料選擇最優的預測模型。

時間序列分析中的自相關

在這篇簡短的文章中,我想回顧一下:什麼是自相關,為什麼它是有用的,並介紹如何將它應用到Python中的一個簡單資料集。

什麼是自相關?

自相關就是資料與自身的相關性。我們不是測量兩個隨機變數之間的相關性,而是測量一個隨機變數與自身變數之間的相關性。因此它被稱為自相關。

相關性是指兩個變數之間的相關性有多強。如果值為1,則變數完全正相關,-1則完全負相關,0則不相關。

對於時間序列,自相關是該時間序列在兩個不同時間點上的相關性(也稱為滯後)。也就是說我們是在用時間序列自身的某個滯後版本來預測它。

數學上講自相關的計算方法為:

時間序列分析中的自相關

其中N是時間序列y的長度,k是時間序列的特定的滯後。當計算r_1時,我們計算y_t和y_{t-1}之間的相關性。

y_t和y_t之間的自相關性是1,因為它們是相同的。

為什麼它有用?

使用自相關性來度量時間序列與其自身的滯後版本的相關性。這個計算讓我們對系列的特徵有了一些有趣的瞭解:

季節性:假設我們發現某些滯後的相關性通常高於其他數值。 這意味著我們的資料中有一些季節性成分。 例如,如果有每日資料,並且發現每個 7 滯後項的數值都高於其他滯後項,那麼我們可能有一些每週的季節性。

趨勢:如果最近滯後的相關性較高並且隨著滯後的增加而緩慢下降,那麼我們的資料中存在一些趨勢。 因此,我們需要進行一些差分以使時間序列平穩。

讓我們用一個Python示例,來看看他到底是如何工作的

Python示例

我們將使用經典的航空客運量資料集:

https://www。kaggle。com/datasets/ashfakyeafi/air-passenger-data-for-time-series-analysis

# Import packages

import plotly。express as px

import pandas as pd

# Read in the data

data = pd。read_csv(‘AirPassengers。csv’)

# Plot the data

fig = px。line(data, x=‘Month’, y=‘#Passengers’,

labels=({‘#Passengers’: ‘Passengers’, ‘Month’: ‘Date’}))

fig。update_layout(template=“simple_white”, font=dict(size=18),

title_text=‘Airline Passengers’, width=650,

title_x=0。5, height=400)

時間序列分析中的自相關

視覺化可以看到有明顯的上升趨勢和年度季節性(按月索引的資料點)。

這裡可以使用statsmodels包中的plot_acf函式來繪製時間序列在不同延遲下的自相關圖,這種型別的圖被稱為相關圖:

# Import packages

from statsmodels。graphics。tsaplots import plot_acf

import matplotlib。pyplot as plt

# Plot autocorrelation

plt。rc(“figure”, figsize=(11,5))

plot_acf(data[‘#Passengers’], lags=48)

plt。ylim(0,1)

plt。xlabel(‘Lags’, fontsize=18)

plt。ylabel(‘Correlation’, fontsize=18)

plt。xticks(fontsize=18)

plt。yticks(fontsize=18)

plt。title(‘Autocorrelation Plot’, fontsize=20)

plt。tight_layout()

plt。show()

時間序列分析中的自相關

這裡我們需要注意到以下幾點:

在每12步的滯後中有一個明顯的週期性模式。這是由於我們的資料是按月編制的,因此我們的資料具有每年的季節性。

隨著滯後量的增加,相關強度總體上呈緩慢下降趨勢。這在我們的資料中指出了一個趨勢,在建模時需要對其進行區分以使其穩定。

藍色區域表示哪些滯後在統計上顯著。因此在對該資料建立預測模型時,下個月的預測可能只考慮前一個值的~15個,因為它們具有統計學意義。

在值0處的滯後與1的完全相關,因為我們將時間序列與它自身的副本相關聯。

總結

在這篇文章中,我們描述了什麼是自相關,以及我們如何使用它來檢測時間序列中的季節性和趨勢。自相關還有其他用途。例如,我們可以使用預測模型殘差的自相關圖來確定殘差是否確實獨立。如果殘差的自相關不是幾乎為零,那麼擬合模型可能沒有考慮到所有的資訊,是可以改進的。

https://avoid。overfit。cn/post/a8c4b5c43e65431dbf026d4f9dd5e1ca

作者:Egor Howell