时间序列模型在具有一致时间步长的随机过程的平稳时间序列(即平均值不随时间变化的时间序列)上进行训练。这些算法通过考虑一些先前时间步长(滞后)的值的影响来预测未来值。
适用数据集的示例包括温度、股票价格、地震、产品销售等数据集。
要标准化时间步长不一致的数据集,请参阅空白填充和插值 (GFI)。
时间序列模型在具有一致时间步长的随机过程的平稳时间序列(即平均值不随时间变化的时间序列)上进行训练。这些算法通过考虑一些先前时间步长(滞后)的值的影响来预测未来值。
适用数据集的示例包括温度、股票价格、地震、产品销售等数据集。
要标准化时间步长不一致的数据集,请参阅空白填充和插值 (GFI)。
自动回归模型将根据先前的值来预测时间序列的未来值。更具体地说,用户指定的 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)
移动平均值模型使用早期预测误差进行未来预测。更具体地说,用户指定的 lag 决定了它在计算过程中要考虑多少先前的预测和错误。
使用移动平均模型进行训练和预测时使用以下函数。请注意,这些函数需要具有一致时间步长的数据集。
MOVING_AVERAGE
:训练移动平均模型
PREDICT_MOVING_AVERAGE
:将模型应用于数据集以进行预测
要标准化时间步长不一致的数据集,请参阅空白填充和插值 (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)
使用
MOVING_AVERAGE
从 temp_data
数据集创建移动平均模型 MA_temperature
。在本例中,模型以 p
=3 的滞后进行训练,每次估计都要考虑 3 个以前预测的错误:
=> SELECT MOVING_AVERAGE('MA_temperature', 'temp_data', 'temperature', 'time' USING PARAMETERS q=3, missing='linear_interpolation', regularization='none', lambda=1);
MOVING_AVERAGE
---------------------------------------------------------
Finished. 3650 elements accepted, 0 elements rejected.
(1 row)
您可以使用
GET_MODEL_SUMMARY
查看模型的摘要:
=> SELECT GET_MODEL_SUMMARY(USING PARAMETERS model_name='MA_temperature');
GET_MODEL_SUMMARY
-------------------
============
coefficients
============
parameter| value
---------+--------
phi_(t-0)|-0.90051
phi_(t-1)|-0.10621
phi_(t-2)| 0.07173
===============
timeseries_name
===============
temperature
==============
timestamp_name
==============
time
===========
call_string
===========
moving_average('public.MA_temperature', 'temp_data', 'temperature', 'time'
USING PARAMETERS q=3, missing=linear_interpolation, regularization='none', lambda=1);
===============
Additional Info
===============
Name | Value
------------------+--------
mean |11.17780
lag_order | 3
lambda | 1.00000
rejected_row_count| 0
accepted_row_count| 3650
(1 row)
使用
PREDICT_MOVING_AVERAGE
预测未来温度。以下查询在数据集末尾start
预测,并返回 10 个预测。
=> SELECT PREDICT_MOVING_AVERAGE(Temperature USING PARAMETERS model_name='MA_temperature', npredictions=10) OVER(ORDER BY time) FROM temp_data;
prediction
------------------
13.1324365636272
12.8071086272833
12.7218966671721
12.6011086656032
12.506624729879
12.4148247026733
12.3307873804812
12.2521385975133
12.1789741993396
12.1107640076638
(10 rows)