StatsForecast предлагает коллекцию широко используемых моделей прогнозирования одномерных временных рядов, включая автоматическое моделирование ARIMA
, ETS
, CES
и Theta
, оптимизированное для высокой производительности с использованием numba
. Он также включает в себя большой набор моделей для сравнительного анализа.
Вы можете установить StatsForecast
с помощью:
pip install statsforecast
или
conda install - c conda - forge statsforecast
Дополнительные инструкции см. в нашем руководстве по установке.
Минимальный пример
from statsforecast import StatsForecast
from statsforecast . models import AutoARIMA
from statsforecast . utils import AirPassengersDF
df = AirPassengersDF
sf = StatsForecast (
models = [ AutoARIMA ( season_length = 12 )],
freq = 'ME' ,
)
sf . fit ( df )
sf . predict ( h = 12 , level = [ 95 ])
Начните работу с этим кратким руководством.
Следуйте этому комплексному пошаговому руководству, чтобы ознакомиться с лучшими практиками.
Текущие альтернативы Python для статистических моделей медленны, неточны и плохо масштабируются. Поэтому мы создали библиотеку, которую можно использовать для прогнозирования в производственных средах или в качестве эталонов. StatsForecast
включает в себя обширный набор моделей, которые могут эффективно соответствовать миллионам временных рядов.
AutoARIMA
, AutoETS
, AutoCES
, MSTL
и Theta
на Python..fit
и .predict
. exogenous variables
и prediction intervals
для ARIMA.pmdarima
.R
Prophet
.statsmodels
.numba
.Что-то не хватает? Пожалуйста, откройте вопрос или напишите нам в
Комплексное пошаговое руководство: обучение, оценка и выбор модели для нескольких временных рядов
? Обнаружение аномалий: обнаружение аномалий во временных рядах с использованием интервалов прогнозирования в выборке.
?? Перекрестная проверка: надежная оценка производительности модели.
❄️ Множественная сезонность: как прогнозировать данные с множественной сезонностью с помощью MSTL.
? Прогнозирование пиков спроса: прогнозирование нагрузки на электроэнергию для выявления ежедневных пиков и снижения счетов за электроэнергию.
? Прерывистый спрос: серия прогнозов с очень небольшим количеством ненулевых наблюдений.
?️ Экзогенные регрессоры: например, погода или цены.
Инструменты автоматического прогнозирования ищут наилучшие параметры и выбирают наилучшую возможную модель для группы временных рядов. Эти инструменты полезны для больших коллекций одномерных временных рядов.
Модель | Прогноз очков | Вероятностный прогноз | Пример подобранных значений | Вероятностные подобранные значения | Экзогенные особенности |
---|---|---|---|---|---|
АвтоАРИМА | ✅ | ✅ | ✅ | ✅ | ✅ |
АвтоЕТС | ✅ | ✅ | ✅ | ✅ | |
АвтоCES | ✅ | ✅ | ✅ | ✅ | |
АвтоТета | ✅ | ✅ | ✅ | ✅ | |
АвтоМФЛЕС | ✅ | ✅ | ✅ | ✅ | ✅ |
АвтоТБАТС | ✅ | ✅ | ✅ | ✅ |
Эти модели используют существующие автокорреляции во временных рядах.
Модель | Прогноз очков | Вероятностный прогноз | Пример подобранных значений | Вероятностные подобранные значения | Экзогенные особенности |
---|---|---|---|---|---|
АРИМА | ✅ | ✅ | ✅ | ✅ | ✅ |
Авторегрессивный | ✅ | ✅ | ✅ | ✅ | ✅ |
Сопоставьте две тета-линии с десезонным временным рядом, используя разные методы для получения и объединения двух тета-линий для получения окончательных прогнозов.
Модель | Прогноз очков | Вероятностный прогноз | Пример подобранных значений | Вероятностные подобранные значения | Экзогенные особенности |
---|---|---|---|---|---|
Тета | ✅ | ✅ | ✅ | ✅ | |
ОптимизированныйTheta | ✅ | ✅ | ✅ | ✅ | |
ДинамическаяТета | ✅ | ✅ | ✅ | ✅ | |
ДинамическийОптимизированныйТета | ✅ | ✅ | ✅ | ✅ |
Подходит для сигналов с более чем одной четкой сезонностью. Полезно для низкочастотных данных, таких как электричество и журналы.
Модель | Прогноз очков | Вероятностный прогноз | Пример подобранных значений | Вероятностные подобранные значения | Экзогенные особенности |
---|---|---|---|---|---|
МСТЛ | ✅ | ✅ | ✅ | ✅ | Если прогнозист трендов поддерживает |
МФЛЕС | ✅ | ✅ | ✅ | ✅ | ✅ |
ТБАТС | ✅ | ✅ | ✅ | ✅ |
Подходит для моделирования временных рядов, которые демонстрируют непостоянную волатильность во времени. Модель ARCH является частным случаем GARCH.
Модель | Прогноз очков | Вероятностный прогноз | Пример подобранных значений | Вероятностные подобранные значения | Экзогенные особенности |
---|---|---|---|---|---|
ГАРЧ | ✅ | ✅ | ✅ | ✅ | |
АРКА | ✅ | ✅ | ✅ | ✅ |
Классические модели для установления базовой линии.
Модель | Прогноз очков | Вероятностный прогноз | Пример подобранных значений | Вероятностные подобранные значения | Экзогенные особенности |
---|---|---|---|---|---|
ИсторическийСредний | ✅ | ✅ | ✅ | ✅ | |
Наивный | ✅ | ✅ | ✅ | ✅ | |
Случайная прогулка с дрейфом | ✅ | ✅ | ✅ | ✅ | |
СезонныйНаивный | ✅ | ✅ | ✅ | ✅ | |
ОкноСреднее | ✅ | ||||
СезонныйОкноСредний | ✅ |
Использует средневзвешенное значение всех прошлых наблюдений, где веса экспоненциально уменьшаются в прошлом. Подходит для данных с четкой тенденцией и/или сезонностью. Используйте семейство SimpleExponential
для данных без четкой тенденции или сезонности.
Модель | Прогноз очков | Вероятностный прогноз | Пример подобранных значений | Вероятностные подобранные значения | Экзогенные особенности |
---|---|---|---|---|---|
ПростоеЭкспоненциальноеСглаживание | ✅ | ||||
ПростоеЭкспоненциальноеСглаживаниеОптимизированное | ✅ | ||||
СезонныйЭкспоненциальныйСглаживание | ✅ | ||||
СезонныйЭкспоненциальныйСглаживаниеОптимизированный | ✅ | ||||
Холт | ✅ | ✅ | ✅ | ✅ | |
ХолтВинтерс | ✅ | ✅ | ✅ | ✅ |
Подходит для серий с очень небольшим количеством ненулевых наблюдений.
Модель | Прогноз очков | Вероятностный прогноз | Пример подобранных значений | Вероятностные подобранные значения | Экзогенные особенности |
---|---|---|---|---|---|
АДИДА | ✅ | ✅ | ✅ | ||
КростонКлассик | ✅ | ✅ | ✅ | ||
CrostonОптимизированный | ✅ | ✅ | ✅ | ||
КростонSBA | ✅ | ✅ | ✅ | ||
ИМАПА | ✅ | ✅ | ✅ | ||
БСЭ | ✅ | ✅ | ✅ |
См. CONTRIBUTING.md.
@misc { garza2022statsforecast ,
author = { Azul Garza, Max Mergenthaler Canseco, Cristian Challú, Kin G. Olivares } ,
title = { {StatsForecast}: Lightning fast forecasting with statistical and econometric models } ,
year = { 2022 } ,
howpublished = { {PyCon} Salt Lake City, Utah, US 2022 } ,
url = { https://github.com/Nixtla/statsforecast }
}
Спасибо этим замечательным людям (ключ смайлика):
лазурный ? | Хосе Моралес ? | Сугато Рэй | Джефф Тэкс ? | даринист ? | Алек Хельяр | Дэйв Хиршфельд |
мергенталер | Родственник | Ясслайт90 ? | asinig ? | Филип Гилиссен | Себастьян Хагн ? | Хан Ван |
Бен Джеффри ? | Белявский | Мариана Менчеро Гарсия | Нихил Гупта ? | Джей Ди ? | Джош Аттенберг | ЙерунПитерБос |
Йерун Ван дер Донкт | Роймпрог | Нельсон Карденас Боланьо | Кайл Шмаус | Акмаль Солиев | Ник То | Кевин Хо |
Ибен Хуан | Эндрю Гросс | таниишкааа | Мануэль Кальцолари |
Этот проект соответствует спецификации всех участников. Любой вклад приветствуется!