Я пытаюсь использовать эту реализацию алгоритма Holt-Winters для прогнозирования временных рядов на Python, но столкнулся с контрольно-пропускным пунктом... в основном, для некоторых рядов (положительных) входов он иногда прогнозирует отрицательные числа, что явно не так. Даже если прогнозы не являются отрицательными, они иногда дико неточны - на порядок выше/ниже, чем они должны быть. Предоставление алгоритма большего количества периодов данных для работы не помогает, и на самом деле часто делает прогноз хуже.
Данные, которые я использую, имеют следующие характеристики, которые могут быть проблемы:
-
Очень часто сэмплированные (по одной точке данных каждые 15 минут, в отличие от ежемесячных данных, как пример) - но из того, что я прочитал, алгоритм Holt-Winters не должен иметь проблемы с этим. Возможно, это указывает на проблему с реализацией?
-
Имеет многократные периодичности - есть ежедневные пики (т.е. каждые 96 точек данных), а также еженедельный цикл выходных данных, значительно ниже, чем данные в будние дни - например, будние дни могут достигать около 4000, а выходные дни - на 1000 - но даже когда я даю только данные по будним дням, я сталкиваюсь с проблемой отрицательного числа.
Есть ли что-то, чего мне не хватает ни в реализации, ни в моем использовании алгоритма Holt-Winters вообще? Я не статистик, поэтому я использую "значения по умолчанию" альфа, бета и гамма, указанные в ссылке выше, - это, вероятно, проблема, и есть ли лучший способ рассчитать эти значения?
Или... есть ли лучший алгоритм для использования здесь, чем Холт-Винтерс? В конечном итоге я просто хочу создать разумные прогнозы из исторических данных. Я пробовал одно- и двухэкспоненциальное сглаживание, но (насколько я понимаю) не поддерживает периодичность в данных.
Любая помощь/ввод будет с благодарностью!