На этой странице

Анализ временных рядов

Модуль Анализ временных рядов помогает разобраться в столбце чисел, упорядоченных по времени: выделить циклы, измерить тренд, построить модель для прогноза и датировать точки разрыва. В нём пять режимов работы (разведочный анализ, сглаживание, ARIMA / SARIMA, прогнозирование, спектральный анализ / точки разрыва) с общим выбором переменных и общим набором преобразований.

Чем временной ряд отличается от обычных данных? Его наблюдения не независимы: каждое значение несёт сведения о соседних, и именно эту зависимость моделируют все методы модуля, тогда как обычные критерии исходят из того, что её нет. Подробнее — в разделах об автокорреляции и о временном ряде.

  1. Выберите переменную времени и один или несколько рядов
  2. При необходимости задайте группирующую переменную или замените своей автоматически определённую частоту
  3. Нажмите Проверить данные и получите предварительный отчёт ещё до подгонки какой-либо модели
  4. Выберите метод анализа, включите нужные преобразования и задайте параметры метода
  5. Нажмите Рассчитать

Роли переменных

В левой колонке выбираются переменные (переменная времени, список рядов и два необязательных раскрывающихся блока), в правой — метод, набор преобразований и параметры метода. Ниже элементы описаны в порядке левой колонки.

  • Переменная времени — столбец, задающий порядок наблюдений, выбрать его обязательно. Шкала определяется один раз по всему столбцу: если хотя бы одно значение распознаётся только как дата (2024-03-15, 2024-03-15 14:30:00, всё, что понимает Date.parse в JavaScript), столбец считается датой, иначе — числовым индексом (1, 2, 3, … или любой монотонный числовой столбец). Затем каждая строка разбирается только по этой шкале, поэтому отдельное значение 1997 в столбце дат ISO — ошибка разбора, а не год. Строка с нераспознанным временем отбрасывается и учитывается в показателе Отброшенные строки. Если распознанных строк меньше трёх, расчёт останавливается с уведомлением. Перед анализом строки сортируются по времени, так что файл не обязательно упорядочивать заранее. Даты без времени суток привязываются к локальной полуночи, поэтому оси графиков и таблицы результатов показывают один и тот же календарный день в любом часовом поясе. Как только столбец выбран, под полем появляется автоматически определённая частота, а если столбец не распознаётся ни как число, ни как дата, там появляется сообщение об этом.
    • Выберите переменную времени — подсказка в пустом поле. Пока столбец не выбран, расчёт не запускается.
  • Ряды — одна или несколько числовых переменных из списка, выбор меняют кнопки Снять все отметки и Инвертировать выбор. Каждый ряд анализируется отдельно, результаты выводятся на карточке друг под другом, а графики разбиты на панели по рядам, если в параметрах разведочного анализа не включено наложение. При нажатии Рассчитать нечисловая переменная отклоняется с уведомлением: сначала перекодируйте её в модуле преобразования данных.
  • Группирующая переменная — необязательная категориальная переменная. Если она задана, каждый метод выполняется отдельно для каждой группы (свои графики, критерии, подгонка, прогноз или поиск разрывов), и результаты группы собраны в разделе Группа: {name}. Строка с пустым значением группы отбрасывается вместе со строками с нераспознанным временем, а счётчик превращается в Отброшенные строки (нераспознанное время или пропущенная группа), так что обе причины учтены одним числом. Диагностика оси времени (шаг, пропуски на оси, дубликаты) считается внутри каждой группы, а не по общей шкале. Сезонный же период для всего расчёта один: если шаги групп дают разные периоды, каждая карточка результатов начинается с предупреждения, где перечислены найденные периоды и использованный. Если группы несопоставимы, анализируйте отдельно группы с одинаковым шагом.
    • Нет — по умолчанию: каждый ряд — один столбец, который анализируется по всем строкам.
    • Группа: {name} — заголовок над результатами одной группы, где {name} — значение группирующей переменной. Все таблицы, графики и примечания под ним вычислены только по строкам этой группы.
  • Переопределение частоты — сезонный период, заданный вручную: целое число наблюдений в одном цикле (дробное число округляется, значение меньше 1 равносильно пустому полю). Оставьте поле пустым, чтобы использовать автоматически определённую частоту. Что означает это число (12 для месячных данных с годовым циклом, 7 для суточных с недельным), объяснено в разделе о сезонном периоде. Его используют все методы, моделирующие сезонность, а при значении 1 отключаются сезонная часть SARIMA, метод Холта — Винтерса, сезонный наивный прогноз и STL + ETS. Показатель Обнаруженный сезонный период в предварительной проверке даёт независимую оценку по самому ряду, а его кнопка Применить заполняет это поле.

Автоопределение частоты

Если переменная времени — дата или дата со временем, сезонный период по умолчанию выбирается по медианному интервалу между соседними наблюдениями. Интервал короче примерно семнадцати часов считается внутрисуточным: циклом тогда служат сами сутки, а период равен числу наблюдений, умещающихся в сутки. Более длинный интервал приводится к ближайшему календарному шагу, причём близость оценивается по отношению интервала к шагу, а не по их разности, поэтому месяцы от 28 до 31 дня одинаково считаются месячным шагом:

Медианный интервал Предлагаемая частота Цикл
Короче суток число наблюдений в сутки (24 при часовом шаге, 3 при восьмичасовом, …) сутки
Сутки 7 неделя
Неделя 52 год
Месяц 12 год
Квартал 4 год
Год 1 не предполагается
Не определяется 1 не предполагается

Если переменная времени числовая, частота по умолчанию равна 1 и сезонность не предполагается: номер строки ничего не говорит о шаге. Если у вашего индекса есть естественный цикл, задайте частоту вручную (12 для искусственного месячного индекса). При группирующей переменной интервал измеряется внутри каждой группы, а медианные интервалы групп объединяются. Общая шкала, где наблюдения групп перемешаны, для этого не используется. Действующая частота сразу показывается под полем переменной времени (предложенная или заданная вручную, с предложенной в скобках) и управляет панелью: при значении 1 сезонная строка (P, D, Q) карточки ARIMA отключается и обнуляется, а вариант Холта — Винтерса доступен только при периоде от 2 до 24.

Предварительная проверка (Проверить данные)

Нажмите Проверить данные до подгонки моделей: запустится диагностика пригодности выбранных рядов, и появится карточка Пригодность данных временного ряда — по группам, если задана группирующая переменная, иначе по всему набору. Она выявляет то, что ломает подгонку (нерегулярный шаг, много пропущенных значений, сезонный период, которого в данных нет, ряд, слишком короткий для сезонной модели), ещё до того, как вы потратите время на модель. Карточка начинается строкой с числом наблюдений, рядов, частотой и группами, а если строки были отброшены или на оси есть дубликаты либо пропуски, то и предупреждением, что каждая строка всё равно моделируется как один период с равным шагом.

Ось времени. Таблица «показатель — значение» с характеристиками оси, на которой строится расчёт. Для всего набора в ней шесть строк ниже, а при группирующей переменной только частота и число отброшенных строк, остальное переносится в таблицу по группам.

  • Показатель — название строки. Этот столбец есть во всех таблицах «показатель — значение» модуля
  • Значение — значение строки. Янтарным цветом выделено то, на что стоит взглянуть: нерегулярная ось, неположительный ряд, найденные выбросы
  • Наблюдения — строки, у которых распознано время, а при группах — ещё и прошедшие фильтр группы
  • Используемая частота — сезонный период этого расчёта, заданный вручную или определённый автоматически
  • Регулярный шаг — Да, если на оси нет ни дубликатов меток времени, ни пропусков, иначе Нет
  • Число пропусков — число интервалов, которые более чем в 1.5 раза шире медианного интервала той же группы
  • Дубликаты меток времени — интервалы, в точности равные нулю, то есть две строки с одним и тем же временем
  • Отброшенные строки (нераспознанное время) — строки, исключённые в самом начале, потому что их время не удалось распознать на шкале столбца
  • Отброшенные строки (нераспознанное время или пропущенная группа) — тот же счётчик при группирующей переменной, куда входят и строки с пустым значением группы

