Прогноз скользящего окна - PullRequest
0 голосов
/ 14 мая 2019

Я хочу предсказать обменные курсы с макроэкономическими показателями, выполняя внеплановый прогноз с данными временных рядов в Python.

Чтобы оценить точность прогноза, я хочу применить регрессию скользящего окна, то есть количество последовательных наблюдений за скользящее окно. Зависимой переменной является обменный курс евро / доллар США, а моей (первой) пояснительной переменной являются различия в процентных ставках между США и Европой. Timespan с 01/1999 по 01/2019.

Теоретически, сначала выбирают размер окна, затем горизонт прогноза и оценивают модель с помощью RMSE.

Но я не совсем уверен, как настроить скользящую регрессию в Python.

Я боролся с использованием MovingOLS в устаревшем модуле stats / ols. Итак, я скачал пакет Pyfinance, который включает в себя Rolling Regression.

Но как мне изменить горизонт прогноза на 3 месяца, например? Есть ли другие способы / пакеты для решения этой проблемы?

Вот код относительно пакета Pyfinance:

rolling = ols.PandasRollingOLS(y=y, x=X, window=228,) #window size equal to the length of my training set

rolling.beta.head()

rolling.ms_err.head()
rolling.ms_err

1 Ответ

0 голосов
/ 14 мая 2019

Если ваши целевые переменные и предикторы являются объектами pandas.Series или pandas.DataFrame:

model = pd.stats.ols.MovingOLS(y=y, x=x, window_type='rolling', window=90)
prediction = model.y_predict

Измените параметр окна на количество дней (при условии, что ваши данные ежедневно)

Редактировать: pd.stats фактически устарел в новых версиях панд, это должно быть возможно с pandas.rolling_apply, используя любую регрессионную функцию OLS, которую вы используете:

http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.rolling_apply.html

...