數(shù)據(jù)趨勢如何判斷-時間序列預(yù)測

0 評論 911 瀏覽 2 收藏 12 分鐘

無論是制定預(yù)算、優(yōu)化庫存管理,還是探索新業(yè)務(wù)的潛力,時間序列預(yù)測都扮演著關(guān)鍵角色。本文將深入探討時間序列預(yù)測的常見應(yīng)用場景,介紹幾種經(jīng)典的時間序列模型(如移動平均、指數(shù)平滑、Holt-Winters、ARIMA和Prophet),并講解如何評估模型效果,希望可以幫到大家。

上一篇Deepseek生成預(yù)測報告有點小激動,還沒解釋模型,現(xiàn)在補一下

1 什么場景下會使用到趨勢預(yù)測?

業(yè)務(wù)場景還是挺多的,比如:

  • 每年年末或年初,做預(yù)算規(guī)劃或目標(biāo)設(shè)定時,會根據(jù)歷史基線、增長速度等給下一年定個目標(biāo)值,有時會像《定個好基準(zhǔn)》中所說參考環(huán)比同比來拍一個目標(biāo)。
  • 或者需要根據(jù)季節(jié)性、周期性特點,以及短期內(nèi)的銷售情況,對未來庫存進行預(yù)估,更及時地進行備貨調(diào)整。
  • 或者未來想開拓一個新業(yè)務(wù),預(yù)估未來市場有多大潛力空間。
  • 又或者在推薦等模型優(yōu)化時將預(yù)測值作為輸入特征。

……

2 幾個時間序列模型

在上一篇文章中實操了一下預(yù)測,但對這些模型還沒做說明,接下來統(tǒng)一解釋。

時間序列模型很重要的特點是,除時間外它只有一個變量,它所研究的是如何加工這一個變量,找到它隨時間變化的特點,再進行預(yù)測,而沒有通過其他相關(guān)數(shù)據(jù)輔助預(yù)測。舉例來說,預(yù)測未來一個季度的銷量,變量只有歷史的銷量,而不含有流量、轉(zhuǎn)化率等數(shù)據(jù)。

適用于中短期

1. 移動平均

看公式很容易理解,間隔為n的時間窗口內(nèi)的平均值,該值可作為T+1的預(yù)估值,適用場景通常為趨勢穩(wěn)定的數(shù)據(jù),如果數(shù)據(jù)有周期性,會出現(xiàn)預(yù)測峰谷值同實際錯位的情況。

2. 簡單指數(shù)平滑

y^為預(yù)測值,y為實際值,α為平滑系數(shù),范圍(0,1),α越大近期更敏,感適合波動較大的數(shù)據(jù),反之越平滑適合穩(wěn)定趨勢。T+1的預(yù)測值,為t天實際值和預(yù)測值的加權(quán)所得。3. Holt-Winters

包含水平平滑、趨勢平滑、季節(jié)性平滑。

水平平滑

趨勢平滑

季節(jié)性平滑

幾個參數(shù):

  • St:當(dāng)前季節(jié)分
  • m:季節(jié)周期(如m=12為以月為周期,12個月為一個循環(huán))
  • α、β、γ分別為水平、趨勢、季節(jié)性平滑參數(shù),范圍(0,1)
  • h:步長,預(yù)測是跨幾個步長進行預(yù)測,一般是1
  • k=[(h-1)/m]+1

有點抽象,舉個例子說明,假如如下對應(yīng)每個季度的商品銷售量,現(xiàn)在想要預(yù)測2025Q1(t=9)的銷量

假設(shè)參數(shù)設(shè)定:α=0.3(水平) β=0.2(趨勢) γ=0.1(季節(jié)性),季節(jié)周期:m=4

初始化預(yù)測參數(shù):

  • l4=(100+120+140+160)/4=130,即前4個季度的平均值,
  • b4=平均季度增長=[(120-100)+(140-120)+(160-140)]/3=6.67
  • s1=100-130=-30,s2=120-130=-10,s3=140-130=10,s4=160-130=30

預(yù)測2024Q1(t=5):y5預(yù)估=l4+b4+s5-4=130+6.67-30=106.67,實際y5=120

更新預(yù)測參數(shù),即t=5對應(yīng)的預(yù)估值,

  • l5=0.3(120+30)+0.7(130+6.67)=140.67
  • b5=0.2(140.67-130)+0.8*6.67=7.47
  • s5=0.1(120-130-6.67)+0.9(-30)=-28.67

以此類推,可得到y(tǒng)9預(yù)估值=l8+1*b8+s9-4*2=149.63

雖然手動算麻煩一點,但以上這兩種方式,確實可以通過計算看到數(shù)據(jù)和趨勢變化如何產(chǎn)生。

適用于中長期

