Перейти к содержанию

522 гр., по выбору. Статистический анализ временных рядов

Место и время проведения: пятница
Преподаватель: Голяндина Нина Эдуардовна


“Those who have the knowledge, don’t predict. Those who predict, don’t have knowledge.” – Lao Tzu, 6th Century BC Chinese philosopher
Вот спрашивают - а с чего это китайская цитата на английском. А нет ответа.


Полное содержание семинара содержится в теоретических вопросах прошлых лет здесь 2020: Но у нас будет сокращенный вариант. Вот он.


Задания нужно делать заранее в R (RMarkdown); приходите на занятия с ноутбуком. Выступления на занятиях по сделанным заданиям являются необходимым условием для зачета. Нужно показывать численные результаты, код и объяснять теорию. Мы будем обсуждать сделанное.
Обращаю внимание, что каждый раз нужно перерабатывать свою работу на основе (1) обсуждения показов заданий на предыдущих парах и (2) на новом материале. Для структурирования работы можно использовать приведенные выше теоретические вопросы, так как работа должна поддерживать с практической точки зрения почти все из них.

Кроме этого, сохраняйте все задания, исправляйте по результатам выступлений. Они понадобятся для зачета. (В зачет входит и теоретический опрос.)

Полезный ресурс по временным рядам в R - http://r-statistics.co/Time-Series-Analysis-With-R.html


К зачету

TBA

Семи/Вебинары

27.05. Последнее задание. (1) Сравните прогнозы по SSA и по автоматическим версиям ARIMA и ETS (постройте доверительные интервалы и посчитайте MSE прогноза).
(2) Возьмите многоканальный временной ряд (можете сгенерировать, если не найти) и постройте разложение; при этом порассуждайте, ожидаете ли вы, что MSSA даст точность лучше, чем SSA.
(3) Возьмите изображение, добавьте к нему либо белый шум, либо текстуру (типа суммы синусов) и посмотрите, сможет ли (Shaped) 2D-SSA выделить изображение. Примеры MSSA и 2D-SSA см. https://ssa-with-r-book.github.io/04-chapter4.html и https://ssa-with-r-book.github.io/05-chapter5.html