Ось времени (по группам). Выводится вместо общих строк, если задана группирующая переменная: по строке на группу с показателями Наблюдения, Регулярный шаг, Число пропусков и Дубликаты меток времени, каждый из которых определён внутри группы.

  • Группа — значение группирующей переменной

Ряд: {name}. Отдельная таблица «показатель — значение» на каждый ряд (при группировке — на каждую пару группы и ряда), а под ней строка рекомендации.

  • Пропущенные значения — доля и число пустых или нечисловых ячеек в виде доля% (пропущено/всего)
  • Рекомендованное d (ndiffs) — сколько обычных разностей нужно для стационарности по forecast::ndiffs, от 0 до 2 (см. дифференцирование). Если непропущенных значений меньше восьми, в ячейке стоит –
  • Рекомендованное D (nsdiffs) — сколько сезонных разностей рекомендует forecast::nsdiffs, 0 или 1 (см. сезонное дифференцирование). Если частота равна 1 или в ряде меньше двух полных циклов, в ячейке стоит –
  • λ Бокса — Кокса (авто) — показатель степени, стабилизирующий дисперсию, оценённый методом Герреро: именно это значение использует преобразование Бокса — Кокса. Если λ оценить нельзя, в ячейке указана причина: Не вычислено — требуется ≥ 10 непропущенных значений, Неприменимо — ряд содержит неположительные значения, Не оценено — требуется больше двух сезонных периодов или Оценивание не удалось.
  • Обнаруженный сезонный период — период, который forecast::findfrequency находит по спектру самого ряда независимо от заданной частоты (1, если цикла нет). Если он отличается от действующей частоты и больше 1, под таблицей появляется вопрос, не моделировать ли ряд с этим периодом, а кнопка Применить записывает значение в поле Переопределение частоты.
  • Обнаружено выбросов — сколько точек отмечает forecast::tsoutliers при заданной частоте. Что считается выбросом, объяснено в разделе о выбросе во временном ряде
  • Позиции выбросов — метки времени этих точек: первые двенадцать, затем … и ещё n, а при шаге короче суток — со временем суток

После каждой таблицы идёт строка рекомендации: Сильный сезонный паттерн — попробуйте SARIMA или Холта — Винтерса., если рекомендована сезонная разность; Нестационарный — попробуйте ARIMA с d ≥ 1., если только обычная; Стационарный — попробуйте экспоненциальное сглаживание или стационарную ARMA., если ни одной; Недостаточно пригодных наблюдений — ни один тест стационарности выполнить не удалось., если ряд слишком короток для проверки. Если непропущенных наблюдений меньше 30, добавляется Ряд короткий (< 30 наблюдений) — предпочитайте простые базовые прогнозы и остерегайтесь переподгонки., поскольку SARIMA и Холт — Винтерс на коротком ряде — классическая ловушка избыточной параметризации. Если выбросы есть хотя бы в одном ряде, внизу карточки появляется вопрос с общим числом выбросов по всему расчёту, и его кнопка Применить включает Заменить выбросы для следующего запуска. Вопрос один на карточку, потому что набор преобразований — один переключатель на весь анализ.

Набор преобразований

Два необязательных преобразования перед моделированием, общие для сглаживания, ARIMA, прогнозирования и спектрального анализа. Разведочный анализ описательный и их не использует. Они выполняются в указанном порядке, начиная с замены выбросов, отдельно для каждого ряда и внутри каждой группы, а при оценке на отложенной выборке и перекрёстной проверке на карточке прогнозирования заново применяются к каждому обучающему отрезку. Дифференцирования здесь нет: порядок d задаётся на карточке ARIMA.

  • Заменить выбросы — forecast::tsclean отмечает точки, выделяющиеся на фоне робастной подгонки тренда и сезонности, и заменяет их интерполяцией, попутно заполняя пропущенные значения. Оба числа выводятся в строке набора преобразований, а на графиках сглаживания и ARIMA каждая заменённая точка отмечена символом Выброс заменён поверх наблюдаемых и подогнанных значений, так что видно, какие наблюдения модель получила изменёнными. Замена полезна, когда подгонку определяют отдельные всплески, а удалять строки не хочется. Если замена не удалась, ряд остаётся без изменений, и строка об этом сообщает.
  • Преобразование Бокса — Кокса — модель подгоняется к ряду после степенного преобразования, а кривая, прогнозы и меры точности возвращаются на исходную шкалу. Информационные критерии, параметры и диагностика остатков остаются на преобразованной шкале, о чём сказано на карточке. Оно нужно, когда размах колебаний растёт вместе с уровнем (см. раздел о преобразовании Бокса — Кокса). Ряд, где меньше 10 непропущенных значений или есть нулевое либо отрицательное значение, не преобразуется, как и ряд, для которого не удалось оценить λ: причина пропуска указывается в строке набора преобразований. Ряд, проходящий через ноль, сначала сдвиньте в модуле преобразования данных.
    • Значение λ — степень преобразования, одна для всех рядов и групп расчёта. Если поле пустое, λ подбирается методом Герреро для каждого ряда отдельно. При 0 это логарифм, при 0.5 квадратный корень, при 1 преобразования нет. Заданное вручную λ делает результат воспроизводимым.

Сводка набора преобразований. Каждая карточка с подогнанной моделью заканчивается строкой Набор преобразований:, где перечислено то, что действительно применено: заменённые выбросы, заполненные пропущенные значения (при очистке выбросов или интерполяцией, которая нужна моделям экспоненциального сглаживания), использованное λ. Под ней строкой предупреждения указано, что было запрошено, но пропущено, и почему. На карточке прогноза здесь же сказано, сколько обучающих окон отложенной выборки и перекрёстной проверки оказались слишком короткими для автоматического λ и подогнаны без преобразования. Если ничего не применено и ничего не пропущено, строки нет.

Методы анализа

  • Метод анализа — список, в котором выбирается один из пяти режимов ниже. От выбора зависит карточка параметров под списком. Все методы, кроме разведочного анализа, учитывают не только роли переменных, но и набор преобразований.
    • Разведочный анализ — графики, АКФ / ЧАКФ, декомпозиция и критерии стационарности: описательный этап, с которого стоит начинать работу с незнакомым рядом (см. Разведочный анализ)
    • Сглаживание — кривая скользящего среднего или экспоненциального сглаживания поверх наблюдаемых значений, для модельных методов — с диагностикой остатков (см. Сглаживание)
    • Моделирование ARIMA / SARIMA — подгонка ARIMA или сезонной ARIMA к каждому ряду, автоматически или вручную, с коэффициентами, информационными критериями, точностью и проверкой остатков (см. Моделирование ARIMA и SARIMA)
    • Прогнозирование — состязание семи методов прогноза, ранжированных по скользящей перекрёстной проверке или по отложенной выборке, с точечным прогнозом и интервалами того метода, который вы сделаете активным (см. Прогнозирование)
    • Спектральный анализ / точки разрыва — периодограмма с проверкой пиков и поиск разрывов методом Бай — Перрона с доверительными интервалами для их дат (см. Спектральный анализ / точки разрыва)
Метод Что выводит Что нужно
Разведочный анализ График ряда, сезонный график, АКФ / ЧАКФ, декомпозиция, критерии стационарности, обнаруженные сезонные периоды Время и хотя бы один ряд
Сглаживание Кривая скользящего среднего или экспоненциального сглаживания поверх наблюдаемых значений и диагностика остатков Время и хотя бы один ряд
Моделирование ARIMA / SARIMA Таблица коэффициентов, информационные критерии и точность, диагностика остатков Время и хотя бы один ряд
Прогнозирование Состязание семи методов прогноза со скользящей перекрёстной проверкой и оценкой на отложенной выборке Время и хотя бы один ряд
Спектральный анализ / точки разрыва Проверенные пики периодограммы и точки разрыва Бай — Перрона с доверительными интервалами дат Время и хотя бы один ряд

Если ряд вам незнаком, начните с режима Разведочный анализ: АКФ, декомпозиция и вывод о стационарности вместе подскажут, какой из методов моделирования выбрать дальше.

