Холта-Винтерса для многосезонного прогнозирования на Python

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

(Используя holt-winters, как я обнаружил здесь: https://gist.github.com/andrequeiroz/5888967)

Я запустил алгоритм, используя 24 в качестве своих периодов на сезон и прогнозируя 7 сезонов (1 неделю), я заметил, что он будет завышать прогноз по будним дням и занижать прогноз на выходные, так как он оценивает кривую субботы на основе кривой пятницы и не комбинация кривой пятницы и кривой субботы (t-1). Как лучше всего включить в мои данные вторичный период, например, 24 и 7? Это другой алгоритм, который я должен использовать?


person user1152532    schedule 10.09.2014    source источник


Ответы (1)


Один из очевидных способов учесть различные формы - использовать только один вид периода, но сделать его периодичностью 7 * 24, так что вы будете прогнозировать всю неделю как одну форму.

Вы пробовали линейную регрессию, в которой прогнозируемое значение представляет собой линейный тренд плюс вклад фиктивных переменных? Самый простой пример для объяснения - это тренд плюс только ежедневный вклад. Тогда у вас было бы

Y = X * t + c + A * D1 + B * D2 + ... F * D6 (+ шум)

Здесь вы используете линейную регрессию, чтобы найти наиболее подходящие значения X, c и A ... F. t - это время с отсчетом 0, 1, 2, 3, ... до бесконечности, поэтому подобранное значение X дает вам тенденцию. c - постоянное значение, поэтому оно перемещает все предсказанные Y вверх или вниз. D1 устанавливается в 1 по вторникам и 0 в противном случае, D2 устанавливается в 1 по средам и 0 в противном случае ... D6 устанавливается в 1 по воскресеньям и 0 в противном случае, поэтому условия A..F дают взносы в дни, отличные от понедельника. Мы не подходим термину для понедельника, потому что если бы мы это сделали, мы не смогли бы различить термин c - если бы вы прибавили 1 к c и вычли бы по одному из каждого из A..F, прогнозы не изменились бы.

Надеюсь, теперь вы видите, что мы можем добавить 23 термина для учета формы для 24 часов каждого дня и в общей сложности 46 терминов для учета формы для 24 часов каждого рабочего дня и различных 24 часов каждого выходного дня. день.

Лучше всего поискать статистический пакет для решения этой проблемы, например бесплатный пакет R (http://www.r-project.org/). У него есть некоторая кривая обучения, но вы, вероятно, можете найти книги или статьи, которые помогут вам использовать его только для такого рода предсказаний.

Что бы вы ни делали, я бы продолжал сверять методы прогнозирования с вашими историческими данными - люди обнаружили, что наиболее точные методы прогнозирования на практике часто на удивление просты.

person mcdowella    schedule 11.09.2014