Прогнозирование временных рядов методом SSA (пример)
Материал из MachineLearning.
(→Описание алгоритма) |
(→Описание алгоритма) |
||
Строка 42: | Строка 42: | ||
<tex>$$w = \left ( \begin{array}{cccc} v_{\sigma}^{(i_1)}&v_{\sigma}^{(i_2)}&\ldots&v_{\sigma}^{(i_r)}\\ v_{2\sigma}^{(i_1)}&v_{2\sigma}^{(i_2)}&\ldots&v_{2\sigma}^{(i_r)}\\ \vdots& \vdots &\ddots & \vdots\\ v_{\tau}^{(i_1)}&v_{\tau}^{(i_2)}&\ldots&v_{\tau}^{(i_r)}\end{array} \right ) $$</tex> | <tex>$$w = \left ( \begin{array}{cccc} v_{\sigma}^{(i_1)}&v_{\sigma}^{(i_2)}&\ldots&v_{\sigma}^{(i_r)}\\ v_{2\sigma}^{(i_1)}&v_{2\sigma}^{(i_2)}&\ldots&v_{2\sigma}^{(i_r)}\\ \vdots& \vdots &\ddots & \vdots\\ v_{\tau}^{(i_1)}&v_{\tau}^{(i_2)}&\ldots&v_{\tau}^{(i_r)}\end{array} \right ) $$</tex> | ||
+ | |||
+ | и | ||
+ | |||
+ | <tex>$$ V_* = \left ( \begin{array}{cccc} v_1^{(i_1)}&v_1^{(i_2)}&\ldots&v_1^{(i_r)}\\ \vdots& \vdots &\ddots & \vdots\\ v_{\sigma - 1}^{(i_1)}&v_{\sigma - 1}^{(i_2)}&\ldots&v_{\sigma - 1}^{(i_r)}\\ v_{\sigma + 1}^{(i_1)}&v_{\sigma + 1}^{(i_2)}&\ldots&v_{\sigma + 1}^{(i_r)}\\ \vdots& \vdots &\ddots & \vdots\\ v_{2\sigma - 1}^{(i_1)}&v_{2\sigma - 1}^{(i_2)}&\ldots&v_{2\sigma - 1}^{(i_r)}\\ \vdots& \vdots &\ddots & \vdots\\ v_{\tau - 1}^{(i_1)}&v_{\tau - 1}^{(i_2)}&\ldots&v_{\tau - 1}^{(i_r)}\end{array} \right ) $$</tex> |
Версия 16:40, 5 мая 2010
SSA (Singular Spectrum Analysis, "Гусеница") - метод анализа и прогноза временных рядов. Базовый вариант метода состоит в преобразовании одномерного ряда в многомерный с помощью однопараметрической сдвиговой процедуры (отсюда и название "Гусеница"), исследовании полученной многомерной траектории с помощью анализа главных компонент (сингулярного разложения) и восстановлении (аппроксимации) ряда по выбранным главным компонентам. Таким образом, результатом применения метода является разложение временного ряда на простые компоненты: медленные тренды, сезонные и другие периодические или колебательные составляющие, а также шумовые компоненты. Полученное разложение может служить основой прогнозирования как самого ряда, так и его отдельных составляющих. "Гусеница" допускает естественное обобщение на многомерные временные ряды, а также на случай анализа изображений. В данной статье рассмотрим вариант алгоритма, предназначенный для анализа многомерного временного ряда.
Постановка задачи
Наблюдается система функций дискретного аргумента {, где k = 1, ..., s}. Параметр s, таким образом, имеет смысл размерности многомерной числовой последовательности, а N - количество элементов в последовательности. Требуется разложить ряд в сумму компонент (используя метод главных компонент, см. описание алгоритма), интерпретировать каждую компоненту, и построить продолжение ряда по выбранным компонентам.
Описание алгоритма
Выберем n такое, что - время жизни многомерной гусеницы. Пусть - длина гусеницы. Построим последовательность из n векторов в , , следующего вида:
где . Обозначим
Будем называть нецентрированной матрицей наблюдений, порождённой гусеницей со временем жизни n. Проводимый в дальнейшем анализ главных компонент может проводиться как по центрированной, так и по нецентрированной выборкам. Для упрощения выкладок рассмотрим простейший нецентрированный вариант.
Рассмотрим ковариационную матрицу полученной многомерной выборки
Выполним её svd-разложение:
где - диагональная матрица собственных чисел, - ортогональная матрица собственных векторов.
Далее рассмотрим систему главных компонент:
После проведения анализа главных компонент обычно предполагается проведение операции восстановления исходной матрицы наблюдений по некоторому поднабору главных компонент, т. е. для и вычисляется матрица . Далее восстанавливаются исходные последовательности:
Определим
и