prophet翻譯(六)-- 乘積季節模型

乘積季節模型

默認情況下,Prophet採用加法季節性擬合,就是說季節性效應被添加到趨勢中以進行預測。但下面這個描述乘客數量的時序例子,則不適合使用加法季節性算法:

# Python
df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_air_passengers.csv')
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(50, freq='MS')
forecast = m.predict(future)
fig = m.plot(forecast)

image
這個時間序列具有明顯的年度週期,但預測中的季節性在時間序列的開始處過大,在末尾處過小。在這個時間序列中,季節性不是Prophet所假設的恆定加法因子,而是隨着趨勢增長而增長的乘法季節性。

Prophet可以通過在輸入參數中設置seasonality_mode='multiplicative'來建模乘法季節性:

# Python
m = Prophet(seasonality_mode='multiplicative')
m.fit(df)
forecast = m.predict(future)
fig = m.plot(forecast)

image
在設置seasonality_mode='multiplicative'後,組件圖將以季節性作爲趨勢的百分比來展示:

# Python
fig = m.plot_components(forecast)

image
使用seasonality_mode='multiplicative'時,假日效應也將被建模爲乘法效應。任何添加的季節性或額外的迴歸變量默認情況下將使用設置的seasonality_mode,但可以通過在添加季節性或迴歸變量時指定mode='additive'或mode='multiplicative'來覆蓋。
例如,以下代碼塊將內置的季節性設置爲乘法季節性,但同時包括一個加法季度季節性和一個加法迴歸變量:

# Python
m = Prophet(seasonality_mode='multiplicative')
m.add_seasonality('quarterly', period=91.25, fourier_order=8, mode='additive')
m.add_regressor('regressor', mode='additive')

在組件圖中,加法和乘法的額外迴歸變量將分別顯示在不同的面板中。然而,請注意,同時存在加法和乘法季節性的情況非常罕見,因此通常只有在有理由預期存在這種情況時纔會使用這種組合。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章