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

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

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

Чем временные ряды отличаются от обычных данных? Обычная статистика рассматривает наблюдения как независимые. Во временном ряде сегодняшнее значение зависит от вчерашнего, прошлой недели, прошлого года — и эта зависимость (автокорреляция) и есть главная особенность. Методы, которые её игнорируют, дают слишком уверенные p-значения, смещённые прогнозы и тренды, которые выглядят настоящими, но на деле являются медленным дрейфом. Методы анализа временных рядов — это инструментарий, специально созданный для моделирования такой зависимости.

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

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

В левой колонке расположены селекторы переменных; в правой — настройка метода.

Переменная времени

Обязательный столбец, упорядочивающий наблюдения. Принимаются три формата:

  • Дата в виде строк (2024-03-15, 2024-03-15 14:30:00)
  • Числовой индекс (1, 2, 3, … или любой монотонный числовой столбец)
  • Дата/время, разбираемое функцией JavaScript Date.parse

Строки, в которых значение времени не удаётся распарсить, молча отбрасываются и попадают в счётчик Отброшенные строки (нераспознанное время) в выводе. Затем строки сортируются по времени перед запуском любого анализа, поэтому ввод не обязан быть отсортирован заранее.

После выбора переменной времени под селектором появляется подсказка о частоте — см. автоопределение частоты.

Серии

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

Нечисловые переменные блокируются при отправке с уведомлением — перекодируйте их сначала через преобразование данных.

Группировка

Необязательная категориальная переменная. Когда она задана, каждый метод выполняется по группам: для каждой группы строится отдельный линейный график, АКФ, подгонка, прогноз или поиск точек разрыва. Вывод оборачивается в секции Группа: {имя}, чтобы границы групп считывались с одного взгляда.

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

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

Ручной сезонный период (положительное целое), используемый каждым методом, которому важна сезонность. Оставьте пустым, чтобы использовать автоопределение.

Что такое «частота» во временных рядах? Это число наблюдений в одном естественном цикле, а не частота дискретизации в Гц. У ежемесячных данных с годовым циклом частота равна 12; у ежеквартальных — 4; у ежедневных с недельным циклом — 7. SARIMA, Холт–Винтерс, STL-декомпозиция и сезонный наивный прогноз — все используют это число, чтобы определить, что считать «одним сезоном».

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

Когда переменная времени имеет тип дата / дата-время, медианный интервал между наблюдениями определяет цикл по умолчанию:

Медианный интервал Предложенная частота Цикл
Менее часа 60 в час
Часовой 24 в сутки
Суточный 7 в неделю
Недельный 52 в год
Месячный 12 в год
Квартальный 4 в год
Годовой 1 цикл не предполагается

Когда переменная времени числовая, по умолчанию используется 1 (сезонность не предполагается) — задайте переопределение, если ваш числовой индекс имеет естественный цикл (например, 12 для синтетического месячного индекса).

Активная частота отображается под селектором в реальном времени; она же отключает строку сезонных порядков (P, D, Q) в ARIMA и ветви сезонного наивного прогноза / Холта–Винтерса / STL+ETS в гонке прогнозов, когда равна 1.

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

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

Ось времени:

  • Наблюдения — число строк, прошедших разбор времени и (для группового случая) фильтр группы
  • Используемая частота — активный сезонный период
  • Регулярность — да / нет на основе дубликатов меток и пропусков
  • Число пропусков — количество межнаблюденческих интервалов шире 1.5 × медианы
  • Дубликаты меток времени — количество интервалов нулевой ширины
  • Отброшенные строки (нераспознанное время) — строки, исключённые в самом начале

По каждой серии:

  • Пропущенные значения — количество и процент
  • Рекомендованное d (ndiffs) — число регулярных дифференцирований, рекомендованное forecast::ndiffs для достижения стационарности
  • Рекомендованное D (nsdiffs) — число сезонных дифференцирований, рекомендованное forecast::nsdiffs (только при частоте > 1)
  • λ Бокса–Кокса (авто) — оценка Геррейро для степенного преобразования, стабилизирующего дисперсию
  • Обнаружено выбросов — количество от forecast::tsoutliers. Когда оно ненулевое, появляется кнопка Применить, включающая замену выбросов в наборе преобразований для следующего запуска.