Разведочный анализ

Описательный обзор одного или нескольких рядов: модель не подгоняется, набор преобразований не применяется, а графики и критерии строятся по исходным значениям, отдельно для каждой группы и ряда. Карточка начинается строкой с числом наблюдений, рядов, частотой и группами, а если ось времени не образует ровной регулярной сетки, то и предупреждением, что каждая строка всё равно моделируется как один период с равным шагом.

  • Декомпозиция — список, в котором выбирается способ разложить ряд на тренд, сезонную составляющую и остаток. Любой способ рисует четыре панели друг под другом на общей оси времени (наблюдаемые значения, тренд, сезонность, остаток) под заголовком с названием метода и отмечает точки-аномалии остатка. Для любой декомпозиции нужны частота больше 1 и не меньше двух полных циклов непропущенных значений. Иначе карточка сообщает, какое условие не выполнено (см. декомпозицию).
    • STL — по умолчанию: робастная STL с периодическим сезонным окном, при которой форма сезонности одинакова во всех циклах, а выпадающий месяц не искривляет тренд. Подходит для большинства рядов
    • Классическая аддитивная — наблюдаемое = тренд + сезонность + остаток, где тренд — центрированное скользящее среднее, а сезонность — среднее отклонение в каждой позиции цикла. Предполагает, что сезонный размах постоянен
    • Классическая мультипликативная — наблюдаемое = тренд × сезонность × остаток, для размаха, растущего вместе с уровнем. Нужен строго положительный ряд, иначе декомпозиция пропускается с примечанием
    • Пропустить декомпозицию — ни панелей, ни силы тренда и сезонности, ни точек-аномалий. АКФ, критерии стационарности и поиск сезонного периода всё равно выполняются
  • На одной оси — все выбранные ряды рисуются на общих осях, а не каждый на своей панели. У отдельных панелей общая только ось времени, при наложении общей становится и ось значений, поэтому режим подходит для рядов в одной шкале. По умолчанию выключено.
  • Тесты стационарности — группа из трёх флажков ниже, можно выбрать любое их сочетание. В таблице результатов каждому критерию отведена строка с его нулевой гипотезой и выводом на соответствующем уровне значимости. Что именно проверяют эти критерии, объяснено в разделе о стационарности.
    • Расширенный тест Дики — Фуллера (ADF) — включён по умолчанию. Нулевая гипотеза утверждает наличие единичного корня, альтернатива — стационарность с дрейфом и трендом, поэтому отвержение означает, что ряд, скорее всего, стационарен
    • KPSS — включён по умолчанию. Нулевая гипотеза — стационарность относительно уровня или тренда, поэтому отвержение означает, что ряд, скорее всего, нестационарен. Гипотезы здесь обратны гипотезам ADF, и пара критериев даёт ответ там, где каждый по отдельности бессилен
    • Нулевая гипотеза KPSS — список под KPSS: какую стационарность утверждает его нулевая гипотеза. Чтобы оба критерия проверяли одну и ту же альтернативу, согласуйте его с моделью ADF с дрейфом и трендом, то есть выберите Стационарность относительно тренда.
      • Стационарность относительно уровня — по умолчанию: ряд стационарен вокруг постоянного среднего
      • Стационарность относительно тренда — ряд стационарен вокруг детерминированного линейного тренда, поэтому для ряда с трендом и ровными колебаниями вокруг него гипотеза не отвергается
    • Тест Филлипса — Перрона — выключен по умолчанию. Нулевая гипотеза та же, что у ADF (единичный корень), но вместо лаговых разностей ADF используется непараметрическая поправка на сериальную корреляцию. В таблице он обозначен PP (Zτ): модуль вычисляет форму t-отношения, сопоставимую по шкале с ADF

Для каждой группы и каждого ряда в ней карточка выводит:

  • График ряда — наблюдаемые значения во времени, по панели на ряд, если не включён флажок На одной оси. Если выполнялась декомпозиция, на линии отмечены точки-аномалии остатка. Точка, значение которой было интерполировано ради декомпозиции, не отмечается никогда: её остаток — артефакт заполнения.
  • Сезонный график — строится, если частота больше 1 и в ряде есть хотя бы один полный цикл. Ряд режется на циклы длиной в сезонный период, циклы накладываются на общую ось периода и окрашиваются от самого раннего к самому позднему, а поверх них проводится среднее по каждой позиции — Сезонное среднее. Легенда называет цикл по дате его начала (на числовом индексе — Цикл n), а если циклов больше двенадцати, оставляет только первый и последний. Это самый быстрый способ увидеть, устойчива ли форма сезонности, дрейфует ли она или растёт вместе с уровнем (см. сезонный паттерн).
  • АКФ / ЧАКФ — две панели: выборочная автокорреляционная и частная автокорреляционная функции на лагах от 1 до двух сезонных периодов или дальше. Столбцы, выходящие за пунктирную полосу ±1.96/√n, выделены. Автокорреляция — это корреляция ряда с его сдвигом на лаг, а как читать пару функций, объяснено в разделе об АКФ и ЧАКФ: медленное затухание говорит о нестационарности, пик на сезонном лаге — о сезонности, а характер обрыва подсказывает порядки ARIMA. Нужны четыре непропущенных значения. Ряд с пропусками сначала интерполируется, и карточка об этом сообщает.
  • Силы декомпозиции — строка под критериями, если выполнялась декомпозиция: сила тренда и сила сезонности по шкале от 0 до 1: чем больше, тем сильнее компонента (см. силу тренда и силу сезонности). При мультипликативной декомпозиции компоненты перед расчётом логарифмируются, так что числа сопоставимы с аддитивным вариантом.
  • Сводка аномалий — строка с числом точек-аномалий остатка декомпозиции, отмеченных на графике ряда: это точки, остаток которых отстоит от медианы остатков больше чем на три медианных абсолютных отклонения (MAD). Выводится, только если такая точка есть.
  • Тесты стационарности — таблица на каждый ряд, по строке на выбранный критерий, со столбцами Критерий, Нулевая гипотеза, Лаг, Статистика, p и Заключение. Примечание под таблицей называет уровень, на котором оценена каждая строка, а завершает раздел совместная интерпретация. p-значение берётся из опубликованной таблицы критических значений, поэтому для статистики за её пределами выводится граница (< 0.01 или > 0.10), а не точное число. Таблица KPSS охватывает лишь диапазон от 0.01 до 0.10, так что граница там — обычное дело. Нужны восемь непропущенных значений. Если таблица пуста, карточка объясняет почему: не выбран ни один критерий, значений меньше восьми или оценивание не удалось.
    • Лаг — число лагов, использованных критерием: у ADF это порядок лаговых разностей, выбранный по длине ряда, у KPSS и PP — параметр усечения в оценке долгосрочной дисперсии
    • Заключение — Стационарный при α = … или Нестационарный при α = … в зависимости от того, отвергнута ли нулевая гипотеза именно этой строки, либо Нет однозначного вывода, если p-значение вычислить не удалось. Уровень α не зафиксирован на 0.05: для ADF и PP берётся ваш глобальный уровень значимости, а для KPSS, чья нулевая гипотеза утверждает стационарность, берётся уровень значимости для проверки допущений (см. какой уровень использует таблица).
  • Совместная интерпретация — строка, объединяющая вывод критерия единичного корня с KPSS: однозначный ответ даёт только пара. Если критерий единичного корня отвергает гипотезу, а KPSS нет, ряд стационарен. При нулевой гипотезе KPSS о стационарности относительно тренда это стационарность вокруг детерминированного тренда, и тогда тренд нужно удалять, а не дифференцировать. Если KPSS отвергает гипотезу, а критерий единичного корня нет, у ряда есть единичный корень, и перед моделированием ряд нужно продифференцировать. Если отвергают оба, вероятны детерминированный тренд, структурный разрыв или меняющаяся дисперсия. Если не отвергает ни один, выборка не позволяет различить две гипотезы. Если ADF и PP расходятся между собой, строка сообщает, что единого вывода для пары нет.
  • Льюнг — Бокс для исходного ряда — строка на каждый ряд: есть ли в исходных значениях хоть какая-то сериальная зависимость, с Q, лагом и p. Значимый результат (на уровне значимости для проверки допущений, так как нулевая гипотеза — отсутствие автокорреляции) означает, что ряд имеет смысл моделировать, незначимый — что это, по сути, белый шум. Нужно восемь непропущенных значений.
  • Обнаруженные сезонные периоды — таблица на каждый ряд со всеми циклами, значимыми в периодограмме на вашем глобальном уровне значимости. Циклы находит пошаговый g-критерий Фишера независимо от заданной частоты и перечислены от самого сильного. Сноска сообщает, сколько пиков проверено. Если значимых периодов нет, раздел состоит из одной строки об этом, а для ряда короче восьми значений или ряда, периодограмму которого вычислить не удалось, выводится примечание. Таблица помогает заметить второй цикл, который одной частотой не передать (см. периодограмму).
    • Период (набл.) — длина цикла в наблюдениях со спектральным разрешением в виде P ± d, а для самого длинного периода, у которого нижняя граница L конечна, а верхняя не ограничена, в виде P (≥ L)
    • Циклов на набл. — соответствующая спектральная частота, 1 / период
    • g Фишера — доля периодограммы, приходящаяся на этот пик на том шаге, где он проверялся, то есть после подавления всех найденных раньше более сильных пиков. Именно эта доля служит статистикой критерия
    • Доля дисперсии — доля того же пика в нетронутой периодограмме, в процентах. В первой строке она совпадает с g Фишера, в остальных меньше него
    • p — p-значение пика, уже скорректированное на групповую вероятность ошибки по всей периодограмме, поэтому глобальная поправка p-значений поверх него не применяется
    • Примечание — Гармоника периода {period} (×n) для строки, период которой получается делением периода более сильной строки на целое число от двух и больше с точностью до спектрального разрешения, или – для основного цикла. Строки гармоник приглушены. Частоту вручную задавайте по основным циклам, а гармоники считайте подтверждением того, что основной цикл выбран верно (см. гармонику).

