Прогнозирование функциями дискретного аргумента (пример)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Строка 17: Строка 17:
Пусть <tex>X=\{x_1, ... x_T\}</tex> — временной ряд.
Пусть <tex>X=\{x_1, ... x_T\}</tex> — временной ряд.
-
 
-
 
Экспоненциальное сглаживание ряда осуществляется по рекуррентной формуле:
Экспоненциальное сглаживание ряда осуществляется по рекуррентной формуле:
-
 
<tex>
<tex>
S_t=\alpha x_t + \left( 1-\alpha \right) S_{t-1},\ \alpha \in (0,1).
S_t=\alpha x_t + \left( 1-\alpha \right) S_{t-1},\ \alpha \in (0,1).
-
 
</tex>
</tex>
-
 
Чем меньше <tex>\alpha</tex>, тем в большей степени фильтруются, подавляются колебания исходного ряда и шума.
Чем меньше <tex>\alpha</tex>, тем в большей степени фильтруются, подавляются колебания исходного ряда и шума.
-
 
-
 
Если последовательно использовать рекуррентное это соотношение, то экспоненциальную среднюю <tex>S_t</tex> можно выразить через значения временного ряда <tex>X</tex>.
Если последовательно использовать рекуррентное это соотношение, то экспоненциальную среднюю <tex>S_t</tex> можно выразить через значения временного ряда <tex>X</tex>.
-
 
-
 
<tex>
<tex>
-
 
S_t =\alpha x_t + (1-\alpha)\left( \alpha x_{t-1} + (1-\alpha)S_{t-2}\right)= \cdot\cdot\cdot = \alpha \sum_{i=0}^{t-1} (1-\alpha)^i x_{t-i} + (1-\alpha)^t S_0.
S_t =\alpha x_t + (1-\alpha)\left( \alpha x_{t-1} + (1-\alpha)S_{t-2}\right)= \cdot\cdot\cdot = \alpha \sum_{i=0}^{t-1} (1-\alpha)^i x_{t-i} + (1-\alpha)^t S_0.
-
 
</tex>
</tex>
-
 
-
 
После появления работ Р. Брауна экспоненциальное сглаживание часто используется для решения задачи краткосрочного прогнозирования временных рядов следующим способом.
После появления работ Р. Брауна экспоненциальное сглаживание часто используется для решения задачи краткосрочного прогнозирования временных рядов следующим способом.
-
 
-
 
Пусть задан временной ряд: <tex>y_i \cdot\cdot\cdot y_t,\; y_i \in R</tex>.
Пусть задан временной ряд: <tex>y_i \cdot\cdot\cdot y_t,\; y_i \in R</tex>.
-
 
-
 
Необходимо решить задачу прогнозирования временного ряда, т.е. найти
Необходимо решить задачу прогнозирования временного ряда, т.е. найти
-
 
-
 
<tex>\hat{y}_{t+d}=f_{t,d}\left(y_{1} ... y_{t} \right),\; d \in \{1,2, ... D\},\; D</tex> — горизонт прогнозирования, необходимо, чтобы
<tex>\hat{y}_{t+d}=f_{t,d}\left(y_{1} ... y_{t} \right),\; d \in \{1,2, ... D\},\; D</tex> — горизонт прогнозирования, необходимо, чтобы
-
 
-
 
<tex>Q_T=\sum_{i=1}^T \left( y_i-\hat{y}_i \right) \rightarrow min</tex>
<tex>Q_T=\sum_{i=1}^T \left( y_i-\hat{y}_i \right) \rightarrow min</tex>
-
 
-
 
Предположим, что D - невелико (краткосрочный прогноз), то для решения такой задачи используют модель Брауна.
Предположим, что D - невелико (краткосрочный прогноз), то для решения такой задачи используют модель Брауна.
-
 
-
 
<tex>\hat{y}_{t+d}=\alpha y_t + ( 1-\alpha ) \hat{y}_t,\; \hat{y}_0 = y_0,\; \alpha \in (0,1)</tex>.
<tex>\hat{y}_{t+d}=\alpha y_t + ( 1-\alpha ) \hat{y}_t,\; \hat{y}_0 = y_0,\; \alpha \in (0,1)</tex>.
-
 
-
 
Если рассматривать прогноз на 1 шаг вперед, то <tex>\left(y_t - \hat{y}_t\right)</tex> — погрешность этого прогноза, а новый прогноз <tex>\hat{y}_{t+1}</tex> получается в результате корректировки предыдущего прогноза с учетом его ошибки — суть адаптации.
Если рассматривать прогноз на 1 шаг вперед, то <tex>\left(y_t - \hat{y}_t\right)</tex> — погрешность этого прогноза, а новый прогноз <tex>\hat{y}_{t+1}</tex> получается в результате корректировки предыдущего прогноза с учетом его ошибки — суть адаптации.
-
 
-
 