После каждого блока по серии выводится короткая рекомендация:

  • Сильный сезонный паттерн — попробуйте SARIMA или Холта–Винтерса
  • Нестационарный — попробуйте ARIMA с d ≥ 1
  • Стационарный — попробуйте экспоненциальное сглаживание или стационарную ARMA

Серии с менее чем 30 наблюдениями дополнительно получают предостережение об избыточной подгонке — SARIMA и Холт–Винтерс на коротких рядах являются классической ловушкой переподгонки.

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

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

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

  • Заменить выбросыforecast::tsoutliers определяет точки, чей остаток декомпозиции выходит за правило 3·IQR; замены берутся из локальной интерполяции. Полезно, когда отдельные всплески доминируют в подгонке, но удалять строки нежелательно.
  • Переопределение Бокса–Кокса — применяет степенное преобразование, стабилизирующее дисперсию. С пустым полем значение λ оценщик Геррейро подбирает λ автоматически. Явное задание λ (например, 0 для логарифма, 0.5 для квадратного корня, 1 для отсутствия преобразования) даёт воспроизводимый контроль. Методы, которые сами выполняют внутренний Бокс–Кокс (auto.arima, ETS), уважают это переопределение.

Карточка вывода для каждого подогнанного метода завершается однострочной сводкой Набор преобразований, перечисляющей, что было применено фактически — 2 выброс(а) заменены · Бокс–Кокс λ = 0.31 — чтобы видно было, изменили ли преобразования вход.

Когда помогает Бокс–Кокс? Когда дисперсия растёт вместе с уровнем — у ряда, чьи колебания крупнее при более высоком уровне. Логарифмическое преобразование (λ = 0) — рабочая лошадка; оценщик Геррейро выбирает что-то между логарифмом и тождественным преобразованием на основе фактической гетероскедастичности. Не применяйте его к рядам, проходящим через ноль или принимающим отрицательные значения — для них нужен предварительный сдвиг.

Ручного дифференцирования здесь нет. Предварительное дифференцирование ряда перед подачей в ETS, Тэту или Холта–Винтерса методологически некорректно — эти модели подгоняют уровень напрямую и не ожидают стационарного входа. Поэтому порядок d ARIMA вынесен в свою карточку. Набор преобразований содержит только формовые преобразования, корректно сочетающиеся с любым методом.

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

Метод Что выводит Необходимый ввод
Разведка Линейный график, АКФ / ЧАКФ, декомпозиция, тесты стационарности Время, ≥ 1 серия
Сглаживание Скользящая или экспоненциальная сглаженная кривая, наложенная на наблюдаемое Время, ≥ 1 серия
Моделирование ARIMA / SARIMA Таблица коэффициентов, информационные критерии, диагностика остатков Время, ≥ 1 серия
Прогнозирование Гонка из 7 прогнозистов с перекрёстной проверкой со скользящим окном и оценкой на отложенной выборке Время, ≥ 1 серия
Спектральный анализ / точки разрыва Топ частот периодограммы; точки разрыва Бай–Перрона Время, ≥ 1 серия

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

Разведка

