Prophet文档中文翻译–multiplicative_seasonality

  • Post author:
  • Post category:其他


%matplotlib inline
from fbprophet import Prophet
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import logging
logging.getLogger('fbprophet').setLevel(logging.ERROR)
import warnings
warnings.filterwarnings("ignore")

默认情况下,Prophet符合加性季节性,这意味着季节性的影响会增加到获得预测的趋势中。航空旅客数量的时间序列是一个用加法季节性不起作用的一个例子:

df = pd.read_csv('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)

png

这个时间序列有一个明确的年度周期,但预测的季节性在时间序列开始时太大而在结束时太小。在这个时间序列中,季节性不是Prophet所假设的恒定加性因子,而是随着趋势而增长。这是乘性的季节性。

Prophet可以通过在输入参数中设置

seasonality_mode ='multiplicative'

来模拟乘法季节性:

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

png

现在,组件图像将显示季节性占趋势的百分比:

fig = m.plot_components(forecast)

png

使用

seasonality_mode ='multiplicative'

,假日效果将被建模为乘法。默认情况下,任何添加的季节性或额外的回归量都将使用设置的

seasonality_mode

,但可以通过在添加季节性或回归量时指定mode =’additive’或mode =’multiplicative’作为参数来覆盖。

例如,此块将内置季节性设置为乘法,但包括加性季度季节性和加性回归量:

m = Prophet(seasonality_mode='multiplicative')
m.add_seasonality('quarterly', period=91.25, fourier_order=8, mode='additive')
m.add_regressor('regressor', mode='additive')
<fbprophet.forecaster.Prophet at 0x1e1811875f8>

加性和乘性额外回归量将显示在单独的组件面板图上。