Kaggle作為數據分析類專業同學升學和求職的無敵Buff,它吸引人的地方不是高達百萬美金的獎金,更多的是這段經歷能給參賽者帶來的機遇和技能加成。今天對Kaggle知識點進行輔導講解。
在時序序列模型中ARIMA全稱差分整合移動平均自回歸模型,是時間序列預測分析方法之一。
ARIMA(p,d,q)模型:
AR是“自回歸”,p為自回歸項;
MA為“滑動平均”,q為滑動平均項;
d為序列做的差分次數;
p d q如何確定?
步驟1:確定序列平穩性
在拿到基于時間的觀測值序列后,需要首先進行兩步預處理,一個是純隨機性檢驗,另一個是平穩性檢驗,然后根據這兩步的檢驗結果再采取相應的時間序列模型進行分析。
對時間序列做d次差分才能得到一個平穩序列,那么可以使用ARIMA(p,d,q)模型,其中d是差分次數。
步驟2:計算ACF和PACF
確定了序列平穩之后,就開始做自相關圖(ACF)和偏自相關圖(PACF)。
ACF 是一個完整的自相關函數,可為我們提供具有滯后值的任何序列的自相關值。簡單來說,它描述了該序列的當前值與其過去的值之間的相關程度。
PACF 是部分自相關函數或者偏自相關函數,是找到殘差(在去除了之前的滯后已經解釋的影響之后仍然存在)與下一個滯后值的相關性。
import?pandas?as?pd
import?numpy?as?np
import?matplotlib.pyplot?as?plt
%matplotlib?inline
t?=?np.linspace(0,?10,?500)
#normal?distributed?values
ys?=?np.random.normal(0,5,500)
#exponential?series?to?get?the?trend
ye?=?np.exp(t**0.5)
#adding?normally?distributed?series?in?exponential?series
y?=?ys+ye
plt.figure(figsize=(16,7))
plt.plot(t,y)
步驟3:確定p和q
截尾ACF或PACF某階后均為0;
拖尾ACF或PACF并不在某階后均為0。
能不能自動搜索p d q?
上述確定ARIMA參數的過程需要有時間序列的積累,入門的同學很難上手。有沒有替代的方法呢?
如果有了驗證集我們可以直接從驗證集對ARIMA(p,d,q)進行網格搜索,以驗證集精度確定具體的參數。
基礎的偽代碼如下:
def?gridSearch(itemObj,silent):
#?搜索空間
p?=?d?=?q?=?range(0,?3)
# 搜索組合
pdq?=?list(itertools.product(p,?d,?q))
seasonal_pdq = [(x[0], x[1], x[2], 12) for x in list(itertools.product(p, d, q))]
# 訓練模型
# 驗證模型
# 返回最優參數
基礎代碼實現:https://www.kaggle.com/sbongo/another-look-at-forecasting-gridsearch-arima
報名通道已開啟,有想法以及需要報名的,掃碼咨詢~
考前查缺補漏、重點沖刺!


? 2025. All Rights Reserved. 滬ICP備2023009024號-1