Описательное представление одной или нескольких серий. Выводы (по группе × серии):

  • График серии — наблюдаемые значения по времени, с фасетами по сериям, если не включена опция Наложить на одну ось. При расчёте STL точки-аномалии остатков декомпозиции отмечаются на графике.

  • АКФ / ЧАКФ — выборочная автокорреляция и частная автокорреляция до лага по умолчанию, заданного forecast::Acf. Выявляет сериальную зависимость и помогает выбрать порядки ARIMA.

  • Декомпозиция — STL (рекомендуется), классическая аддитивная, классическая мультипликативная или пропустить:

    • STL — устойчивая, поддерживает непостоянную сезонность, возвращает компоненты тренда / сезонности / остатка плюс силу тренда и силу сезонности на шкале 0–1 (Хайндман, 2008)
    • Классическая аддитивнаянаблюдаемое = тренд + сезонность + остаток; предполагает постоянную амплитуду сезонности
    • Классическая мультипликативнаянаблюдаемое = тренд × сезонность × остаток; требует строго положительных значений
    • Пропустить — полезно, когда нужны только АКФ и вывод о стационарности
  • Тесты стационарности — любая комбинация из:

    • Расширенный Дики–Фуллер (ADF) — нулевая гипотеза = нестационарность; отвержение означает, что ряд выглядит стационарным
    • KPSS — нулевая гипотеза = стационарность; отвержение означает, что ряд выглядит нестационарным
    • Филлипса–Перрона (PP) — нулевая гипотеза = нестационарность; как ADF, но с непараметрической поправкой на сериальную корреляцию. По умолчанию выключен.

    Заключения выводятся как Стационарный при α = 0.05, Нестационарный при α = 0.05 или Неопределённый на основе p-значения и нулевой гипотезы теста. Порог α = 0.05 фиксированный; глобальная настройка отображения p-значения управляет форматированием p-значений, но не самим порогом.

  • Льюнг–Бокс на сыром ряде — однострочная сводка, отвечающая на вопрос, есть ли в ряде хоть какая-то сериальная зависимость. Значимый результат означает, что моделировать имеет смысл; незначимый — что ряд по сути является белым шумом.

  • Силы декомпозицииТренд = max(0, 1 − Var(остаток) / Var(тренд + остаток)); так же для Сезонности. Значения, близкие к 1, указывают на сильный компонент.

  • Обнаруженные сезонные периоды — независимо от заданной частоты в периодограмме ищутся все значимые циклы пошаговым g-тестом Фишера. На каждую серию выводится небольшая таблица — по строке на каждый значимый период — со столбцами:

    • Период (набл.) — длина цикла в единицах наблюдений плюс разрешение фурье-бина в виде P ± d (или ≥ P для самого длиннопериодного бина, у которого верхняя граница не ограничена)
    • Циклов на набл. — соответствующая спектральная частота
    • g Фишера — статистика теста; одновременно доля общей спектральной дисперсии, сосредоточенной в этом пике
    • Доля дисперсии — та же величина, выраженная в процентах
    • p-значение — сырое p, плюс скорректированное p, если выбран метод поправки
    • ПримечаниеГармоника от {P} (×n) для строк, чей период делит период более сильной строки на целое число ≥ 2; для фундаментальных циклов — . Гармонические строки визуально приглушены.

    Если ни один период не достигает значимости, выводится одна строка, подтверждающая это — Дополнительные значимые сезонные периоды для {имя} при α = 0.05 ({поправка}) не обнаружены — чтобы пустой случай отличался от пропущенного раздела.

  • Сводка по аномалиям — количество выбросов остатков декомпозиции, отмеченных на графике.

АКФ и ЧАКФ кратко. АКФ на лаге k — это корреляция ряда с самим собой, сдвинутым на k шагов. Медленное убывание указывает на нестационарность; одиночный большой пик на лаге 12 (при частоте 12) — на сезонность; резкий обрыв на лаге q при затухающей ЧАКФ → MA(q); зеркально — ЧАКФ обрывается на p, АКФ затухает → AR(p). Это грубые ориентиры, а не контракты.

ADF и KPSS — зачем оба? У них противоположные нулевые гипотезы. ADF отвергает, когда ряд выглядит стационарным; KPSS отвергает, когда ряд выглядит нестационарным. Согласие (оба за стационарность или оба за нестационарность) — сильный вердикт; расхождение — сигнал, что ответ зависит от того, какое описание уместнее — тренд или единичный корень, — и стоит посмотреть на дифференцированный ряд. Метка «Неопределённый» в выводе как раз и сигнализирует о таком расхождении.

