Nile package:datasets R Documentation _F_l_o_w _o_f _t_h_e _R_i_v_e_r _N_i_l_e _D_e_s_c_r_i_p_t_i_o_n: Measurements of the annual flow of the river Nile at Ashwan 1871-1970. _U_s_a_g_e: Nile _F_o_r_m_a_t: A time series of length 100. _S_o_u_r_c_e: Durbin, J. and Koopman, S. J. (2001) _Time Series Analysis by State Space Methods._ Oxford University Press. _R_e_f_e_r_e_n_c_e_s: Balke, N. S. (1993) Detecting level shifts in time series. _Journal of Business and Economic Statistics_ *11*, 81-92. Cobb, G. W. (1978) The problem of the Nile: conditional solution to a change-point problem. _Biometrika_ *65*, 243-51. _E_x_a_m_p_l_e_s: require(stats); require(graphics) par(mfrow = c(2,2)) plot(Nile) acf(Nile) pacf(Nile) ar(Nile) # selects order 2 cpgram(ar(Nile)$resid) par(mfrow = c(1,1)) arima(Nile, c(2, 0, 0)) ## Now consider missing values, following Durbin & Koopman NileNA <- Nile NileNA[c(21:40, 61:80)] <- NA arima(NileNA, c(2, 0, 0)) plot(NileNA) pred <- predict(arima(window(NileNA, 1871, 1890), c(2,0,0)), n.ahead = 20) lines(pred$pred, lty = 3, col = "red") lines(pred$pred + 2*pred$se, lty=2, col="blue") lines(pred$pred - 2*pred$se, lty=2, col="blue") pred <- predict(arima(window(NileNA, 1871, 1930), c(2,0,0)), n.ahead = 20) lines(pred$pred, lty = 3, col = "red") lines(pred$pred + 2*pred$se, lty=2, col="blue") lines(pred$pred - 2*pred$se, lty=2, col="blue") ## Structural time series models par(mfrow = c(3, 1)) plot(Nile) ## local level model (fit <- StructTS(Nile, type = "level")) lines(fitted(fit), lty = 2) # contemporaneous smoothing lines(tsSmooth(fit), lty = 2, col = 4) # fixed-interval smoothing plot(residuals(fit)); abline(h = 0, lty = 3) ## local trend model (fit2 <- StructTS(Nile, type = "trend")) ## constant trend fitted pred <- predict(fit, n.ahead = 30) ## with 50% confidence interval ts.plot(Nile, pred$pred, pred$pred + 0.67*pred$se, pred$pred -0.67*pred$se) ## Now consider missing values plot(NileNA) (fit3 <- StructTS(NileNA, type = "level")) lines(fitted(fit3), lty = 2) lines(tsSmooth(fit3), lty = 3) plot(residuals(fit3)); abline(h = 0, lty = 3)