Любой способ для группового прогноза с несколькими переменными? (питон)
Я пытался использовать многомерный прогноз VAR для экономического анализа. У меня есть финансовые данные за 20 банковских кварталов с 2010 по 2021 год с соответствующими квартальными макроданными.
- Я попробовал многомерный прогноз VAR, но он не сработал, так как у меня есть 20 данных на каждую дату.
- Я пробовал сгруппированный/иерархический авто-АРИМ, но это не сработало, так как мне нужен многомерный прогноз.
это мои коды, соответствующие номеру 1. Я предпочитаю прогноз VAR, но могу изменить модели, если они более уместны.
import pandas as pd
import numpy as np`
import matplotlib.pyplot as plt
%matplotlib inline
from statsmodels.tsa.api import VAR
from statsmodels.tsa.stattools import adfuller
from statsmodels.tools.eval_measures import rmse, aic
data = pd.read_csv('last.csv', parse_dates=['quarter'], index_col='quarter')
dff = data[["npl", "nom_gdp","kospi", "cpi", "avgex","interest", "m2", "lnasset", "bis", "nim", "lnlend"]]
df = data[["npl", "nom_gdp","kospi", "cpi", "avgex","interest", "m2", "nim"]]
nobs = 10
df_train, df_test = df[0:-nobs], df[-nobs:]
df_differenced = df_train.diff().dropna()
model = VAR(df_differenced)
model_fitted = model.fit(4)
model_fitted.summary()
fc = model_fitted.forecast(y=forecast_input, steps=nobs)
df_forecast = pd.DataFrame(fc, index=df.index[-nobs:], columns=df.columns + '_1q')
df_forecast
def invert_transformation(df_train, df_forecast, second_diff=False):
"""Revert back the differencing to get the forecast to original scale."""
df_fc = df_forecast.copy()
columns = df_train.columns
for col in columns:
df_fc[str(col)+'_forecast'] = df_train[col].iloc[-1] + df_fc[str(col)+'_1q'].cumsum()
return df_fc
df_results = invert_transformation(df_train, df_forecast, second_diff=True)
df_results.loc[:, ['npl_forecast', 'gdp_forecast', 'kospi_forecast', 'cpi_forecast',
'avgex_forecast', 'interest_forecast', 'm2_forecast', 'nim_forecast']]
Этот код дает мне определенные числа без ошибок, но, поскольку в один и тот же период существует несколько чисел, эти числа неверны. Можно ли как-то предсказать число? Мне нужен прогноз по банкам, а также общий прогноз. + прогнозы более чем на 1 период, как и на 4 других квартала.
Цитата