Стационарность в одном абзаце. У стационарного ряда стабильное среднее, стабильная дисперсия и автокорреляция, зависящая только от лага, а не от абсолютного времени. Большая часть теории ARIMA / ARMA исходит из стационарности. Если ряд нестационарен, его дифференцируют (вычитают y[t-1] из y[t]), пока он не станет таким. Рекомендованное d в предварительной проверке — это и есть такая рекомендация.

g-тест Фишера

Таблица Обнаруженные сезонные периоды строится пошаговым g-тестом Фишера по периодограмме. На каждом шаге процедура выбирает наибольшую оставшуюся ординату, считает g = max(I_k) / sum(I_k) и берёт p-значение из замкнутой формы нулевого распределения при гипотезе белого шума. Главный лепесток пика (±2 бина) затем приглушается до медианы, и шаг повторяется — до 10 итераций или пока следующий пик не перестанет быть достойным проверки. Собранные сырые p-значения корректируются глобально выбранным методом поправки p-значений и фильтруются по уровню значимости; в таблицу попадают только выжившие.

Откуда дробные периоды вроде 22.5? Периодограмма вычисляется на фурье-частотах f_k = k / N, поэтому период пика равен N / k — дробный, когда k не делит N нацело. Аннотация ± d рядом с периодом — половина ширины бина: запись 22.7 ± 1.3 означает, что истинный цикл может лежать примерно в [21.4, 24.0]. Спектральное разрешение конечно; такая запись честно его отражает, не намекая на точность, которой в данных нет.

Гармоники — это не независимые сезоны. Несинусоидальный циклический сигнал с периодом P порождает спектральные пики не только на P, но и на P/2, P/3, P/4, … (его гармониках). Тест корректно помечает их как значимые — это реальные спектральные пики, — но они производные от одного и того же базового цикла. Столбец Примечание маркирует каждую производную строку её родителем (например, Гармоника от 45 (×3) для пика с периодом 15 при наличии более сильного пика на 45). Используйте фундаментальные строки для выбора переопределения частоты, а приглушённые гармонические — как подтверждение того, что фундаментальный пик выбран правильно.

Спектральная концентрация ≠ сила сезонности по Хайндману. Таблица Фишера — про спектральную концентрацию, то есть насколько остро периодограмма пикает на данной частоте; она считается независимо от заданной частоты. Сила сезонности, выводимая выше (когда отработала STL), — другая величина: 1 − Var(остаток) / Var(сезонность + остаток), считается на заданной частоте. У ряда может быть сильный узкий спектральный пик при умеренной Fs по Хайндману, если амплитуда сезонности заметно меняется, и наоборот.

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

Сглаживание

Подгоняет очищенную от шума кривую к каждой серии и накладывает её на наблюдаемые значения. Методы:

  • Скользящее среднее — симметричное центрированное среднее в окне размера k (по умолчанию 7). Использует поле Окно скользящего среднего, требующее значение ≥ 2, округляемое до целого.
  • Простое экспоненциальное сглаживание (SES)ets(model = "ANN"); присваивает прошлым значениям веса, убывающие по геометрической прогрессии. Подходит для рядов без тренда и сезонности.
  • Холтets(model = "AAN"); уровень + тренд, без сезонности. Используется при наличии тренда без сезонности.
  • Холт–Винтерсets(model = "AAA"); уровень + тренд + сезонность. Требует частоту > 1.

Каждая подгонка выводит:

  • График наблюдаемое vs сглаженное — наблюдаемое чёрным, сглаженное синим
  • Сводка по набору преобразований — что фактически сделали опции замены выбросов и Бокса–Кокса
  • Уведомление о пропуске — когда ряд слишком короткий для выбранного метода, частота равна 1 для Холта–Винтерса или подгонка завершилась с численной ошибкой

