时间序列-预测-经典算法:ARIMA【自回归综合移动平均】【用于单一变量预测;短序列预测还算精准,不适合长序列预测】【使用前提:数据序列是“平稳的”,即均值、方差不随时间变化】【利用差分法使数据平稳】

ARIMA是一种非常流行的时间序列预测统计方法,它是自回归综合移动平均(Auto-Regressive Integrated Moving Averages)的首字母缩写。ARIMA模型建立在以下假设的基础上: 数据序列是平稳的,这意味着均值和方差不应随时间而变化。 通过对数变换或差分可以使序列平稳。

一、数据的平稳性

二、差分法(让数据变得更平稳)

让数据变得更平稳。

  • 一阶差分:在原数据上做一次差分;
  • 二阶差分:在一阶差分数据上再做一次差分;

 

 

 

三、自回归模型(AR)

 四、移动平均模型(MA)

五、自回归移动平均模型(ARMA)

六、ARIMA模型参数

p:自回归模型阶数;

q:移动平均模型阶数;

d:做差分的次数(一般做一阶差分);

七、自相关函数ACF(用于选择合适的p、q值)

八、ARIMA模型的确定

通过ACF、PACF函数画图来确定p、q参数的取值;

AR模型看PACF的第几阶能落到置信区间,则p就取值该阶数;

MA模型看ACF的第几阶能落到置信区间,则a就取值该阶数;

from gluonts.model.r_forecast import RForecastPredictor
# build model
arima_estimator = RForecastPredictor(freq='1D', prediction_length=args.horizon, method_name="arima")
# Predicting 
forecast_df = pd.DataFrame(columns=['id', 'target_start_date', 'point_fcst_value'])  # df_pred
for entry_, forecast_ in tqdm(zip(training_data, estimator.predict(training_data))):
     id = entry_["id"]
     forecast_df = forecast_df.append( 
                       pd.DataFrame({"id": id,
                                     "target_start_date": forecast_.index.map(lambda s: s.strftime('%Y%m%d')),
                                     "point_fcst_value": forecast_.median}))

https://www.bilibili.com/video/BV1F441187xt/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值