homework-jianmu/docs/zh/06-advanced/06-TDgpt/05-forecast/02-arima.md

3.0 KiB
Raw Blame History

title sidebar_label
ARIMA ARIMA

本节说明 ARIMA 算法模型的使用方法。

功能概述

ARIMAAutoregressive Integrated Moving Average即自回归移动平均模型记作 ARIMA(p,d,q),是统计模型中最常见的一种用来进行时间序列预测的模型。 ARIMA 模型是一种自回归模型只需要自变量即可预测后续的值。ARIMA 模型要求时间序列平稳,或经过差分处理后平稳,如果是不平稳的数据,无法获得正确的结果。

平稳的时间序列:其性质不随观测时间的变化而变化。具有趋势或季节性的时间序列不是平稳时间序列——趋势和季节性使得时间序列在不同时段呈现不同性质。

以下参数可以动态输入,控制预测过程中生成合适的 ARIMA 模型。

  • p= 自回归模型阶数
  • d= 差分阶数
  • q= 移动平均模型阶数

参数

分析平台中使用自动化的 ARIMA 模型进行计算,因此每次计算的时候会根据输入的数据自动拟合最合适的模型,然后根据该模型进行预测输出结果。

参数 说明 必填项
period 输入时间序列每个周期包含的数据点个数,如果不设置该参数或该参数设置为 0将使用非季节性/周期性的 ARIMA 模型预测 选填
start_p 自回归模型阶数的起始值0 开始的整数,不推荐大于 10 选填
max_p 自回归模型阶数的结束值0 开始的整数,不推荐大于 10 选填
start_q 移动平均模型阶数的起始值0 开始的整数,不推荐大于 10 选填
max_q 移动平均模型阶数的结束值0 开始的整数,不推荐大于 10 选填
d 差分阶数 选填

start_pmax_p start_q max_q 四个参数约束了模型在多大的范围内去搜寻合适的最优解。相同输入数据的条件下,参数范围越大,消耗的资源越多,系统响应的时间越长。

示例及结果

针对 i32 列进行数据预测,输入列 i32 每 10 个点是一个周期start_p 起始是 1最大拟合是 5start_q 是 1最大值是 5预测结果中返回 95% 置信区间范围边界。

FORECAST(i32, "algo=arima,alpha=95,period=10,start_p=1,max_p=5,start_q=1,max_q=5")

完整的调用SQL语句如下

SELECT _frowts, FORECAST(i32, "algo=arima,alpha=95,period=10,start_p=1,max_p=5,start_q=1,max_q=5") from foo
{
"rows": fc_rows,  // 返回结果的行数
"period": period, // 返回结果的周期性,同输入
"alpha": alpha,   // 返回结果的置信区间,同输入
"algo": "arima",  // 返回结果使用的算法
"mse": mse,       // 拟合输入时间序列时候生成模型的最小均方误差(MSE)
"res": res        // 列模式的结果
}

参考文献