Скользящее среднее + Бокс–Кокс даёт кривую медианной шкалы. У скользящего среднего нет дисперсии остатка подгонки, которую можно было бы подставить в формулу поправки смещения Бокса–Кокса, поэтому обратно преобразованная кривая оказывается на шкале медианы, а не среднего. SES, Холт и Холт–Винтерс получают корректную поправку и остаются несмещёнными по среднему после обратного преобразования. Под графиками со скользящим средним + Бокс–Кокс выводится пометка «Кривая на медианной шкале», чтобы вы не интерпретировали её как оценку среднего.

Когда что выбирать: скользящее среднее — для визуального сглаживания произвольного ряда; SES — когда у ряда нет тренда и сезонности, но нужна одношаговая прогнозная оценка; Холт — при наличии тренда; Холт–Винтерс — при наличии и тренда, и сезонного паттерна. Холт–Винтерс на коротком или зашумлённом ряде почти всегда переподгоняется — откатитесь на SES или Холта и доверьте сезонность авто-ARIMA из гонки прогнозов.

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

Подгоняет ARIMA(p, d, q) — и SARIMA(p, d, q)(P, D, Q)[m] при частоте > 1 — для каждой серии.

Спецификация:

  • Авто (по умолчанию) — forecast::auto.arima. Перебирает решётку порядков по AICc с stepwise = FALSE и approximation = FALSE для тщательного поиска на малых и средних рядах.
  • Вручную — вы задаёте (p, d, q) напрямую плюс (P, D, Q), когда активная частота > 1. Сезонная строка автоматически отключается и обнуляется при частоте = 1.

Диагностика (каждая опция добавляет секцию вывода):

  • Тест Льюнга–Бокса на остатках (по умолчанию включён) — однострочная таблица с χ², df, лагом и p-значением. Значимый результат = в остатках сохранилась сериальная зависимость → модель упускает структуру.
  • АКФ остатков (по умолчанию включена) — визуальный спутник Льюнга–Бокса. Все полосы внутри пунктирных границ = остатки белого шума.
  • Нормальность остатков (Q-Q + Шапиро) (по умолчанию выключена) — Q-Q график плюс строка Шапиро–Уилка. Полезна для валидности доверительных интервалов прогноза, но не строго обязательна для точечных прогнозов ARIMA.

Вывод по каждой серии:

  • СпецификацияARIMA(p, d, q) или ARIMA(p, d, q)(P, D, Q)[m] для сезонных подгонок
  • AIC, AICc, BIC — информационные критерии, чем меньше, тем лучше
  • Логарифм правдоподобия, σ² (дисперсия остатка) — сводки подгонки
  • Таблица коэффициентов — по строке на терм: оценка, SE, z, p-значение
  • Соседние порядки (информационные критерии) — только в ручном режиме. Перечисляет ИК для каждого порядка в небольшой решётке вокруг выбранного, отсортированной по AICc, с выбранной строкой жирным шрифтом. Используйте, чтобы проверить, не далеко ли ваш ручной выбор от оптимума по AICc; большие разрывы ИК — сигнал переключиться на Авто.
  • Наблюдаемое vs подогнанное — график
  • АКФ остатков / Льюнг–Бокс / Q-Q + Шапиро — секции, когда соответствующие опции включены
  • Сводка по набору преобразований в конце

AIC, AICc, BIC кратко. Все три вознаграждают качество подгонки и штрафуют сложность, но расходятся в том, как именно. AIC ≈ качество подгонки со штрафом за число параметров; AICc — это AIC с поправкой для малых выборок (применяйте, когда n / число параметров < 40, что во временных рядах почти всегда); BIC штрафует сложность жёстче и склонен выбирать меньшие модели. Меньшее значение лучше для всех трёх. Решётка AICc в таблице Соседние порядки — это именно то, что оптимизирует сам auto.arima.

Чтение спецификации SARIMA. ARIMA(0, 1, 1)(0, 1, 1)[12] означает: регулярное дифференцирование первого порядка, сезонное дифференцирование первого порядка с периодом 12, один MA-член в регулярной части, один MA-член в сезонной. [m] в скобках — сезонный период. Знаменитая «авиа-модель» — именно такая.

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

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

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

Гоняемые методы:

