statespace.Модель SARIMAX: почему модель использует все данные для режима обучения и предсказывает диапазон модели поезда
я следовал учебнику для изучения модели SARIMAX: https://www.digitalocean.com/community/tutorials/a-guide-to-time-series-forecasting-with-arima-in-python-3 - ... Диапазон дат данных-1958-2001 годы.
mod = sm.tsa.statespace.SARIMAX(y,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12),
enforce_stationarity=False,
enforce_invertibility=False)
results = mod.fit()
когда подходят модели временных рядов ARIMA, я нашел автора всех данных диапазона дат, чтобы соответствовать параметру модели. Но при проверке прогнозов автор использовал дату начала 1998-01-01 как часть диапазона дат данных для подгонки модели.
pred = results.get_prediction(start=pd.to_datetime('1998-01-01'), dynamic=False)
Я знаю, что в модели машинного обучения данные обучения и данные проверки(теста) отличаются, я имею в виду другой диапазон. Я имею в виду, что автор прав? почему это нравится(я имею в виду причину touse всех данных поезда), я новый для модели SARIMAX.
не могли бы вы, ребята, рассказать мне больше об этой модели, например, как предсказать дни или недели не только месяц, я имею в виду, как установить параметр order=(1,1,1), seasonal_order=(1, 1, 1, 12). Спасибо!
1 ответов
автор прав. Когда вы делаете регрессию (линейную, более высокого порядка или логистическую-не имеет значения) - абсолютно нормально иметь отклонения от ваших данных обучения (например, логистическая регрессия даже на данных обучения может дать вам ложноположительный).
то же самое означает временные ряды. Я думаю, что таким образом автор хотел показать, что модель построена правильно.
seasonal_order=(1, 1, 1, 12)
Если вы посмотрите на статистику tsa документация вы увидите, что если вы хотите работать с квартальными данными - вам нужно назначить последний параметр (ы) - значение 4. Ежемесячно - 12. Это означает, что если вы хотите работать с еженедельными данными seasonal_order должен выглядеть так
seasonal_order=(1, 1, 1, 52)
ежедневные данные будут
seasonal_order=(1, 1, 1, 365)
компонент order-это параметр, который отвечает за несезонные параметры p, d и q соответственно. Вы должны найти их в зависимости от вашего поведения
- p. Вы можете интерпретировать его как wether оказывает влияние на . Или, другими словами, если у вас есть ежедневные данные, а p-6, Вы можете понять это, как данные во вторник будут влиять на данные в воскресенье.
- d. Параметр дифференцирования. Он определяет уровень интеграции процесса. Это означает, сколько раз вы должны применять временные ряды разностный оператор для того, чтобы сделать ваш временной ряд стационарным
- q. Вы можете интерпретировать это как многие предыдущие шумы (ошибки) влияют на текущее значение
вот хороший ответ как вы можете найти несезонные значения компонентов