Time series and forecasting in R 1
Time series and forecasting in R
Rob J Hyndman 29 June 2008
Time series and forecasting in R 2
Outline
1
Time series objects
2
Basic time series functionality
3
The forecast package
4
Exponential smoothing
5
ARIMA modelling
6
More from the forecast package
7
Time series packages on CRAN
Time series and forecasting in R Time series objects 4
Australian GDP
ausgdp <- ts(scan("gdp.dat"),frequency=4, start=1971+2/4) Class: ts Print and plotting methods available. > ausgdp Qtr1 Qtr2 Qtr3 Qtr4 1971 4612 4651 1972 4645 4615 4645 4722 1973 4780 4830 4887 4933 1974 4921 4875 4867 4905 1975 4938 4934 4942 4979 1976 5028 5079 5112 5127 1977 5130 5101 5072 5069 1978 5100 5166 5244 5312 1979 5349 5370 5388 5396 1980 5388 5403 5442 5482
Time series and forecasting in R Time series objects 5
Australian GDP
Time ausgdp 1975 1980 1985 1990 1995 4500 5000 5500 6000 6500 7000 7500
> plot(ausgdp)
Time series and forecasting in R Time series objects 6
Australian beer production
> beer Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 1991 164 148 152 144 155 125 153 146 138 190 192 192 1992 147 133 163 150 129 131 145 137 138 168 176 188 1993 139 143 150 154 137 129 128 140 143 151 177 184 1994 151 134 164 126 131 125 127 143 143 160 190 182 1995 138 136 152 127 151 130 119 153
Time series and forecasting in R Time series objects 7
Australian beer production
Time beer 1991 1992 1993 1994 1995 120 140 160 180
> plot(beer)
Time series and forecasting in R Basic time series functionality 9
Lag plots
lag 1 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
120 140 160 180 100 120 140 160 180 200 lag 2 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
lag 3 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
100 120 140 160 180 200 lag 4 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
lag 5 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
lag 6 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
120 140 160 180 lag 7 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
120 140 160 180 lag 8 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1718 19 20 21 22 23 24 25 26 27 28 29 30 31 3233 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
lag 9 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
lag 10 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1718 19 20 21 22 23 24 25 26 27 28 29 3031 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
lag 11 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
100 120 140 160 180 200 lag 12 beer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
120 140 160 180
> lag.plot(beer,lags=12)
100 120 140 160 180 200 100 120 140 160 180 200
> lag.plot(beer,lags=12,do.lines=FALSE)
Time series and forecasting in R Basic time series functionality 10
Lag plots
lag.plot(x, lags = 1, layout = NULL, set.lags = 1:lags, main = NULL, asp = 1, diag = TRUE, diag.col = "gray", type = "p",
- ma = NULL, ask = NULL,