Если АКФ / ЧАКФ, критерии стационарности и поиск сезонного периода выполнялись на интерполированном ряде (в ряде были пропуски), примечание под заголовком ряда сообщает, сколько значений заполнено. Такие результаты смещены в сторону гладкости и стационарности, поэтому указывайте это число вместе с ними. Если интерполяция не удалась, критерии стационарности и Льюнг — Бокс для исходного ряда пропускаются, о чём сообщает примечание.

ADF и KPSS — зачем оба? У них противоположные нулевые гипотезы, поэтому согласие даёт твёрдый вывод, а расхождение означает, что ответ зависит от того, что точнее описывает ряд: тренд или единичный корень (см. критерий единичного корня и критерий KPSS).

Спектральная концентрация — не сила сезонности. g Фишера показывает, насколько периодограмма сосредоточена на одной частоте, и не зависит от заданной частоты, а сила сезонности в строке декомпозиции показывает, какую долю изменчивости объясняет заданная сезонность. При меняющейся амплитуде узкий спектральный пик может соседствовать с умеренной силой сезонности, и наоборот (см. силу тренда и силу сезонности).

Сглаживание

Этот режим строит для каждого ряда сглаженную кривую, накладывает её на наблюдаемые значения и для модельных методов проверяет остатки. Сначала применяется набор преобразований. Ряд с пропусками перед экспоненциальным сглаживанием интерполируется (заполнение учитывается в строке набора преобразований), а скользящее среднее оставляет пропуски как есть. Карточка начинается той же строкой и теми же предупреждениями, что и у разведочного анализа.

  • Метод — список, в котором выбирается способ сглаживания. От выбора зависят элементы под ним. Что предполагает каждый способ, объяснено в разделах о скользящем среднем и об экспоненциальном сглаживании.
    • Скользящее среднее — по умолчанию: симметричное центрированное среднее по окну из k наблюдений. Это фильтр, а не модель, поэтому у него нет ни правдоподобия, ни информационных критериев, ни диагностики остатков. Карточка прямо сообщает об этом, а не оставляет ячейки пустыми. Непропущенных значений нужно не меньше, чем ширина окна.
    • Простое экспоненциальное сглаживание (SES) — только уровень, прошлые значения взвешиваются по геометрической прогрессии. Даёт прогноз на шаг вперёд для ряда без тренда и сезонности. Нужно четыре непропущенных значения.
    • Холт — уровень и тренд без сезонности: для ряда с трендом, но без сезонного паттерна. Нужно пять непропущенных значений.
    • Холт — Винтерс — уровень, тренд и сезонность: для ряда, где есть и тренд, и сезонность. Доступен только при сезонном периоде от 2 до 24 (иначе вариант отключается с примечанием, а выбор возвращается к SES). Нужны два полных цикла непропущенных значений.
  • Окно скользящего среднего — ширина окна k, не меньше 2. Изначально она равна действующему сезонному периоду (12 для месячных данных) и перестаёт следовать за ним, как только вы введёте своё значение. Чётное окно применяется во взвешенной форме 2×m, при которой среднее за сезонный цикл остаётся центрированным на наблюдении. Легенда кривой и заголовок раздела называют использованную форму: MA(12), центрированное 2×12.
  • Сезонность — для Холта — Винтерса: вид сезонной компоненты.
    • Аддитивная — по умолчанию: сезонный размах постоянной величины
    • Мультипликативная — размах, растущий вместе с уровнем. Нужен строго положительный ряд. Её нельзя сочетать с преобразованием Бокса — Кокса, которое решает ту же задачу: пока включено Преобразование Бокса — Кокса, вариант отключён. В обоих случаях карточка прямо сообщает об этом и не отбрасывает выбор без предупреждения
  • Затухающий тренд — для Холта и Холта — Винтерса: экстраполированный тренд постепенно выполаживается, а не продолжается прямой линией. Если горизонт не совсем короткий, это почти всегда более надёжный выбор. По умолчанию выключено.
  • Диагностика — три проверки остатков ниже для методов экспоненциального сглаживания, общие с карточкой ARIMA. Каждая добавляет свой вывод под подгонкой, после графика остатков во времени, который появляется при любой из них.
    • Тест Льюнга — Бокса на остатках — включён по умолчанию: одна строка о том, сохранилась ли в остатках сериальная зависимость. Нулевая гипотеза — остатки представляют собой белый шум, поэтому критерий оценивается на уровне значимости для проверки допущений, и значимое p означает, что модель упускает структуру. Число лагов — два сезонных периода для сезонных данных и 10 для остальных, но не больше пятой части остатков. Число степеней свободы уменьшается на число оценённых параметров. Если ряд слишком короток, чтобы проверить больше лагов, критерий пропускается с примечанием.
    • АКФ остатков — включена по умолчанию: коррелограмма остатков с полосой на вашем уровне доверия. Если все столбцы внутри полосы, остатки можно считать белым шумом
    • Нормальность остатков (Q-Q + Шапиро) — выключена по умолчанию: график Q-Q остатков и строка критерия Шапиро — Уилка, которая, как и все критерии нормальности в приложении, оценивается на уровне значимости для проверки допущений. Нормальность остатков важна для корректности интервалов предсказания, а не для точечного прогноза. Если остатков больше 5000, критерий выполняется на случайной выборке из 5000, и карточка об этом сообщает.

Для каждого ряда выводится один раздел:

Сглажено: {name} ({method}). Линия наблюдаемых значений с наложенной сглаженной кривой, легенда которой называет метод (SES, Холт (затухающий), Холт — Винтерс (аддитивный)), и маркер Выброс заменён на каждой точке, изменённой набором преобразований. Ниже — сводка подгонки, таблица параметров и диагностика. Если ряд слишком короток для метода, период выходит за допустимый для Холта — Винтерса диапазон, нарушены условия мультипликативной сезонности или подгонка не удалась численно, в разделе выводится уведомление с причиной.

  • Окно — для скользящего среднего: использованная ширина окна, введённая или заданная по умолчанию
  • Сглаженных точек — для скользящего среднего: сколько наблюдений покрывает кривая (на каждом конце ряда она короче на половину окна)
  • Спецификация — для методов экспоненциального сглаживания: подогнанная модель в форме пространства состояний ETS(error, trend, season), где затухающий тренд помечен d. Так, ETS(A,N,N) соответствует SES, ETS(A,Ad,N) методу Холта с затуханием, а ETS(M,A,M) мультипликативному методу Холта — Винтерса (см. экспоненциальное сглаживание)
  • σ (масштаб остатков) — стандартное отклонение остатков подгонки, на шкале Бокса — Кокса, если преобразование применялось
  • RMSE (обучающая выборка) — корень из среднего квадрата ошибки подогнанных значений на обучающих данных (см. RMSE). Даже при преобразовании Бокса — Кокса RMSE считается на исходной шкале, потому что подогнанные значения перед оценкой преобразуются обратно
  • MAE (обучающая выборка) — средняя абсолютная ошибка на обучающих данных (см. MAE)
  • MAPE (обучающая выборка), % — средняя абсолютная процентная ошибка на обучающих данных (см. MAPE)
  • Роль — в таблице параметров указывает, что это за строка: Параметр сглаживания (α для уровня, β для тренда, γ для сезонности, φ для затухания) или Начальное состояние (уровень l, тренд b и сезонные индексы s0 …, с которых начинается сглаживание)
  • Параметр сглаживания — вес от 0 до 1: при значении около 1 компонента следует за последним наблюдением, около 0 почти не меняется. α = 1 в SES — это наивный прогноз.
  • Начальное состояние — уровень, тренд или сезонный индекс, оценённый для начала ряда
  • Параметр — имя, под которым R выводит оценку
  • Тест автокорреляции остатков — подпись строки Льюнга — Бокса с лагом и числом степеней свободы. Её χ² и p оцениваются на уровне значимости для проверки допущений
  • Тест нормальности — подпись строки Шапиро — Уилка с W и p. Если проверялась случайная выборка остатков, об этом сообщает строка под ней

Каждый раздел завершается сводкой набора преобразований, а если к экспоненциальному сглаживанию применялось преобразование Бокса — Кокса, то и примечанием, что информационные критерии, параметры и диагностика даны на преобразованной шкале, а кривая и строка точности приведены к исходной. У скользящего среднего нет дисперсии остатков, которой можно было бы скорректировать обратное преобразование, поэтому при преобразовании Бокса — Кокса его кривая оказывается на шкале медианы, о чём сообщает примечание под графиком.

Что выбрать? Для наглядного сглаживания любого ряда подходит скользящее среднее. Если нет ни тренда, ни сезонности, выбирайте SES, при тренде подойдёт метод Холта, а при тренде и сезонности — метод Холта — Винтерса. На коротком или шумном ряде лучше вернуться к SES или методу Холта, а сезонность оставить состязанию методов прогноза (см. экспоненциальное сглаживание).

Моделирование ARIMA и SARIMA

Этот режим подгоняет к каждому ряду после набора преобразований модель ARIMA(p, d, q), а при частоте больше 1 — сезонную ARIMA(p, d, q)(P, D, Q)[m], и выводит коэффициенты, информационные критерии, точность на обучающей выборке и диагностику остатков (см. модель ARIMA). Нужно не меньше десяти непропущенных значений. Если сезонный период больше 24, карточка начинается с предупреждения: автоматический поиск в этом случае обычно оставляет только сезонную разность, а ручной сезонный член часто не сходится, поэтому обычная альтернатива — метод на основе STL.

  • Спецификация — выбор между автоматическим поиском порядков и порядками, заданными вручную.
    • Автоматически — по умолчанию: forecast::auto.arima перебирает сетку порядков, добавляя константу или дрейф там, где это улучшает модель, а выбранная модель названа в заголовке раздела
    • Вручную — вы задаёте (p, d, q), а при действующей частоте больше 1 ещё и (P, D, Q), и карточка подгоняет эту модель вместе с сеткой соседних порядков. Пустой порядок или порядок вне диапазона останавливает расчёт с уведомлением, где названы порядок и его диапазон
  • Критерий отбора — для автоматического поиска: по какому критерию ранжируются кандидаты, AICc (по умолчанию), AIC или BIC. BIC сильнее штрафует сложность и обычно выбирает более простые модели. Критерий, по которому сделан выбор, помечен в сводной таблице (см. AIC, AICc и BIC).
  • p (порядок AR) — ручной режим: число авторегрессионных членов, от 0 до 10
  • d (дифференцирование) — ручной режим: сколько раз ряд дифференцируется внутри подгонки, от 0 до 3. Отправная точка — Рекомендованное d из предварительной проверки (см. дифференцирование)
  • q (порядок MA) — ручной режим: число членов скользящего среднего, от 0 до 10
  • Сезонные порядки — сезонная строка. При действующей частоте 1 она отключена и обнулена с примечанием, поскольку без периода сезонный член не имеет смысла
    • P (сезонный AR) — число сезонных авторегрессионных членов, от 0 до 5
    • D (сезонное дифференцирование) — число сезонных разностей, от 0 до 2. Ориентир — Рекомендованное D из предварительной проверки (см. сезонное дифференцирование)
    • Q (сезонный MA) — число сезонных членов скользящего среднего, от 0 до 5
  • Включать константу / дрейф — ручной режим, включено по умолчанию: к недифференцированному ряду добавляется среднее, к дифференцированному — дрейф, как и при автоматическом поиске. Без этого члена модель проходит через начало координат дифференцированной шкалы, а это без особой причины нужно редко

Группа Диагностика та же, что на карточке сглаживания, с теми же значениями по умолчанию: Тест Льюнга — Бокса на остатках, АКФ остатков и Нормальность остатков (Q-Q + Шапиро). Перед ними выводится график остатков во времени, на котором лучше всего видны растущая с уровнем дисперсия или сдвиг среднего остатков. Число степеней свободы в критерии Льюнга — Бокса уменьшается на число оценённых коэффициентов, включая константу или дрейф.

Для каждого ряда выводится один раздел:

ARIMA: {name} — {order}. Заголовок называет подогнанную модель (ARIMA(0,1,1)(0,1,1)[12], где [m] в скобках — сезонный период) и её константу, если она подгонялась: с дрейфом или с ненулевым средним, так что этот член виден ещё до строк коэффициентов. Под заголовком — сводная таблица, таблица коэффициентов, в ручном режиме сетка соседних порядков, график наблюдаемых и подогнанных значений с маркерами Выброс заменён и диагностика. Если ряд слишком короток или подгонка не удалась, в разделе выводится уведомление, а если R вернул сообщение об ошибке, то и оно.

  • Спецификация — подогнанный порядок в том же виде, что в заголовке (см. как читать спецификацию SARIMA)
  • {ic} (критерий отбора) — в автоматическом режиме строка критерия, по которому сделан выбор. Подпись отмечает, что выбор решил именно он, а два других критерия приведены для сравнения. Для всех трёх чем меньше, тем лучше, но сравнивать их можно только между моделями, подогнанными к одним и тем же данным на одной шкале
  • σ² (дисперсия остатков) — дисперсия инноваций подогнанной модели, на шкале Бокса — Кокса, если преобразование применялось. Из логарифма правдоподобия, который выводится рядом, строятся информационные критерии
  • MASE (обучающая выборка) — средняя абсолютная масштабированная ошибка на обучающих данных, то есть ошибка относительно сезонного наивного прогноза того же ряда (см. MASE). Вместе со строками RMSE, MAE и MAPE это единственные числа карточки на исходной шкале при преобразовании Бокса — Кокса, потому что подогнанные значения перед оценкой преобразуются обратно
  • Член — в таблице коэффициентов название коэффициента (ar1, ma1, sar1, sma1, drift, intercept). В каждой строке — оценка, стандартная ошибка, доверительный интервал на вашем глобальном уровне доверия, z и p-значение
  • Соседние порядки (информационные критерии) — только в ручном режиме: по строке на каждый порядок сетки вокруг выбранного. p, q, P и Q меняются на шаг в обе стороны, а d и D закреплены, поскольку критерии при разном дифференцировании несопоставимы. Строки отсортированы по AICc, подогнанная модель выделена жирным, о чём говорит подпись. Большой отрыв от лучшей строки — сигнал переключиться на Автоматически.
  • Порядок — ARIMA(p,d,q)(P,D,Q)[m] кандидата, рядом — его AIC, AICc и BIC