接下來要聊的兩種方法,就不足以通過手動計算了。

4. ARIMA(p,d,q)。時間序列預(yù)測很古典和著名的方法。

模型是由三部分組成:

自回歸部分AR

p為參數(shù),核心解決的是預(yù)測未來的數(shù)據(jù),應(yīng)該選歷史多少個時間點的數(shù)據(jù)更好,最遠的時間是t-p,因此p為參數(shù)。

移動平均部分MA

q為參數(shù),要解決的是y實際值和y預(yù)測值之間的差,選擇歷史上多少個時間點更好,最遠時間為t-q,因此q為參數(shù)。

差分部分,d為參數(shù),要解決的是 yt-yt-1 這樣做幾階差分更好,為的是把非平穩(wěn)的數(shù)據(jù)轉(zhuǎn)換為平穩(wěn)數(shù)據(jù)。

先通過ADF檢驗對d進行差分檢驗(與統(tǒng)計臨界值對比),在通過ACF(自相關(guān)函數(shù))和PACF(偏自相關(guān)函數(shù))分別對p和q進行檢驗,通過AIC和BIC對模型復(fù)雜性評估后可得到更為合理的p、q值。

5. Prophet。時間序列進化到Prophet,操作更友好了。

模型是由三個小模型組成,?t 為誤差項

  1. g(t):增長和分段線性模型(線性或者邏輯回歸函數(shù))
  2. s(t):周期性和季節(jié)性模型(正弦和余弦組合函數(shù))
  3. h(t):節(jié)假日或特殊事件模型(線性函數(shù))

該模型很好理解,且命中了趨勢預(yù)測里經(jīng)常要思考的幾個問題:如果趨勢有上升和下降幾段趨勢怎么辦?周期性的數(shù)據(jù)并非完全自然周期怎么辦?遇上突發(fā)事件出現(xiàn)某個點異常怎么辦?過往的時間序列模型很難進行擬合和描述,不過Prophet解決了這個問題。

這里對具體公式不詳細展開,感興趣可在參考資料里了解,這里主要介紹模型參數(shù)的作用,對實操會更有幫助。

  • growth(增長函數(shù)類型):linear(默認):線性增長,適用于無明確上限的趨勢(如銷售額),logistic:邏輯回歸增長,適用于有增長上限的場景(如用戶數(shù));
  • changepoint_prior_scale(變點靈敏度):0.001~0.5(默認 0.05),若預(yù)測結(jié)果過于平滑(欠擬合)增大該值,若預(yù)測結(jié)果波動劇烈(過擬合),減小該值;
  • n_changepoints(變點數(shù)量):25(均勻分布在時間序列前80%區(qū)間),越大將趨勢變化切分越多;
  • seasonality_prior_scale(季節(jié)性強度):0.01~10(默認10),值越大季節(jié)性波動越大;
  • add_seasonality(傅里葉階數(shù)):name=’yearly’, period=365.25, fourier_order=12,fourier_order越大階數(shù)越高擬合越復(fù)雜,name對應(yīng)的是yearly,weekly,daily或者命名一個,period寫對應(yīng)周期;
  • holidays_prior_scale(節(jié)假日效應(yīng)強度):0.01~10(默認 10),值越大節(jié)假日波動越強。
  • 節(jié)假日窗口,比如雙11大促:

holidays_df = pd.DataFrame({

‘holiday’: ‘promo’,

‘ds’: pd.to_datetime([‘2022-11-11’, ‘2023-11-11’, ‘2024-11-11’]),

‘lower_window’: -30, #雙11前30天

‘upper_window’: 2 ?#雙11后2天

})

后邊也有新的升級 Neural Prophet,如果感興趣也可以再查找了解。

3 如何評估模型效果

預(yù)測時數(shù)據(jù)會切分成兩部分,訓(xùn)練集和測試集,評估模型效果簡單來講就是拿訓(xùn)練集得到模型,后再去預(yù)測測試集對應(yīng)的數(shù)值,把測試集的真實結(jié)果同預(yù)測結(jié)果比對,差異越小說明預(yù)測越準(zhǔn)確,但也要兼顧魯棒性,注意不要過擬合。

幾個線性模型評價模型準(zhǔn)確度的指標(biāo)和計算公式如下,比較簡單就不做過多解釋了。

MAE 平均絕對誤差

RMSE 均方根誤差

MAPE 平均絕對百分比誤差(使用時不能有0,且去量綱可比較不同數(shù)據(jù)集)

參考資料

知乎文章《時間序列原理篇之Facebook Prophet算法》

知乎文章《時間序列模型(四):ARIMA模型》

本文由人人都是產(chǎn)品經(jīng)理作者【小王子和小企鵝】,微信公眾號:【小王子和小企鵝】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!