什么是自相關(guān)以及為什么它在時間序列分析中是有用的。 在時間序列分析中,我們經(jīng)常通過對過去的理解來預測未來。為了使這個過程成功,我們必須徹底了解我們的時間序列,找到這個時間序列中包含的信息。 自相關(guān)就是其中一種分析的方法,他可以檢測時間系列中的某些特征,為我們的數(shù)據(jù)選擇最優(yōu)的預測模型。 在這篇簡短的文章中,我想回顧一下:什么是自相關(guān),為什么它是有用的,并介紹如何將它應用到Python中的一個簡單數(shù)據(jù)集。 什么是自相關(guān)?自相關(guān)就是數(shù)據(jù)與自身的相關(guān)性。我們不是測量兩個隨機變量之間的相關(guān)性,而是測量一個隨機變量與自身變量之間的相關(guān)性。因此它被稱為自相關(guān)。 相關(guān)性是指兩個變量之間的相關(guān)性有多強。如果值為1,則變量完全正相關(guān),-1則完全負相關(guān),0則不相關(guān)。 對于時間序列,自相關(guān)是該時間序列在兩個不同時間點上的相關(guān)性(也稱為滯后)。也就是說我們是在用時間序列自身的某個滯后版本來預測它。 數(shù)學上講自相關(guān)的計算方法為: 其中N是時間序列y的長度,k是時間序列的特定的滯后。當計算r_1時,我們計算y_t和y_{t-1}之間的相關(guān)性。 y_t和y_t之間的自相關(guān)性是1,因為它們是相同的。 為什么它有用?使用自相關(guān)性來度量時間序列與其自身的滯后版本的相關(guān)性。這個計算讓我們對系列的特征有了一些有趣的了解: 季節(jié)性:假設(shè)我們發(fā)現(xiàn)某些滯后的相關(guān)性通常高于其他數(shù)值。 這意味著我們的數(shù)據(jù)中有一些季節(jié)性成分。 例如,如果有每日數(shù)據(jù),并且發(fā)現(xiàn)每個 7 滯后項的數(shù)值都高于其他滯后項,那么我們可能有一些每周的季節(jié)性。 趨勢:如果最近滯后的相關(guān)性較高并且隨著滯后的增加而緩慢下降,那么我們的數(shù)據(jù)中存在一些趨勢。 因此,我們需要進行一些差分以使時間序列平穩(wěn)。 讓我們用一個Python示例,來看看他到底是如何工作的 Python示例我們將使用經(jīng)典的航空客運量數(shù)據(jù)集: https://www./datasets/ashfakyeafi/air-passenger-data-for-time-series-analysis # Import packagesimport plotly.express as pximport pandas as pd# Read in the datadata = pd.read_csv('AirPassengers.csv')# Plot the datafig = 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) 可視化可以看到有明顯的上升趨勢和年度季節(jié)性(按月索引的數(shù)據(jù)點)。 這里可以使用statsmodels包中的plot_acf函數(shù)來繪制時間序列在不同延遲下的自相關(guān)圖,這種類型的圖被稱為相關(guān)圖:
這里我們需要注意到以下幾點:
在值0處的滯后與1的完全相關(guān),因為我們將時間序列與它自身的副本相關(guān)聯(lián)。 總結(jié)在這篇文章中,我們描述了什么是自相關(guān),以及我們?nèi)绾问褂盟鼇頇z測時間序列中的季節(jié)性和趨勢。自相關(guān)還有其他用途。例如,我們可以使用預測模型殘差的自相關(guān)圖來確定殘差是否確實獨立。如果殘差的自相關(guān)不是幾乎為零,那么擬合模型可能沒有考慮到所有的信息,是可以改進的。 |
|