Каждый раздел завершается сводкой набора преобразований, а если применялось преобразование Бокса — Кокса, то и примечанием, что информационные критерии и диагностика даны на преобразованной шкале, а кривая и строки точности приведены к исходной.

Значимый критерий Льюнга — Бокса для остатков — признак плохого соответствия модели. Если в остатках сохранилась сериальная зависимость, модель упускает структуру, обычно сезонный член или более высокий порядок AR. Подгоните модель заново в режиме Автоматически с полным перебором или расширьте ручную спецификацию (см. белый шум).

Прогнозирование

Этот режим устраивает для каждого ряда состязание семи методов прогноза, ранжирует их по ошибке на проверочных данных, рисует их вместе, выделяя лидера, а активный метод меняется одним щелчком. Сначала применяется набор преобразований, и на каждом обучающем отрезке проверки он применяется заново. Как оценивается состязание, объяснено в разделе о точности прогноза.

  • Горизонт — на сколько периодов вперёд строится прогноз, по умолчанию 12, не меньше 1. Такой же длины каждое проверочное окно
  • Оценка на отложенной выборке — включена по умолчанию: последние наблюдения откладываются для проверки, каждый метод подгоняется заново на остальных и оценивается на отложенных. Длина отложенной выборки равна горизонту или пятой части непропущенных наблюдений, если это меньше. Нужны не меньше 30 непропущенных наблюдений и обучающий отрезок не короче 10. Если ряд слишком короток, карточка сообщает об этом, а не убирает блок без предупреждения (см. оценку на отложенной выборке).
  • Скользящая перекрёстная проверка — включена по умолчанию: каждый метод подгоняется заново в нескольких окнах со своими точками отсчёта, и ошибки по ним объединяются. Точки отсчёта отстоят друг от друга на целый горизонт, поэтому проверочные окна не пересекаются и ни одно наблюдение не оценивается дважды (см. скользящую перекрёстную проверку).
  • Число окон — для перекрёстной проверки, по умолчанию 5, от 2 до 20. Каждое окно требует ещё одного горизонта наблюдений: для одного окна нужны горизонт плюс 10 наблюдений, для двух — два горизонта плюс 10 и так далее. Если ряд не позволяет взять запрошенное число, используется достижимое, и карточка сообщает его в виде {a} из {n} окон.
  • Отмечать аномалии внутри выборки — включено по умолчанию: для активного метода на графике отмечается маркером Выброс остатка (активная модель) каждое наблюдение, остаток которого на обучающих данных отстоит от медианы остатков больше чем на три MAD. Точка, заменённая набором преобразований, оценивается по исходному значению и поэтому тоже может быть отмечена.

Участники состязания (каждому соответствует строка таблицы ранжирования):

Метод Примечания
Наивный Последнее наблюдённое значение, продолженное вперёд, — самый простой базовый прогноз
Дрейф Наивный прогноз плюс прямая через первое и последнее наблюдения
Сезонный наивный Последнее значение того же сезона. Нужна частота больше 1
ETS Автоматическое экспоненциальное сглаживание с выбором вида ошибки, тренда и сезонности по AICc
Авто-ARIMA auto.arima по той же сетке, что и автоматический поиск на карточке ARIMA
Тэта Разложение на тэта-линии плюс SES, один из сильнейших методов соревнований M3 и M4
STL + ETS Декомпозиция STL, затем ETS на сезонно скорректированном ряде. Нужны частота больше 1 и два полных цикла
  • Наивный — последнее наблюдённое значение, продолженное вперёд. Это базовый уровень, который должен превзойти любой другой метод (см. наивные прогнозы)
  • Дрейф — наивный прогноз плюс среднее изменение за период, то есть прямая через первое и последнее наблюдения
  • Сезонный наивный — значение в той же позиции цикла на цикл раньше. Нужны частота больше 1 и хотя бы один полный цикл, иначе в строке стоит Неприменимо
  • ETS — автоматическое экспоненциальное сглаживание: forecast::ets выбирает вид ошибки, тренда и сезонности по AICc (см. экспоненциальное сглаживание). Ряд с пропусками подгоняется по интерполированной копии
  • Авто-ARIMA — auto.arima с тем же поиском, что по умолчанию на карточке ARIMA, пошаговым и по AICc (см. модель ARIMA)
  • Тэта — тэта-метод: разложение на тэта-линии, прогнозируемые методом SES с дрейфом. Ряд с пропусками подгоняется по интерполированной копии
  • STL + ETS — декомпозиция STL, ETS на сезонно скорректированном ряде и возвращённая обратно сезонная компонента. Нужны частота больше 1 и два полных цикла

Для каждого ряда выводится один раздел:

Прогноз: {name}. Наблюдаемые значения и все подогнанные методы, каждый своим цветом. Активный метод выделен толстой линией, полосой интервала предсказания 95% и маркерами выбросов остатка, а последнее наблюдение отмечено пунктирной линией. Под графиком — строка валидации, таблица ранжирования и значения прогноза активного метода. При месячном, квартальном и годовом шаге будущие метки времени идут по календарным месяцам, а день обрезается по длине месяца, так что прогноз от 31 января попадает на 28 февраля. При любом другом шаге ось продолжается с постоянным интервалом. Если не удалось подогнать ни один метод, раздел состоит из одной строки предупреждения.

  • Сводка валидации — строка под графиком: число окон перекрёстной проверки × горизонт (или причина, по которой проверка пропущена, с требуемой длиной ряда) и объём отложенной выборки (или причина её пропуска). Если нет ни того, ни другого, методы перечислены в исходном порядке
  • Ранг (RMSE, CV) — первый столбец таблицы ранжирования. Его заголовок называет метрику, определившую порядок: RMSE перекрёстной проверки, если оценено хотя бы одно окно, иначе RMSE отложенной выборки (Ранг (RMSE, отлож.)), а если проверки не было вовсе, просто Ранг с – во всех строках. Номера получают только методы, оценённые решающей метрикой. Метод без оценки по этой метрике идёт после них, а метод, который не удалось подогнать, — последним.
  • Метод — название метода с кнопкой Использовать, которая делает его активным (она перерисовывает полосу и маркеры на графике, пересобирает значения прогноза). В строке уже активного метода стоит ✓ Активный. Метод, неприменимый к этому ряду, помечен Неприменимо с причиной во всплывающей подсказке, а метод, подгонка которого не удалась, — Не выполнено.
  • Перекрёстная проверка — группа из четырёх метрик точности, объединённых по окнам, до которых дошли все подогнанные методы. Выводится, только если оценено хотя бы одно окно
  • Отложенная выборка — те же четыре метрики на отложенном окне. Выводится, только если оценка на отложенной выборке выполнялась. Две группы оценивают разные данные, поэтому никогда не сводятся в один столбец (см. оценку на отложенной выборке).
  • RMSE — корень из среднего квадрата ошибки в единицах самого ряда, по нему ранжируются методы (см. RMSE)
  • MAE — средняя абсолютная ошибка в единицах самого ряда (см. MAE)
  • MASE — средняя абсолютная масштабированная ошибка, то есть ошибка относительно сезонного наивного прогноза на обучающем отрезке: значение меньше 1 означает, что метод лучше наивного. MASE можно сравнивать между рядами и группами (см. MASE)
  • MAPE — средняя абсолютная процентная ошибка. Не определена (–), если хоть одно оцениваемое фактическое значение нулевое или отрицательное (см. MAPE)

