ПочатиПочніть безкоштовно

Прості прогнози з оціненої AR-моделі

Тепер, коли ви змоделювали свої дані за допомогою команди arima(), можна будувати прості прогнози на основі цієї моделі. Функцію predict() можна використати, щоб отримати прогнози з оціненої AR-моделі. В об'єкті, який повертає команда predict(), значення $pred — це прогноз, а $se — стандартна похибка прогнозу.

Щоб зробити прогнози на кілька періодів після останніх спостережень, скористайтеся аргументом n.ahead у команді predict(). Цей аргумент задає горизонт прогнозування (h) — тобто кількість періодів, які прогнозуються. Прогнози обчислюються рекурсивно від 1 до h кроків уперед від кінця спостережуваного часового ряду.

У цій вправі ви побудуєте прості прогнози, використовуючи AR-модель для даних Nile, де зафіксовано річні спостереження за стоком Нілу з 1871 до 1970 року.

Ця вправа є частиною курсу

Аналіз часових рядів в R

Переглянути курс

Інструкції до вправи

  • Використайте arima(), щоб підігнати AR-модель до часового ряду Nile. Збережіть її як AR_fit.
  • Використайте predict(), щоб побудувати прогноз стоку Нілу на 1971 рік.
  • Використайте predict_AR разом із $pred[1], щоб отримати 1-кроковий прогноз.
  • Зробіть ще один виклик predict(), щоб отримати прогнози від 1 до 10 кроків уперед (1971–1980). Для цього встановіть аргумент n.ahead рівним 10.
  • Запустіть заготовлений код, щоб побудувати графік даних Nile, прогнозів і 95% інтервалу прогнозу.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Fit an AR model to Nile
AR_fit <- arima(___, order  = ___)
print(AR_fit)

# Use predict() to make a 1-step forecast
predict_AR <- predict(___)

# Obtain the 1-step forecast using $pred[1]


# Use predict to make 1-step through 10-step forecasts
predict(___, n.ahead = ___)

# Run to plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
AR_forecast <- predict(AR_fit, n.ahead = 10)$pred
AR_forecast_se <- predict(AR_fit, n.ahead = 10)$se
points(AR_forecast, type = "l", col = 2)
points(AR_forecast - 2*AR_forecast_se, type = "l", col = 2, lty = 2)
points(AR_forecast + 2*AR_forecast_se, type = "l", col = 2, lty = 2)
Редагувати та запускати код