20.05. Задание. Определение модели авторегрессии для модельных данных модельные ряды (возьмите пару примеров), построение прогноза с доверительными интервалами. Для определения модели используйте ACF, PACF, для оценивания параметров arima или лучше Arima (пакет forecast https://otexts.com/fpp2/arima-r.html, там же прогноз), потом еще автоматический подбор модели по AIC auto.arima. Тест на единичный корень называется Dickey–Fuller test for unit roots). Если ряд надо дифференцировать, то перед acf и pacf используйте diff.

13.05. Из нового: (1) заполнение пропусков двумя способами (gapfill и igapfill) - сами сделайте искусственные пропуски, а также метод Cadzow. Примеры ищите здесь https://ssa-with-r-book.github.io/03-chapter3.html
(2) Вот здесь находится код для нахождения оптимальных параметров прогноза в SSA. Можете посмотреть, что он вам посоветует https://ssa-with-r-book.github.io/03-chapter3.html#fragment-3513-functions-for-the-search-of-optimal-parameters (след.пример - его применение).
(3) Сделайте разладку и посмотрите, что получится на матрице неоднородности и на функции обнаружения разладки. Пример: https://ssa-with-r-book.github.io/03-chapter3.html#fragment-3512-sunspots-subspace-tracking

06.05. Из нового: прогноз и доверительные интервалы - rforecast, vforecast, bforecast, forecast. См. https://ssa-with-r-book.github.io/03-chapter3.html про прогноз. Прогноз сочетается с методами улучшения разделимости. UPD. Считайте RMSE прогноза, смотрите, как выглядит долгосрочный прогноз и как это согласуется с сигнальными корнями.
Еще: SSA с проекциями. Пример с двойным центрированием: https://ssa-with-r-book.github.io/02-chapter2-part2.html#fragment-287-hotel-ssa-with-projection-linear-trend-detection

29.04 Из нового: добавить улучшение разделимости внутри сигнальных компонент с помощью iossa и eossa. Посмотреть, как работает Toeplitz SSA.
22.04 Из нового: (1) добавить к предыдущему использованию SSA автоматический выбор трендовых компонент на основе кластеризации w-correlation matrix и на основе периодограмм и (2) улучшить (сильную) разделимость внутри сигнальных компонент с помощью DerivSSA (частный случай fossa).
В помощь:
https:ssa-with-r-book.github.io/01-chapter2-part1.html#fragment-271-white-dwarf-auto-grouping-by-clustering
https:
ssa-with-r-book.github.io/01-chapter2-part1.html#fragment-272-production-auto-grouping-by-frequency-analysis
https://ssa-with-r-book.github.io/02-chapter2-part2.html#fragment-289-paynsa-automatically-identified-trend

https://ssa-with-r-book.github.io/02-chapter2-part2.html#fragments-284-motorvehicle-decomposition-by-derivssa-and-285-motorvehicle-finding-noise-envelope (первая часть про derivssa). Здесь нужно взять смешавшиеся сигнальные компоненты и подать на вход в fossa. На выходе эти компоненты должны уже лучше разделиться (остальные компоненты при этом не меняются).

15.04 Что-то мало кто прислал задания по выделению тренда и по разложению тремя способами, жду. По SSA - для модельных данных с шумом (возьмите какой-нибудь нетривиальный пример) и потом для реальных данных постройте аналитическую формулу для сигнала. Вам в помощь: https://ssa-with-r-book.github.io/03-chapter3.html#fragment-3511-fort-estimation-of-parametric-real-valued-form

08.04 Задание - добавить разложение ряда на тренд, периодику и шум тремя способами, seasonal decomposition, STL, SSA. Что-то мало кто прислал задания по выделению тренда, жду. (не забудьте про задание, которое было на лекциях по SSA - взять модельный ряд без шума, получить с помощью Rssa минимальную ЛРФ, по корням полинома найти нелинейно входящие параметры и потом с помощью решения системы уравнений найти коэффициенты, входящие линейно. Проверьте, что ряд действительно вычисляется по такой формуле.)

01.04 Рассказы про тренды. Seasonal decomposition.

25.03 Рассказы про тренды. Рассказала про метод loess. Всем нужно добавить его как доп. метод выделения тренда и прислать свои работы (с исправлениями) до 01.04.

15.03 (вместо 18.03) Выделение тренда с помощью параметрической регрессии, с помощью фильтра HP.
Задание на следующий раз 25.03 - выделить тренд разными методами и сравнить (фильтры типа скользящего среднего, фильтр HP, параметрическая регрессия, метод SSA).

11.03. Показ заданий. Рассказала про аддитивную и мультипликативную модели, про препроцессинг (логарифмирование, переход к разностям).

04.03. Линейные фильтры. Фильтр скользящего среднего.
Задание на 11.03: (1) разобраться с фильтрами, их АЧХ, и применить к модельным и реальным данным (для реальных данных попробовать выделить тренд скользящим средним). В том числе, построить периодограмму до применения фильтра и после. Код для АЧХ см. http://statmod.ru/wiki/study:spring2019:ts_pract за 1 марта (поменяйте неправильные символы типа стрелочек и кавычек на текстовые варианты). (2) сгенерировать белый и красный шумы и с помощью скользящего среднего, примененного к периодограмме, оценить спектральную плотность.
Вот pdf.

25.02.2022 Все показывают домашние задания. Рассказала про периодограммы шума и оценку спектральной плотности.

18.02.2022 Автоковар.функция. Периодограмма тренда и периодик. Д.з. на 25.02 - найти временной ряд, построить его периодограмму и объяснить результат. Нужно найти реальный ряд с трендом и периодичностью, а также сгенерировать ряды, на которых проверить то, что обсуждали на занятии, в частности, растекание периодограммы.

Разные варианты формирования временного ряда и построения периодограммы:
x <- 0.1*c(1:100,11:110)+rnorm(200) ser <- ts(x, frequency = 4, start = c(1959, 2)) # Данные по кварталам, с 2nd Quarter of 1959 plot(ser, type = “l”) #ser #ts(ser) #убирает атрибуты, даты, frequency и пр. spectrum(ser, log=‘no’, method=‘pgram’, fast=F, taper = 0) spectrum(ts(ser), log=‘no’, method=‘pgram’, fast=F, taper = 0) spec.pgram(ts(ser), log=‘no’, detrend = TRUE, taper = 0) spectrum(ser, method=‘pgram’, fast=F, taper = 0)

Чтобы было оглавление, добавьте в начало Rmd
output: html_document: toc: yes toc_float: yes

11.02.2022 Общее про временные ряды, их типы.

Литература и ссылки

  1. Ссылка на R-пакет Rssa, версия R будет нужна не меньше 3.2
  2. Статьи-tutorial для Rssa:
    • Nina Golyandina, Anton Korobeynikov, Anatoly Zhigljavsky “Singular spectrum analysis with R”, 2018. Сайт с примерами в R из книги http://ssa-with-r-book.github.io
    • Базовый метод (примеры частично не работают с новой версией пакета v1): N.Golyandina, A.Korobeynikov. Basic Singular Spectrum Analysis and Forecasting with R. Computational Statistics and Data Analysis. Volume 71, March 2014, pp.934-954. Версия в Arxiv
  3. Многомерные обобщения метода и общая схема: N.Golyandina, A.Korobeynikov, A.Shlemov, K.Usevich. Multivariate and 2D Extensions of Singular Spectrum Analysis with the Rssa Package. Journal of Statistical Software, v.67, Issue 2, 2015, pp.1-78. Открытый доступ к статье с кодом примеров: J.Stat.Soft.
  4. (не будет использоваться в курсе) Программа CaterpillarSSA (Windows). Для получения рег.ключа к студенческой версии мне нужно прислать запрос.