Значения прогноза: {method}. Прогноз активного метода на каждый будущий период, пересчитываемый при каждом нажатии Использовать: точечный прогноз и границы двух интервалов предсказания (см. интервал предсказания).

  • Период — будущая метка времени (при шаге короче суток — со временем суток), а на числовой оси — следующие значения индекса
  • Прогноз — точечный прогноз, то есть среднее прогнозного распределения. При преобразовании Бокса — Кокса он приводится к исходной шкале с поправкой на смещение
  • 80% интервал — его границы Нижняя и Верхняя: диапазон, в который значение попадёт в четырёх случаях из пяти
  • 95% интервал — более широкая пара границ. Именно эта полоса показана на графике

Каждый раздел завершается сводкой набора преобразований.

Наивный прогноз — серьёзный соперник. Обыграть наивный прогноз (или сезонный наивный при частоте больше 1) на ряде без резких перемен труднее, чем кажется, и если выбранная модель не превосходит базовый прогноз с ощутимым отрывом, её сложность не окупается (см. наивные прогнозы).

Спектральный анализ / точки разрыва

Инструменты частотного анализа и поиска структурных разрывов. Включите хотя бы один из двух флажков: если оба выключены, расчёт не запускается и появляется уведомление. Сначала применяется набор преобразований, пропущенные значения интерполируются, и заполнение учитывается в строке набора преобразований. Раздел каждого ряда заканчивается строкой о том, сколько значений из общего числа реально наблюдалось и при какой частоте, потому что ограничения по длине ниже считают настоящие значения, а не заполненные интерполяцией.

  • Периодограмма — включена по умолчанию: периодограмма каждого ряда после удаления тренда и сглаживания краёв (тейпера), на точной сетке частот Фурье. Несглаженная периодограмма рисуется «гребнем» в логарифмической шкале, а поверх неё проведён спектр, сглаженный модифицированным ядром Даниэля (сглаживание нужно только для наглядности формы, его полоса указана под графиком). К графику прилагается таблица сильнейших пиков, значимость которых проверяется относительно спектра белого шума. Нужны восемь наблюдённых значений и непостоянный ряд, иначе периодограмма пропускается с указанием причины (см. периодограмму).
  • Точки разрыва Бай — Перрона — выключены по умолчанию: strucchange::breakpoints допускает столько разрывов, сколько позволяет минимальный сегмент, и выбирает их число по BIC. Затем рисуется ряд с пунктирной линией на каждом разрыве, горизонтальной линией среднего в каждом сегменте и закрашенной полосой доверительного интервала 95% для даты каждого разрыва, а сами разрывы перечисляются в таблице. Нужны двадцать наблюдённых значений и пакет strucchange. Если пакет не удалось загрузить, периодограмма всё равно строится, а в разделе точек разрыва выводится предупреждение (см. структурный разрыв).
  • Модель разрыва — список под флажком: что может меняться в точке разрыва.
    • Сдвиг среднего (только уровень) — по умолчанию: внутри каждого сегмента ряд постоянен, поэтому ряд с трендом приближается лестницей из ступенек уровня. Подходит, если между скачками ряд должен оставаться ровным
    • Уровень + тренд — внутри каждого сегмента прямая, так что разрыв — это изменение уровня или наклона
  • Минимальный размер сегмента (%) — по умолчанию 15, от 5 до 45: какую долю ряда должен охватывать каждый сегмент. От неё же зависит, сколько разрывов можно поставить. Карточка сообщает получившуюся длину в наблюдениях, так что видно, если значение было ограничено.

Для каждого ряда раздел периодограммы выводит график и таблицу не более чем из пяти пиков — локальных максимумов, упорядоченных по мощности. Пик с периодом больше половины длины ряда отбрасывается, потому что один-два наблюдённых цикла ещё не доказывают период, хотя на графике остаётся весь спектр:

  • Период (наблюдений) — длина цикла, 1 / частота
  • Частота (циклов/набл.) — исходная спектральная частота в циклах на наблюдение, какой бы ни была заданная частота
  • Спектральная мощность — ордината несглаженной периодограммы на этой частоте
  • g Фишера — доля пика во всей периодограмме, её значимость проверяется относительно спектра белого шума. В сравнении с таблицей Обнаруженные сезонные периоды разведочного анализа первые строки совпадают, а следующие расходятся, потому что там каждый более сильный пик подавляется перед проверкой следующего
  • p — p-значение пика при нулевой гипотезе белого шума, скорректированное на групповую вероятность ошибки по всей периодограмме. Если критерий выполнить не удалось, эти столбцы не выводятся, и подпись об этом сообщает

Точки разрыва: {name}. График, а под ним либо таблица ниже, либо строка о том, что точек разрыва не обнаружено и что оказалось неизменным (среднее или уровень и наклон), и примечание с моделью разрыва и минимальным сегментом в наблюдениях.

  • Наблюдение — номер последнего наблюдения перед разрывом, считая с 1
  • Время — значение времени в этом наблюдении, при шаге короче суток — со временем суток
  • 95% ДИ от — самое раннее время, с которым совместима дата разрыва (не раньше начала ряда). На графике это закрашенная полоса
  • 95% ДИ до — самое позднее такое время. Если интервал вычислить не удалось, эти столбцы не выводятся
  • Среднее до — среднее сегмента, который заканчивается разрывом, на исходной шкале, даже если применялось преобразование Бокса — Кокса
  • Среднее после — среднее следующего сегмента

Периодограмма и АКФ. Обе выявляют циклическую структуру, но с разным разрешением: АКФ работает на целых лагах, а периодограмма на любой частоте до половины цикла на наблюдение. Чёткий пик на частоте 1/12 в месячных данных — спектральный след годового цикла, который даёт и пики АКФ на лагах 12, 24 и 36 (см. периодограмму).

Точки разрыва — это сдвиги подогнанной зависимости. В модели сдвига среднего это сдвиг уровня, в модели «уровень + тренд» — уровня или наклона, но никогда не изменение сезонности или дисперсии. Чтобы найти такие изменения, ищите разрывы в остатке ряда после удаления тренда и сезонности (см. структурный разрыв).

Импутация, пропуски и отброшенные строки

Каждому методу модуля нужен один числовой вектор с регулярным шагом на ряд, поэтому модуль сохраняет строки, а не отбрасывает их, и заполняет пропуск только там, где об этом говорит карточка. До начала расчёта отбрасывается строка с нераспознанным временем, а при группирующей переменной — и строка с пустым значением группы. Их число — показатель Отброшенные строки (нераспознанное время) предварительной проверки (при группировке — Отброшенные строки (нераспознанное время или пропущенная группа)), и если оно больше нуля, каждая карточка результатов начинается с предупреждения о нём. Пустая или нечисловая ячейка ряда остаётся на месте как пропущенное значение: строка сохраняется, поскольку её удаление сдвинуло бы все последующие наблюдения на период раньше. Показатель Пропущенные значения предварительной проверки считает пропуски по каждому ряду.

Что делает с пропусками каждая карточка. Предварительная проверка интерполирует копию ряда для подсчёта разностей и поиска периода. Разведочный анализ делает то же для АКФ / ЧАКФ, критериев стационарности, критерия Льюнга — Бокса для исходного ряда, декомпозиции и поиска сезонного периода, сообщает под заголовком ряда, сколько значений заполнено, и рисует график ряда с пробелами на месте пропусков. Сглаживание интерполирует ряд перед экспоненциальным сглаживанием и учитывает заполнение в сводке набора преобразований, а скользящее среднее оставляет в кривой пробел вокруг пропуска. ARIMA подгоняется прямо по ряду с пропусками. На карточке прогнозирования так же подгоняются наивный метод, дрейф, сезонный наивный метод и авто-ARIMA, STL + ETS заполняет пропуски внутри своей декомпозиции, а ETS и тэта-метод подгоняются по интерполированной копии: они помечены * в таблице ранжирования, заполнение учтено в сводке набора преобразований, а точность всё равно оценивается только по наблюдённым значениям. Спектральный анализ и поиск разрывов интерполируют ряд, учитывают заполнение в строке набора преобразований и применяют ограничения по длине только к наблюдённым значениям. Если включён флажок Заменить выбросы, ряд любой карточки с подгонкой заполняется вместе с заменой выбросов ещё до того, как его получит метод, а сводка считает то и другое отдельно. Чего стоит заполненное значение, объяснено в разделе об импутации.

