2014-09-10 1 views
2

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

(Использование Холт-зим, как я нашел здесь обнаружены: https://gist.github.com/andrequeiroz/5888967)

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

ответ

3

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

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

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

Здесь используется линейная регрессия, чтобы найти наиболее подходящие значения X, c и A ... F. t - время, подсчитывая 0, 1, 2, 3, ... неопределенно, поэтому установленное значение X дает вам тренд. c - постоянное значение, поэтому он перемещает все предсказанные Ys вверх или вниз. 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/). У него есть немного кривая обучения, но вы, вероятно, можете найти книги или статьи, в которых вы можете использовать его для такого рода прогнозирования.

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

Смежные вопросы