自回归模型示例
自动回归模型将根据先前的值来预测时间序列的未来值。更具体地说,用户指定的 lag 决定了该模型在计算过程中要考虑多少个先前的时间段,且预测值为每个 lag 的线性组合。
使用自回归模型进行训练和预测时使用以下函数。请注意,这些函数需要具有一致时间步长的数据集。
-
AUTOREGRESSOR
:训练一个自回归模型 -
PREDICT_AUTOREGRESSOR
:将模型应用于数据集以进行预测
要标准化时间步长不一致的数据集,请参阅空白填充和插值 (GFI)。
示例
-
从 Machine-Learning-Examples 存储库加载数据集。
此示例使用 daily-min-temperatures 数据集,其中包含 1981 年至 1990 年澳大利亚墨尔本每天的最低气温数据:
=> SELECT * FROM temp_data; time | Temperature ---------------------+------------- 1981-01-01 00:00:00 | 20.7 1981-01-02 00:00:00 | 17.9 1981-01-03 00:00:00 | 18.8 1981-01-04 00:00:00 | 14.6 1981-01-05 00:00:00 | 15.8 ... 1990-12-27 00:00:00 | 14 1990-12-28 00:00:00 | 13.6 1990-12-29 00:00:00 | 13.5 1990-12-30 00:00:00 | 15.7 1990-12-31 00:00:00 | 13 (3650 rows)
-
使用
AUTOREGRESSOR
从temp_data
数据集创建自回归模型AR_temperature
。在本例中,模型以p
=3 的滞后进行训练,每次估计都要考虑前 3 个条目:=> SELECT AUTOREGRESSOR('AR_temperature', 'temp_data', 'Temperature', 'time' USING PARAMETERS p=3); AUTOREGRESSOR --------------------------------------------------------- Finished. 3650 elements accepted, 0 elements rejected. (1 row)
您可以使用
GET_MODEL_SUMMARY
查看模型的摘要:=> SELECT GET_MODEL_SUMMARY(USING PARAMETERS model_name='AR_temperature'); GET_MODEL_SUMMARY ------------------- ============ coefficients ============ parameter| value ---------+-------- alpha | 1.88817 phi_(t-1)| 0.70004 phi_(t-2)|-0.05940 phi_(t-3)| 0.19018 ================== mean_squared_error ================== not evaluated =========== call_string =========== autoregressor('public.AR_temperature', 'temp_data', 'temperature', 'time' USING PARAMETERS p=3, missing=linear_interpolation, regularization='none', lambda=1, compute_mse=false); =============== Additional Info =============== Name |Value ------------------+----- lag_order | 3 rejected_row_count| 0 accepted_row_count|3650 (1 row)
-
使用
PREDICT_AUTOREGRESSOR
预测未来温度。以下查询在数据集末尾start
预测,并返回 10 个预测。=> SELECT PREDICT_AUTOREGRESSOR(Temperature USING PARAMETERS model_name='AR_temperature', npredictions=10) OVER(ORDER BY time) FROM temp_data; prediction ------------------ 12.6235419917807 12.9387860506032 12.6683380680058 12.3886937385419 12.2689506237424 12.1503023330142 12.0211734746741 11.9150531529328 11.825870404008 11.7451846722395 (10 rows)