При краткосрочном прогнозировании желательно как можно быстрее отразить новые изменения и в то же время как можно лучше "очистить" ряд от случайных колебаний.
При краткосрочном прогнозировании желательно как можно быстрее отразить новые изменения и в то же время как можно лучше "очистить" ряд от случайных колебаний.
-
 
Т.о. следует увеличивать вес более свежих наблюдений: <tex> \alpha \rightarrow 1,\; \hat{y}_{t+d} \rightarrow y_t</tex>.
Т.о. следует увеличивать вес более свежих наблюдений: <tex> \alpha \rightarrow 1,\; \hat{y}_{t+d} \rightarrow y_t</tex>.
-
 
-
 
-
 
С другой стороны, для сглаживания случайных отклонений, <tex>\alpha</tex> нужно уменьшить: <tex> \alpha \rightarrow 0,\; \hat{y}_{t+1} \rightarrow \bar{y}_t</tex>.
С другой стороны, для сглаживания случайных отклонений, <tex>\alpha</tex> нужно уменьшить: <tex> \alpha \rightarrow 0,\; \hat{y}_{t+1} \rightarrow \bar{y}_t</tex>.
-
 
-
 
-
 
Т.о. эти два требования находятся в противоречии. Мы будем брать <tex>\alpha</tex> из интервала (0,0.5).
Т.о. эти два требования находятся в противоречии. Мы будем брать <tex>\alpha</tex> из интервала (0,0.5).

Версия 16:49, 3 сентября 2011

Содержание

Введение

В статье представлена попытка прогнозирования таких специфических временных рядов, как монофонические мелодии. Были осуществлены три различных подхода: экспоненциальное сглаживание, локальное прогнозирование и поиск постоянных закономерностей.

Предлагается опробовать первый метод в традиционной его форме, чтобы ответить на вопрос, пригоден ли он для решения данной задачи. Затем предлагается во втором методе проверить работоспособность коэффициента корреляции Пирсона в качестве меры сходства. Третий будет использоваться в упрощенном варианте.

Постановка задачи

Мелодия есть функция m: \ T \rightarrow X\times Y, где T = 0, 1, 2, ... — позиция ноты, X = 0, 1, 2, ... — конечное множество нот, занумерованных в порядке увеличения тона, Y — длительность ноты, в секундах. Таким образом, будем работать с пучком из двух временных рядов.

Предполагается, что мелодия дана законченная, но без нескольких финальных нот(в данной статье одной). Необходимо их предсказать.

Пути решения задачи

Экспоненциальное сглаживание

Пусть X=\{x_1, ... x_T\} — временной ряд.

Экспоненциальное сглаживание ряда осуществляется по рекуррентной формуле: 
S_t=\alpha x_t + \left( 1-\alpha \right) S_{t-1},\ \alpha \in (0,1).

Чем меньше \alpha, тем в большей степени фильтруются, подавляются колебания исходного ряда и шума.

Если последовательно использовать рекуррентное это соотношение, то экспоненциальную среднюю S_t можно выразить через значения временного ряда X.


S_t =\alpha x_t + (1-\alpha)\left( \alpha x_{t-1} + (1-\alpha)S_{t-2}\right)= \cdot\cdot\cdot = \alpha \sum_{i=0}^{t-1} (1-\alpha)^i x_{t-i} + (1-\alpha)^t S_0.

После появления работ Р. Брауна экспоненциальное сглаживание часто используется для решения задачи краткосрочного прогнозирования временных рядов следующим способом.

Пусть задан временной ряд: y_i \cdot\cdot\cdot y_t,\; y_i \in R.

Необходимо решить задачу прогнозирования временного ряда, т.е. найти

\hat{y}_{t+d}=f_{t,d}\left(y_{1} ... y_{t} \right),\; d \in \{1,2, ... D\},\; D — горизонт прогнозирования, необходимо, чтобы

Q_T=\sum_{i=1}^T \left( y_i-\hat{y}_i \right) \rightarrow min

Предположим, что D - невелико (краткосрочный прогноз), то для решения такой задачи используют модель Брауна.

\hat{y}_{t+d}=\alpha y_t + ( 1-\alpha ) \hat{y}_t,\; \hat{y}_0 = y_0,\; \alpha \in (0,1).

Если рассматривать прогноз на 1 шаг вперед, то \left(y_t - \hat{y}_t\right) — погрешность этого прогноза, а новый прогноз \hat{y}_{t+1} получается в результате корректировки предыдущего прогноза с учетом его ошибки — суть адаптации.

При краткосрочном прогнозировании желательно как можно быстрее отразить новые изменения и в то же время как можно лучше "очистить" ряд от случайных колебаний. Т.о. следует увеличивать вес более свежих наблюдений:  \alpha \rightarrow 1,\; \hat{y}_{t+d} \rightarrow y_t. С другой стороны, для сглаживания случайных отклонений, \alpha нужно уменьшить:  \alpha \rightarrow 0,\; \hat{y}_{t+1} \rightarrow \bar{y}_t. Т.о. эти два требования находятся в противоречии. Мы будем брать \alpha из интервала (0,0.5).