Ключ Метод Замечания
naive Наивный Последнее наблюдённое значение переносится вперёд; базовый «ничего не делать»
drift Дрейф Наивный плюс линейный тренд через первое и последнее наблюдения
snaive Сезонный наивный Последнее значение того же сезона; только при частоте > 1
ets ETS Автоматическое экспоненциальное сглаживание, выбирает форму ошибка / тренд / сезонность по AICc
autoarima Авто-ARIMA auto.arima по той же решётке, что и в карточке ARIMA
theta Тэта Декомпозиция в духе Ассуада + SES; конкурентен на M3 / M4
stlf STL + ETS STL-декомпозиция, затем ETS на сезонно-скорректированном ряде; только при частоте > 1

Параметры:

  • Горизонт (по умолчанию 12) — число будущих периодов для прогноза
  • Оценка на отложенной выборке (по умолчанию включено) — отделяет последние min(2 × горизонт, ⌊n / 3⌋) наблюдений в валидационный набор, переобучает каждый метод на обучающей части и сообщает RMSE / MAE на отложенной выборке. Автоматически отключается, когда ряд слишком короток для оставления пригодного обучающего набора.
  • Перекрёстная проверка со скользящим окном (по умолчанию включено, по умолчанию 5 окон, диапазон 2–20) — сдвигает обучающее окно вперёд, переобучает в каждой точке и усредняет RMSE / MAE по точкам. Надёжнее одиночной отложенной выборки на коротких рядах.
  • Отметить выбросы внутри выборки (3·MAD) (по умолчанию включено) — точки, чей внутрирядовой остаток превышает 3 × медианное абсолютное отклонение, помечаются на графике.

Каждая серия выводит:

  • График прогноза — наблюдаемые значения + средняя линия активного метода и полоса интервала предсказания, нарисованные на расширенной оси времени. Для месячного / квартального / годового шага используются календарно-осмысленные будущие метки времени (так что «1 февраля, 1 марта, 1 апреля» остаются выровненными вместо дрейфа из-за шага в медианных миллисекундах).
  • Сводка по валидации — одна строка: число окон CV × горизонт и/или размер отложенной выборки. Когда запрошенное число окон не удалось достичь (обучение слишком разрежено, подгонки не сошлись), фактическое vs запрошенное число выводится явно.
  • Таблица ранжирования гонки — по строке на метод с рангом, ярлыком, RMSE (CV), RMSE (отлож.), MAE (CV), MAE (отлож.) и кнопкой Использовать. По умолчанию активным становится метод 1-го ранга; нажмите Использовать на другой строке, чтобы сменить активный прогноз на графике без перезапуска анализа. Методы, не сумевшие подогнаться, показывают в столбце ранга и Не удалось вместо кнопки.
  • Сводка по набору преобразований в конце

RMSE и MAE. Обе меряют ошибку прогноза; разница в том, как они относятся к крупным промахам. RMSE возводит ошибки в квадрат до усреднения — диспропорционально штрафует крупные ошибки. MAE усредняет абсолютные ошибки — это средний промах в исходных единицах. Используйте RMSE, когда отдельные крупные промахи очень дороги; MAE — когда нужно типичное число ошибки, которое можно процитировать в обычной речи.

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

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

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

Инструменты частотной области и структурных разрывов. Включите хотя бы один из двух флажков — оба выключены блокируют отправку с уведомлением.

Периодограмма (по умолчанию включена):

  • Сглаженная оценка спектральной плотности из stats::spectrum
  • Таблица топ-частот с наибольшей мощностью со столбцами:
    • Период (наблюдения)1 / частота, в единицах наблюдений
    • Частота (циклы/набл.) — сырая спектральная частота
    • Спектральная мощность — относительная мощность на этой частоте
  • Пропускается, если в ряде менее 8 наблюдений

