prophet Multiplicative Seasonality乘法季节性

例子代码

https://github.com/lilihongjava/prophet_demo/tree/master/multiplicative_seasonality

# encoding: utf-8
"""
@author: lee
@time: 2019/8/6 8:55
@file: main.py
@desc: 
"""
from fbprophet import Prophet
import pandas as pd


def main():
    df = pd.read_csv('./data/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)
    fig.show()

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

    fig = m.plot_components(forecast)
    fig.show()

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


if __name__ == "__main__":
    main()

默认情况下,Prophet是加法季节性,论文中公式为y(t) = g(t) + s(t) + h(t),这意味着季节性的影响是以加法的方法加到趋势中以获得预测。下面预测航空旅客数量的时间序列是加法季节性不起作用的一个例子:

# Python
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)

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

prophet可以通过设置seasonality_mode='multiplicative'参数来建模乘法季节性,公式为y(t) = g(t) *s(t) * h(t)

以下组件图显示季节性占趋势的百分比:

设置了seasonality_mode='multiplicative',假日效应也将被建模为乘法。任何添加的季节性或额外的回归量将默认使用seasonality_mode设置的内容,但可以通过指定mode='additive'mode='multiplicative'作为参数来覆盖seasonality_mode设置的内容

例如,以下内置季节性设置为乘法,但是可以把季节性quarterly和额外回归量regressor设置为加法:

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

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

 

参考资料:

https://facebook.github.io/prophet/docs/multiplicative_seasonality.html

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程泓哥

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值