522 гр., по выбору. Статистический анализ временных рядов
Место и время проведения: вторник, пара 2
Преподаватель: Голяндина Нина Эдуардовна
“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
Семи/Вебинары¶
23.05.2023 Forecasting: Principles and Practice - ссылка на книгу, где можно почитать про ETS (и про многое другое). Последнее домашнее задание на 30.05. (1) Добавить к сравнению прогнозов по MSE прогноз по ETS (2) сгенерировать подходящие данные и продемострировать на них обнаружение разладки, многомерный SSA (что лучше, одномерный или многомерный), а также взять картинку и провести 2D-SSA разложение.
16.05.2023 Д.з. на 23.05. Построение прогноза по Seasonal ARIMA для реальных данных, сравнение с SSA, в SSA строить доверительные бутстреп интервалы. По SSA дополнение - сделать в ряде искусственные дырки и заполнить их gapfill и igapfill. Еще - автоматическая идентификация тренда.
10.05.2023 Д.з. на 16.05. Определение модели авторегрессии для модельных данных модельные ряды (возьмите пару примеров, варианты (1,5), (2,6), (3,7), (4,8), (9,10), (12,13), (10,15), (11,14)), построение прогноза с доверительными интервалами. Для определения модели используйте ACF, PACF, для оценивания параметров arima или лучше Arima (пакет forecast https://otexts.com/fpp2/arima-r.html, там же прогноз), потом еще автоматический подбор модели по AIC auto.arima. (Тест на единичный корень называется Dickey–Fuller test for unit roots.) Если ряд надо дифференцировать, то перед acf и pacf используйте diff.
02.05.2023 Д.з. на 10.05. Добавить бутстреп-доверительные интервалы к прогнозу по SSA.
25.04.2023 - Д.з. на 02.05 (1) к д.з. на 25.04 добавить нахождение явного вида сигнала вашего реального ряда; (2) отрезать от своего реального ряда 1 или 2 периода и спрогнозировать их с помощью рекуррентного и векторного прогноза (rforecast и vforecast), сравнить. Объяснить поведение долгосрочного прогноза на основе корней прогнозирующей ЛРФ. Для выбора компонент для прогноза провести ssa-анализ укороченного ряда.
18.04.2023 - Рассказывала про связь связь линейного рекуррентного соотношения и сигнального подпространства. Методы оценивания подпространства, включая алгоритм ESPRIT. Д.з. на 25.04: (1) взять ряд конечного ранга без шума и без кратных корней х.п., оценить его ранг r с большим L. Потом взять L=r+1, получить минимальную ЛРФ из ортогонального дополнения к подпространству сигнала (U_{r+1}), на основе ее корней оценить нелинейно входящие параметры временного ряда. Решив систему уравнений для первых r элементов ряда найти линейно входящие параметры. Полученную формулу сигнала сравнить с исходным сигналом. (2) то же самое, только взять сигнал с кратными корнями и провести кластеризацию близких корней х.п. ЛРФ. (3) Взять сигналы из (1) и (2), добавить шум и найти примерно формулу сигнала. Разница с предыдущим в том, что L большое, сигнальные корни оцениваются приближенно с помощью ESPRIT (parestimate), линейно входящие параметры оцениваются по всем элементам ряда с помощью lm.
11.04.2023 - Рассказывала про связь связь линейного рекуррентного соотношения и явного вида временного ряда.
04.04.2023 - Дедлайн для отправки всех заданий, можно без выполнения заданий на 11 апреля, если вы сделаете эти задания к 11-му - воскресенье 9 апреля (при нарушении сроков будут штрафы). Задание на 11 апреля: добавить iossa для улучшения разложений в заданиях ранее (iossa можно сочетать с fossa, применяя последовательно), попробовать применить Toeplitz SSA на моделированных данных, SSA with projections (вариант с двойным центрированием для выделения линейного тренда) для ваших данных и для модельных с линейным трендом (в сравнении с Basic SSA).
28.03.2023 - Задание на 04 апреля: добавить разложение ряда методами SSA (можно использовать fossa), classical seasonal decomposition, STL. В каждом случае рисовать тренд на фоне ряда и проверять остаток на белый шум (периодограмма и ACF).
21.03.2023 - Задание на 28 марта: (1) найти тренд методом loess и с помощью HP-фильтра и добавить результаты к графику с прошлого раза, где на одном графике изображены тренды, которые выделены скользящим средним, SSA и полиномиальной регрессией. (2) Взять косинус с косинусоидально модулированной амплитудой, с помощью SSA найти эту огибающую и наложить ее на исходный ряд. То же самое сделать для шума с меняющейся дисперсией, только на исходный ряд накладывать предсказательный интервал (+- 1.96 SD). Напомню, что это делается с помощью нахождения тренда у квадрата исходного ряда.
14.03.2023 - Задание на 21 марта: нарисовать на одном графике тренды, которые выделены скользящим средним, SSA и полиномиальной регрессией (посмотрите на полиномы разной степени, функция poly генерирует признаки для полиномиальной регрессии заданной степени)
07.03.2023 - про фильтры, АЧХ, скользящее среднее. Задание на 14 марта: (1) разобраться с фильтрами, их АЧХ, и применить к модельным и реальным данным (для реальных данных попробовать выделить тренд скользящим средним). В том числе, построить периодограмму до применения фильтра и после. Код для АЧХ см. http://statmod.ru/wiki/study:spring2019:ts_pract за 1 марта (поменяйте неправильные символы типа стрелочек и кавычек на текстовые варианты). (2) сгенерировать белый и красный шумы и с помощью скользящего среднего, примененного к периодограмме, оценить спектральную плотность.
Вторая часть задания - по SSA. Попробуйте выделить тренд с помощью SSA (R-пакет Rssa).
28.02.2023 - все показывают задания по периодограммам.
21.02.2023 - периодограммы. Задание на 28.02: 1) на примере синуса показать эффект растекания в периодограммах (taper=0), 2) сгенерировать белый и красный шум и построить их периодограммы. (в 1) и 2) показать, как меняются периодограммы при увеличении длиня ряда; научиться строить приодограммы без лог-шкалы по оси Y), 3) найти временной ряд, состоящий их тренда, периодичности и шума, построить периодограмму и объяснить ее.
14.02.2023 - о типах рядов и их структуре
Литература и ссылки¶
- Ссылка на R-пакет Rssa, версия R будет нужна не меньше 3.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
- Многомерные обобщения метода и общая схема: 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.
- (не будет использоваться в курсе) Программа CaterpillarSSA (Windows). Для получения рег.ключа к студенческой версии мне нужно прислать запрос.