НачатьНачать бесплатно

Прогнозируем процентные ставки

Теперь вы применим методы прогнозирования, изученные в предыдущем упражнении, к реальным данным вместо смоделированных. Вернёмся к набору данных из первой главы: годовые данные по 10-летним процентным ставкам за последние 56 лет, хранящиеся в объекте типа Series под названием interest_rate_data. Умение прогнозировать процентные ставки имеет огромное значение — не только для инвесторов в облигации, но и для тех, кто, например, выбирает между ипотекой с фиксированной и плавающей ставкой.

В первой главе вы видели, что процентным ставкам свойственно возвращение к среднему на длинных горизонтах. Иными словами, высокие ставки со временем склонны снижаться, а низкие — расти. Сейчас ставки находятся ниже долгосрочного уровня, поэтому ожидается их рост. AR-модель позволяет оценить, насколько значительным будет это повышение.

Класс ARIMA и функция plot_predict уже импортированы.

Это упражнение является частью курса

Анализ временных рядов на Python

Посмотреть курс

Инструкции к упражнению

  • Создайте экземпляр класса ARIMA с именем mod, используя годовые данные по процентным ставкам и задав параметр order для модели AR(1).
  • Обучите модель mod с помощью метода .fit() и сохраните результат в объект res.
  • Постройте график с данными, а также внутривыборочными и вневыборочными прогнозами, используя функцию plot_predict().
    • Первым аргументом функции plot_predict() должна быть обученная модель.
    • Передайте аргумент start=0, чтобы начать внутривыборочный прогноз с самого начала, и укажите end='2027', чтобы спрогнозировать данные на несколько лет вперёд.
    • Обратите внимание: значение end — 2027 — должно быть в кавычках, поскольку оно обозначает дату, а не целочисленную позицию.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Forecast interst rates using an AR(1) model
mod = ARIMA(interest_rate_data, order=___)
res = mod.fit()

# Plot the data and the forecast
fig, ax = plt.subplots()
interest_rate_data.plot(ax=ax)
plot_predict(___, start=___, end=___, alpha=None, ax=ax)
plt.show()
Редактировать и запускать код