Внутривыборочные прогнозы модели SARIMAX для различных переменных ExogPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Внутривыборочные прогнозы модели SARIMAX для различных переменных Exog

Сообщение Anonymous »

Я работаю с моделью SARIMAX, обученной на заданном наборе данных. Я пытаюсь получить прогноз внутри выборки, но использую разные значения для переменных exog. Это необходимо для проверки того, как прогноз изменится по отношению к фактическим значениям при изменении переменной exog. Вот минимальный воспроизводимый код:

Код: Выделить всё

import numpy as np
import pandas as pd
from scipy.stats import norm
import statsmodels.api as sm
import matplotlib.pyplot as plt
from datetime import datetime
import requests
from io import BytesIO

# Dataset
friedman2 = requests.get('https://www.stata-press.com/data/r12/friedman2.dta').content
data = pd.read_stata(BytesIO(friedman2))
data.index = data.time
data.index.freq = "QS-OCT"

# Variables
endog = data.loc['1959':'1981', 'consump']
exog = sm.add_constant(data.loc['1959':'1981', 'm2'])

# Fit the model
mod = sm.tsa.statespace.SARIMAX(endog, exog, order=(1,0,1))
res = mod.fit(disp=False)

# Create changed exog variables for in-sample dates
exog_test1 = exog.loc['1980-10-01':'1981-10-01']
exog_test1.loc[:, 'm2'] = 1000
exog_test2 = exog.loc['1980-10-01':'1981-10-01']

# Compare predictions with actuals
display(endog.tail())
display(res.fittedvalues['1980-10-01':'1981-10-01'])
display(res.get_prediction(start='1980-10-01', end='1981-10-01', dynamic=True, exog=exog_test1).predicted_mean)
display(res.get_prediction(start='1980-10-01', end='1981-10-01', dynamic=True, exog=exog_test2).predicted_mean)
Изображение
Изображение
Изображение

Из результатов видно, что функция get_prediction() действительно предоставляет фактический прогноз, начиная с 1 октября 1980 г., поскольку значения отличаются от установленные значения. Однако прогноз абсолютно одинаков для обеих переменных exog. Как я могу получить прогноз, в котором используются обновленные значения exog?

Подробнее здесь: https://stackoverflow.com/questions/792 ... g-variable
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»