Глобальная настройка пропущенных данных действует на набор данных до того, как его прочтёт модуль, поэтому здесь её не отключить. При попарном удалении, которое действует по умолчанию, пустые ячейки доходят до карточек как описанные выше пропущенные значения. При построчном удалении строка, пустая в любой переменной, выбранной в диалоге переменных, исчезает ещё до разбора оси времени, и предварительная проверка показывает потерю как пропуски на оси, а не как пропущенные значения: у прореженного ряда шаг уже не регулярный. При импутации пустые ячейки приходят заполненными средним, медианой, модой столбца или константой, и ни одна карточка не может отличить заполненное значение от наблюдённого (см. построчное удаление). Собственное заполнение карточек следует за трендом и сезонностью ряда, чего не может константа на весь столбец, поэтому запускайте модуль при попарном удалении.

Контрольный список для отчёта

Метод:

  • Переменная времени, ряды и группирующая переменная, если она есть
  • Использованная частота, определена ли она автоматически или задана вручную, различался ли шаг у групп
  • Итоги предварительной проверки: регулярность, пропуски на оси и дубликаты, доля пропущенных значений, заменённые выбросы
  • Применённые преобразования (λ Бокса — Кокса, если оно использовалось), а также запрошенные, но пропущенные
  • Метод анализа (Разведочный анализ, Сглаживание, Моделирование ARIMA / SARIMA, Прогнозирование или Спектральный анализ / точки разрыва) и его параметры:
    • Тип декомпозиции, выполненные критерии стационарности и нулевая гипотеза KPSS
    • Метод сглаживания, окно или тип сезонности и было ли затухание тренда
    • ARIMA: автоматический или ручной режим, критерий отбора и был ли перебор полным, а в ручном режиме — выбранная спецификация (p, d, q)(P, D, Q)[m] и включалась ли константа
    • Прогнозирование: участвовавшие методы, объём отложенной выборки, достигнутое число окон перекрёстной проверки, горизонт
    • Спектральный анализ: периодограмма и (или) точки разрыва с моделью разрыва и минимальным размером сегмента
  • Число проанализированных строк с числом отброшенных и то, как обрабатывались пропущенные значения: заполнения, о которых сообщили карточки, и глобальная настройка пропущенных данных, действовавшая при расчёте

Результаты:

  • Вывод о стационарности по каждому критерию (статистика, p-значение или граница, заключение) и совместная интерпретация
  • Сила тренда и сила сезонности декомпозиции, если они выводятся
  • Обнаруженные сезонные периоды (период ± разрешение, g Фишера, p и число проверенных пиков) с указанием заданной частоты, сильнейшего основного цикла и гармоник, если они есть
  • Для ARIMA: полная спецификация с константой, если она есть, AIC / AICc / BIC, точность на обучающей выборке, результат критерия Льюнга — Бокса для остатков и явное указание, являются ли остатки белым шумом
  • Для сглаживания: подогнанная спецификация и параметры, диагностика остатков
  • Для прогнозирования: метод-победитель, метрика, определившая ранжирование, и его показатели на перекрёстной проверке или отложенной выборке. Для сравнения приведите хотя бы один базовый прогноз (наивный или сезонный наивный)
  • Для периодограммы: доминирующие периоды, их мощность и p-значения g Фишера
  • Для точек разрыва: даты разрывов с доверительными интервалами и средние сегментов

Воспроизводимость

Каждый анализ выводит свой R-код в консоль R, где команды можно просмотреть, скопировать и запустить заново. Модуль использует пакет forecast для подсчёта разностей и поиска периода, АКФ / ЧАКФ, экспоненциального сглаживания и ARIMA, семи методов прогноза, поиска и замены выбросов, преобразования Бокса — Кокса и его λ, мер точности и интерполяции пропусков; tseries для критериев ADF, KPSS и Филлипса — Перрона; stats из базового R для декомпозиции STL и классической декомпозиции, периодограммы, критериев Льюнга — Бокса и Шапиро — Уилка; strucchange для точек разрыва Бай — Перрона и их доверительных интервалов (он загружается, только если включён поиск разрывов). Выводы критериев единичного корня и значимость сезонных периодов определяются вашим глобальным уровнем значимости. KPSS, критерии Льюнга — Бокса и строка Шапиро — Уилка для остатков, нулевая гипотеза которых — что с рядом или остатками всё в порядке, используют уровень значимости для проверки допущений. p-значения форматируются по глобальной настройке. Уровень доверия задаёт интервалы коэффициентов ARIMA и полосу АКФ остатков, а интервалы предсказания прогноза всегда 80% и 95%. Случайность есть только в проверке нормальности остатков: если остатков больше 5000, строка Шапиро — Уилка оценивается по выборке из 5000, взятой с параметром Зерно воспроизводимости, и карточка сообщает об этом. Оставьте зерно пустым, чтобы выборка каждый раз была новой, или задайте целое число, чтобы она не менялась. Все остальные числа модуля детерминированы. Ссылки на пакеты и методы выводятся в начале карточки результатов и соответствуют тому, что было сделано в расчёте: невыбранный критерий стационарности, выключенная диагностика или невыполненная декомпозиция не цитируются. Обоснование порогов, запасных вариантов и отказов модуля изложено в методических заметках.

Типичные ошибки

Неверно заданная частота. Частота — это число наблюдений в цикле, а не частота дискретизации: 12 для месячных данных с годовым циклом, 7 для суточных с недельным. При значении 1 отключаются сезонный наивный прогноз, Холт — Винтерс, STL + ETS и сезонная строка (P, D, Q) модели SARIMA, а при значении больше 24 Холт — Винтерс недоступен и карточка ARIMA выводит предупреждение. Подсказка под полем переменной времени покрывает обычные случаи, а показатель Обнаруженный сезонный период предварительной проверки даёт независимую оценку по самому ряду. Задавайте частоту вручную, только если цикл нестандартный.

SARIMA и Холт — Винтерс на коротком ряде. При n < 30 сезонные параметры поглощают шум, а не сигнал. Предварительная проверка предупреждает об этом, но повторить стоит: на коротком ряде предпочитайте наивные базовые прогнозы, ETS без сезонности или простое экспоненциальное сглаживание и переходите к сезонным моделям, только когда в данных есть хотя бы два полных цикла с запасом.

Вывод по одному ADF или KPSS. Оба критерия маломощны на рядах, близких к единичному корню, а неотвержение гипотезы ничего не доказывает. Опирайтесь на совместную интерпретацию, а не на отдельную строку таблицы, согласуйте нулевую гипотезу KPSS с моделью ADF и сверяйтесь с рекомендованным d, видом затухания АКФ и знанием предмета.

Прогноз без базового уровня. Модель, которая не обыгрывает наивный прогноз (или сезонный наивный при частоте больше 1), не оправдывает своей сложности. Наивный прогноз участвует в состязании всегда, а сезонный наивный — всякий раз, когда это позволяет частота. Оставляйте их в отчёте, даже если победили ETS или авто-ARIMA, чтобы читатель видел, сколько дала лучшая модель.

Сравнение несопоставимых метрик прогноза. RMSE и MAE выражены в единицах самого ряда, поэтому сравнивать их между рядами или группами бессмысленно — для этого есть MASE. И никогда не сравнивайте показатель перекрёстной проверки с показателем отложенной выборки: они получены на разных данных, поэтому таблица выводит их в разных группах столбцов и ранжирует только по одной из них.

Не та модель разрыва. У модели сдвига среднего нет наклона, поэтому любой тренд она приближает лестницей из ступенек уровня и легко находит несколько разрывов в ряде, который просто растёт. Если у ряда есть тренд, выберите Уровень + тренд, а если две модели расходятся в числе разрывов, само это расхождение — уже результат.

Подгонка на обучающих данных вместо ошибки вне выборки. Низкий AIC модели ARIMA означает, что она хорошо описывает обучающие данные, но ничего не говорит о том, как она будет прогнозировать. Если анализ нужен для прогноза, приводите показатели из групп столбцов отложенной выборки и скользящей перекрёстной проверки на карточке прогнозирования.