Dynamische regressie

Voorspellen in R

Rob J. Hyndman

Professor of Statistics at Monash University

Dynamische regressie

Regressiemodel met ARIMA-fouten:

$y_t = \beta_0 + \beta_1 x_{1,t} + ... + \beta_r x_{r,t} + e_t$

  • $y_t$ gemodelleerd als functie van r verklarende variabelen $\ x_{1,t},...,x_{r,t}$
Voorspellen in R

Dynamische regressie

Regressiemodel met ARIMA-fouten:

$y_t = \beta_0 + \beta_1 x_{1,t} + ... + \beta_r x_{r,t} + e_t \leftarrow$

  • $y_t$ gemodelleerd als functie van r verklarende variabelen $\ x_{1,t},...,x_{r,t}$
  • Bij dynamische regressie laten we $e_t$ een ARIMA-proces zijn
Voorspellen in R

Dynamische regressie

Regressiemodel met ARIMA-fouten:

$y_t = \beta_0 + \beta_1 x_{1,t} + ... + \beta_r x_{r,t} + e_t$

  • $y_t$ gemodelleerd als functie van r verklarende variabelen $\ x_{1,t},...,x_{r,t}$
  • Bij dynamische regressie laten we $e_t$ een ARIMA-proces zijn
  • Bij gewone regressie nemen we aan dat $e_t$ witte ruis is
Voorspellen in R

Amerikaanse consumptie en inkomen

autoplot(uschange[,1:2], facets = TRUE) +
  xlab("Year") + ylab("") +
  ggtitle("Quarterly changes in US consumption
          and personal income")

kwart_op_kwart_verandering_vs_consumptie_en_inkomen.png

Voorspellen in R

Amerikaanse consumptie en inkomen

ggplot(aes(x = Income, y = Consumption),
           data = as.data.frame(uschange)) +
  geom_point() +
  ggtitle("Quarterly changes in US consumption and
          personal income")

scatter_consumptie_vs_inkomen.png

Voorspellen in R

Dynamisch regressiemodel voor Amerikaanse consumptie

fit <- auto.arima(uschange[,"Consumption"],
                  xreg = uschange[,"Income"])
fit
Series: uschange[, "Consumption"]
Regression with ARIMA(1,0,2) errors
Coefficients:
         ar1      ma1     ma2  intercept      xreg
      0.6922  -0.5758  0.1984     0.5990    0.2028
 s.e. 0.1159   0.1301  0.0756     0.0884    0.0461

sigma^2 = 0.3219:  log likelihood = -156.95
AIC=325.91  AICc=326.37    BIC=345.29
Voorspellen in R

Residuen van dynamisch regressiemodel

checkresiduals(fit)
Ljung-Box test
data:  Residuals from Regression with ARIMA(1,0,2) errors
Q* = 5.8916, df = 5, p-value = 0.3169
Model df: 3.   Total lags used: 8

residuen_ch5_vid1.png

Voorspellen in R

Voorspellingen uit dynamisch regressiemodel

fcast <- forecast(fit, xreg = rep(0.8, 8))
autoplot(fcast) +
  xlab("Year") + ylab("Percentage change")

ch5_vid1_us_fcast.png

Voorspellen in R

Laten we oefenen!

Voorspellen in R

Preparing Video For Download...