时间序列
目录
x13_arima
Arima全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Box)和詹金斯(Jenkins)于70年代初提出一著名时间序列预测方法,所以又称为box-jenkins模型、博克思-詹金斯法.
x13-arima是基于开源X-13ARIMA-SEATS封装的针对季节性调整的arima算法。
X-13ARIMA-SEATS Seasonal Adjustment Program 详细介绍请见链接
wiki
Arima 详细介绍请见链接
wiki
pai命令行
<divre style='background: rgb(246, 246, 246); font: 12px/1.6 "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace; margin: 0px 0px 16px; padding: 10px; outline: 0px; border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(51, 51, 51); text-transform: none; text-indent: 0px; letter-spacing: normal; overflow: auto; word-spacing: 0px; white-space: pre-wrap; word-wrap: break-word; box-sizing: border-box; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;' prettyprinted?="" linenums="">
- pai -name x13_arima
- -project algo_public
- -DinputTableName=pai_ft_x13_arima_input
- -DseqColName=id
- -DvalueColName=number
- -Dorder=3,1,1
- -Dstart=1949.1
- -Dfrequency=12
- -Dseasonal=0,1,1
- -Dperiod=12
- -DpredictStep=12
- -DoutputPredictTableName=pai_ft_x13_arima_out_predict
- -DoutputDetailTableName=pai_ft_x13_arima_out_detail
参数说明
时序格式介绍
参数start和frequency规定了数据(valueColName)的两个时间维度ts1、ts2。frequency表示单位周期内数据的频率,既单位ts1中ts2的频率。 start格式是n1.n2, 既表示开始日期是第n1个ts1中的第n2个ts2
例如. value=[1,2,3,5,6,7,8,9,10,11,12,13,14,15]
1) start=1949.3, frequency=12表示数据是monthly per year, 预测开始的日期是1950.06
2) start=1949.3, frequency=4表示数据是quarterly per year, 预测开始的日期是1953.02
3) start=1949.3, frequency=7表示数据是daily per week, 预测开始的日期是1951.04
4) start=1949.1, frequency=1 可以表示任何时间单位, 预测开始日期是1963.00
具体示例
create table pai_ft_x13_arima_input(id bigint,number bigint);tunnel upload data/airpassengers.csv pai_ft_x13_arima_input -h true;<divre style='background: rgb(246, 246, 246); font: 12px/1.6 "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace; margin: 0px 0px 16px; padding: 10px; outline: 0px; border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(51, 51, 51); text-transform: none; text-indent: 0px; letter-spacing: normal; overflow: auto; word-spacing: 0px; white-space: pre-wrap; word-wrap: break-word; box-sizing: border-box; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;' prettyprinted?="" linenums="">
- * pai命令
- ```bash
- pai -name x13_arima
- -project algo_public
- -DinputTableName=pai_ft_x13_arima_input
- -DseqColName=id
- -DvalueColName=number
- -Dorder=3,1,1
- -Dseasonal=0,1,1
- -Dstart=1949.1
- -Dfrequency=12
- -Dperiod=12
- -DpredictStep=12
- -DoutputPredictTableName=pai_ft_x13_arima_out_predict
- -DoutputDetailTableName=pai_ft_x13_arima_out_detail
输出表:outputPredictTableName,字段分别为:
数据展示
输出表:outputDetailTableName,字段分别为:
数据展示
PaiWeb展示-模型系数(key=model)
PaiWeb展示-评估指标(key=evaluation)
算法规模
行:单group数据最大1200条
列:1数值列
不设置groupColNames, 默认计算方式
coreNum = 1
memSizePerCore = 4096
设置groupColNames,默认计算方式
coreNum = floor(总数据行数 / 12万)
memSizePerCore = 4096
训练数据集
x13-auto-arima
x13-auto-arima includes an automatic ARIMA model selection procedure based largely on the procedure of Gomez and Maravall (1998) as implemented in TRAMO (1996) and subsequent revisions.
x13-auto-arima选择过程如下
default model esitmation.
当frequency = 1,默认模型是(0,1,1)当frequency > 1,默认模型是(0,1,1)(0,1,1)
identication of dierencing orders
如果设置了diff和seasonalDiff,则跳过此步使用 Unit root test (
wiki )确定差分d,和季节性差分D
identication of ARMA model orders
根据BIC(
wiki)准则选择最合适的模型, 其参数maxOrder、maxSeasonalOrder在此步骤其作用
comparison of identified model with default model
使用Ljung-Box Q statistic(
wiki)比较模型,如果两个模型均是不可接受的,则使用(3,d,1)(0,D,1)模型
final model checks
pai命令行
<divre style='background: rgb(246, 246, 246); font: 12px/1.6 "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace; margin: 0px 0px 16px; padding: 10px; outline: 0px; border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(51, 51, 51); text-transform: none; text-indent: 0px; letter-spacing: normal; overflow: auto; word-spacing: 0px; white-space: pre-wrap; word-wrap: break-word; box-sizing: border-box; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;' prettyprinted?="" linenums="">
- pai -name x13_auto_arima
- -project algo_public
- -DinputTableName=pai_ft_x13_arima_input
- -DseqColName=id
- -DvalueColName=number
- -Dstart=1949.1
- -Dfrequency=12
- -DpredictStep=12
- -DoutputPredictTableName=pai_ft_x13_arima_out_predict2
- -DoutputDetailTableName=pai_ft_x13_arima_out_detail2
参数说明
时序格式介绍
参数start和frequency规定了数据(valueColName)的两个时间维度ts1、ts2。frequency表示单位周期内数据的频率,既单位ts1中ts2的频率。 start格式是n1.n2, 既表示开始日期是第n1个ts1中的第n2个ts2
例如. value=[1,2,3,5,6,7,8,9,10,11,12,13,14,15]
1) start=1949.3, frequency=12表示数据是monthly per year, 预测开始的日期是1950.06
2) start=1949.3, frequency=4表示数据是quarterly per year, 预测开始的日期是1953.02
3) start=1949.3, frequency=7表示数据是daily per week, 预测开始的日期是1951.04
4) start=1949.1, frequency=1 可以表示任何时间单位, 预测开始日期是1963.00
具体示例
create table pai_ft_x13_arima_input(id bigint,number bigint);tunnel upload data/airpassengers.csv pai_ft_x13_arima_input -h true;<divre style='background: rgb(246, 246, 246); font: 12px/1.6 "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace; margin: 0px 0px 16px; padding: 10px; outline: 0px; border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(51, 51, 51); text-transform: none; text-indent: 0px; letter-spacing: normal; overflow: auto; word-spacing: 0px; white-space: pre-wrap; word-wrap: break-word; box-sizing: border-box; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;' prettyprinted?="" linenums="">
- * pai命令
pai -name x13_auto_arima -project algo_public -DinputTableName=pai_ft_x13_arima_input -DseqColName=id -DvalueColName=number -Dstart=1949.1 -Dfrequency=12 -DmaxOrder=4 -DmaxSeasonalOrder=2 -DmaxDiff=2 -DmaxSeasonalDiff=1 -DpredictStep=12 -DoutputPredictTableName=pai_ft_x13_arima_auto_out_predict -DoutputDetailTableName=pai_ft_x13_arima_auto_out_detail```
输出表:outputPredictTableName,字段分别为:
数据展示
输出表:outputDetailTableName,字段分别为:
数据展示
PaiWeb展示-模型系数(key=model)
PaiWeb展示-评估指标(key=evaluation)
算法规模
行:单group数据最大1200条
列:1数值列
不设置groupColNames, 默认计算方式
coreNum = 1
memSizePerCore = 4096
设置groupColNames,默认计算方式
coreNum = floor(总数据行数 / 12万)
memSizePerCore = 4096
常见问题
在模型训练异常时,会调用均值模型,则所有预测结果是训练数据的均值。常见的异常如: 时序差分diff后不stationary;训练没有收敛;方差为0等。 可以在logview中,查看单独节点的stderr文件,获取具体的异常信息
训练数据集