Точки разрыва Бай–Перрона (по умолчанию выключены):

  • Поиск точек разрыва среднего через strucchange::breakpoints
  • График точек разрыва с рядом, вертикальными пунктирными линиями на каждой точке разрыва и горизонтальными линиями средних значений сегментов
  • Таблица точек разрыва со столбцами: индекс строки, значение времени, среднее до и среднее после каждой точки
  • Сообщает Точки разрыва не обнаружены — среднее ряда стабильно, если ничего не найдено
  • Требует пакет strucchange (если его не удалось загрузить, выводится предупреждение) и не менее 20 наблюдений

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

Точки разрыва Бай–Перрона обнаруживают сдвиги уровня среднего ряда — отвечают на вопрос «сдвинулось ли среднее в дату X?», а не «изменился ли тренд или сезонность?». Применяйте их к остатку после удаления тренда и сезонности, если хотите помечать аномалии в динамике, а не в уровне. Даты выводятся из вашей переменной времени (ГГГГ-ММ-ДД для оси-даты; числовые иначе).

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

Методам временных рядов нужен регулярно расположенный числовой вектор, поэтому ряд предобрабатывающих шагов выполняется молча:

  • Сбой разбора времени — строки, чьё значение времени не разобралось как число или не распознано Date.parse, отбрасываются до всего остального. Считаются в выводе как Отброшенные строки (нераспознанное время).
  • Внутренняя интерполяцияforecast::ndiffs, nsdiffs, АКФ / ЧАКФ и тесты стационарности не переносят NA, поэтому серии с пропусками линейно интерполируются через forecast::na.interp только для этих тестов. В вывод разведки добавляется пометка {n} пропущенное значение(й) интерполировано в {имя}. Исходный ряд сохраняется для построения графиков и моделирования — ARIMA, ETS и методы сглаживания умеют обращаться с NA напрямую.
  • Замена выбросов — только когда включена опция Заменить выбросы в наборе преобразований. Иначе выбросы передаются в модель как есть.

Глобальная настройка пропусков не применяется здесь — анализ временных рядов требует сохранения исходной формы ряда, а специальное удаление по строкам / по парам сломало бы временной индекс.

Чек-лист отчёта

Метод:

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

Результаты:

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

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

Каждый анализ выводит соответствующий R-код в консоль R — его можно изучать, копировать и повторно запускать. Модуль использует forecast (декомпозиция, тесты стационарности, ndiffs / nsdiffs, ETS, авто-ARIMA, Тэта, STL+ETS, tsoutliers, na.interp), stats (spectrum / периодограмма, ACF / PACF) и strucchange (точки разрыва Бай–Перрона). Фиксированный порог α для вердиктов стационарности равен 0.05; форматирование p-значения следует глобальной настройке p-значения, а настройка уровня доверия применяется к интервалам предсказания прогноза. Ссылки на пакеты, которые действительно использовались в анализе, автоматически появляются в начале раздела результатов.

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

Неверная спецификация частоты. Частота — это число наблюдений в одном цикле, а не частота дискретизации. Выбор 365 для суточных данных с годовым циклом корректен; выбор 1 молча отключает сезонный наивный, Холта–Винтерса, STL+ETS и сезонную часть (P, D, Q) SARIMA. Подсказка под селектором времени покрывает типичные случаи — переопределяйте только при нестандартном цикле.

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

Чтение ADF или KPSS как если бы α = 0.05 ставило точку. Оба теста имеют низкую мощность на рядах, близких к единичному корню. Не-отвержение — это не доказательство стационарности; это неудача в отвержении. Используйте рекомендованное d из предварительной проверки, визуальное затухание АКФ и содержательное знание о ряде — не опирайтесь на одно p-значение.

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

Интерпретация пиков периодограммы на глаз как значимых. Таблица топ-частот в карточке спектрального анализа — описательная: высоты пиков ни с какой нулевой гипотезой не сравниваются. Пик, «явно выше остальных», может быть выборочным артефактом, особенно на рядах короче нескольких сотен наблюдений. Запустите Разведку для формального g-теста Фишера, который сразу выводит значимые периоды и помечает гармоники. Сверка с АКФ тоже не помешает — если тот же период проявился и там, основание твёрже.

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