Я хочу определить сезонность в данных, которые я получаю. Есть некоторые методы, которые я нашел, такие как сезонный подсерийный график и график автокорреляции, но дело в том, что я не понимаю, как читать график, кто-нибудь может помочь? Другое дело, есть ли другие методы для определения сезонности с или без окончательного результата на графике?
time-series
seasonality
Даниал
источник
источник
Ответы:
Действительно хороший способ найти периодичность в любой регулярной серии данных - это проверить спектр ее мощности после устранения любой общей тенденции . (Это хорошо подходит для автоматического скрининга, когда общая мощность нормализуется до стандартного значения, такого как единица.) Предварительное удаление тренда (и необязательное различие для удаления последовательной корреляции) необходимо, чтобы избежать смешивания периодов с другими видами поведения.
Спектр мощности представляет собой дискретное преобразование Фурье функции автоковариации соответственно сглаженной версии исходного ряда. Если вы думаете о временных рядах как о выборке физической формы волны, вы можете оценить, какая часть полной мощности волны передается на каждой частоте. Спектр мощности (или периодограмма ) показывает зависимость мощности от частоты. Циклические (то есть повторяющиеся или сезонные модели) будут отображаться в виде больших пиков, расположенных на своих частотах.
В качестве примера рассмотрим этот (смоделированный) временной ряд остатков от ежедневного измерения, проведенного за один год (365 значений).
Вот еще один график с теми же данными, нарисованный, чтобы помочь нам увидеть возможные периодические модели.
Если вы выглядите очень усердно, вы можете различить шумный, но повторяющийся паттерн, который встречается 11-12 раз. Длинные последовательности значений выше нуля и ниже нуля, по крайней мере, предполагают некоторую положительную автокорреляцию, показывая, что этот ряд не является полностью случайным.
Вот периодограмма, показанная для частот до 91 (одна четверть общей длины серии). Он был построен с окном Уэлча и нормирован на единицу площади (для всей периодограммы, а не только для части, показанной здесь).
Мощность выглядит как «белый шум» (небольшие случайные колебания) плюс два заметных пика. Их трудно пропустить, не так ли? Большее происходит в период 12, а меньшее - в 52. Таким образом, этот метод обнаружил в этих данных месячный цикл и недельный цикл. Это действительно все, что нужно сделать. Чтобы автоматизировать обнаружение циклов («сезонность»), просто отсканируйте периодограмму (которая представляет собой список значений) для относительно больших локальных максимумов.
Пришло время раскрыть, как эти данные были созданы.
Значения генерируются из суммы двух синусоидальных волн, одна с частотой 12 (квадрат амплитуды 3/4) и другая с частотой 52 (квадрат амплитуды 1/4). Это то, что обнаружены пики на периодограмме. Их сумма показана в виде толстой черной кривой. Iid Затем был добавлен нормальный дисперсионный шум 2, как показано светло-серыми полосами, простирающимися от черной кривой до красных точек. Этот шум привел низкоуровневые покачивания внизу периодограммы, которые в противном случае были бы просто равны 0. Полностью две трети общего изменения значений непериодичны и случайны, что очень шумно: поэтому так сложно разглядеть периодичность, просто посмотрев на точки. Тем не менее (отчасти потому, что данных так много) найти частоты с помощью периодограммы легко, и результат очевиден.
Инструкции и полезные советы по вычислению периодограмм появляются на сайте « Числовые рецепты» : ищите раздел «Оценка спектра мощности с использованием БПФ».
R
имеет код для оценки периодограммы . Эти иллюстрации были созданы в Mathematica 8; периодограмма была вычислена с помощью функции «Фурье».источник
Вот пример использования ежемесячных данных о регистрации заявок на пособие по безработице из города в Нью-Джерси (из Stata, только потому, что я проанализировал эти данные изначально).
Высоты линий указывают на корреляцию между переменной и ее лагом; серая область дает вам представление о том, является ли эта корреляция значимой (этот диапазон является лишь ориентировочным и не самым надежным способом проверки значимости). Если эта корреляция высока, есть свидетельства последовательной корреляции. Обратите внимание на «горбы», возникающие в периоды 12, 24 и 36. Поскольку это ежемесячные данные, это говорит о том, что корреляция усиливается, если вы посмотрите на периоды ровно 1, 2 или 3 года назад. Это свидетельствует о месячной сезонности.
Вы можете проверить эти отношения статистически, регрессируя переменную на фиктивных переменных, указывающих компонент сезонности - здесь, фиктивные месячные. Вы можете проверить совместную значимость этих манекенов для проверки сезонности.
Эта процедура не совсем правильная, так как тест требует, чтобы термины ошибок не были последовательно коррелированы. Итак, перед тестированием этих манекенов сезонности нам необходимо удалить оставшуюся последовательную корреляцию (обычно путем включения лагов переменной). Могут быть импульсы, разрывы и другие проблемы с временными рядами, которые также необходимо исправить, чтобы получить соответствующие результаты теста. Вы не спрашивали об этом, поэтому я не буду вдаваться в детали (к тому же, по этим темам есть много вопросов по резюме). (Просто для того, чтобы удовлетворить ваше любопытство, эта серия требует месячных манекенов, отдельного лага и компонента смены, чтобы избавиться от последовательной корреляции.)
источник
Сезонность может и часто меняется со временем, поэтому сводные показатели могут быть совершенно неадекватными для определения структуры. Нужно проверить на кратковременность коэффициентов ARIMA и часто изменения в «сезонных манекенах». Например, в 10-летнем горизонте, возможно, не было эффекта июня в течение первых k лет, но в последние 10 тысяч лет есть свидетельства эффекта июня. Простой составной эффект июня может быть несущественным, так как эффект не был постоянным во времени. Аналогичным образом сезонный компонент ARIMA также мог измениться. Следует позаботиться о том, чтобы включить изменения локального уровня и / или тенденции местного времени, обеспечивая при этом постоянство дисперсии ошибок с течением времени. Не следует оценивать такие преобразования, как GLS / взвешенные наименьшие квадраты или степенные преобразования, такие как бревна / квадратные корни и т. Д. на исходных данных, но на ошибках предварительной модели. Предположения Гаусса не имеют ничего общего с наблюдаемыми данными, а связаны с ошибками модели. Это связано с основами статистических тестов, в которых используется отношение нецентральной переменной хи-квадрат к центральной переменной хи-квадрат.
Если вы хотите опубликовать серию примеров из вашего мира, я был бы рад предоставить вам и списку подробный анализ, ведущий к выявлению сезонной структуры.
источник
Ответ Чарли хорош, и с этого я и начну. Если вы не хотите использовать графики ACF, вы можете создать фиктивные переменные k-1 для k имеющихся периодов времени. Затем вы можете увидеть, являются ли фиктивные переменные значимыми в регрессии с фиктивными переменными (и, вероятно, трендовым термином).
Если ваши данные ежеквартальные: фиктивный Q2 равен 1, если это второй квартал, иначе 0 фиктивный Q3 равен 1, если это третий квартал, иначе 0 фиктивный Q4 равен 1, если это четвертый квартал, иначе 0 квартал 1 примечания является базовый вариант (все 3 манекена ноль)
Возможно, вы захотите также проверить «декомпозицию временных рядов» в Minitab, часто называемую «классической декомпозицией». В конце концов, вы можете использовать что-то более современное, но это простое место для начала.
источник
Я хотел бы воспользоваться предложением помощи от пользователя IrishStat или кого-либо еще в моей серии примеров из реальной жизни. Я пытаюсь составить сезонный индекс на основе последних 5 лет цен на фьючерсы на сырую нефть. Мне удалось произвести простые средние сезонные, которые можно посмотреть здесь .
Однако я хотел бы воспроизвести скользящий годовой сезонный график (я предполагаю, что скользящий означает, что начало и конец года - это одно и то же значение) и имеет шкалу от нуля до 100, как показано на рисунке ниже:
Theres 15 лет ежедневных данных об уровне цен в электронной таблице, которые можно загрузить. Пример или любой намек на то, как достичь вышеизложенного, будет принята с благодарностью.
источник
Я немного новичок в R, но мое понимание функции ACF состоит в том, что если вертикальная линия идет выше верхней пунктирной линии или ниже нижней пунктирной линии, то есть некоторая авторегрессия (включая сезонность). Попробуйте создать вектор синуса
источник