data("AirPassengers")
str(AirPassengers)
## Time-Series [1:144] from 1949 to 1961: 112 118 132 129 121 135 148 148 136 119 ...
class(AirPassengers)
## [1] "ts"
sum(is.na(AirPassengers))
## [1] 0
start(AirPassengers)
## [1] 1949 1
end(AirPassengers)
## [1] 1960 12
frequency(AirPassengers)
## [1] 12
summary(AirPassengers)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 104.0 180.0 265.5 280.3 360.5 622.0
plot(AirPassengers, xlab = "Time", ylab = "Passenger Count", main = "AirPassengers Time Series - 21MIC0065")
plot.ts(AirPassengers, xlab = "Time", ylab = "Passenger Count", main = "AirPassengers Time Series - 21MIC0065")
abline(reg=lm(AirPassengers~time(AirPassengers)))

cycle(AirPassengers)
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1949 1 2 3 4 5 6 7 8 9 10 11 12
## 1950 1 2 3 4 5 6 7 8 9 10 11 12
## 1951 1 2 3 4 5 6 7 8 9 10 11 12
## 1952 1 2 3 4 5 6 7 8 9 10 11 12
## 1953 1 2 3 4 5 6 7 8 9 10 11 12
## 1954 1 2 3 4 5 6 7 8 9 10 11 12
## 1955 1 2 3 4 5 6 7 8 9 10 11 12
## 1956 1 2 3 4 5 6 7 8 9 10 11 12
## 1957 1 2 3 4 5 6 7 8 9 10 11 12
## 1958 1 2 3 4 5 6 7 8 9 10 11 12
## 1959 1 2 3 4 5 6 7 8 9 10 11 12
## 1960 1 2 3 4 5 6 7 8 9 10 11 12
plot(log(AirPassengers), xlab = "Time", ylab = "Log(Passenger Count)", main = "Log of AirPassengers Time Series - 21MIC0065")

plot(diff(log(AirPassengers)), xlab = "Time", ylab = "Differenced Log(Passenger Count)", main = "AirPassengers Time Series - 21MIC0065")

plot(aggregate(AirPassengers, FUN = mean), xlab = "Time", ylab = "Mean Passenger Count", main = "Mean AirPassengers Time Series - 21MIC0065")

boxplot(AirPassengers, xlab = "Time", ylab = "Passenger Count", main = "AirPassengers Boxplot - 21MIC0065")

boxplot(AirPassengers~cycle(AirPassengers), xlab = "Cycle", ylab = "Passenger Count", main = "AirPassengers Boxplot by Cycle - 21MIC0065")

# Decomposition plot
plot(decompose(AirPassengers), xlab="Time")+title(" - 21MIC0065")

## integer(0)
# Model Identification and Estimation
# AR I MA
# p d q
acf(AirPassengers, xlab = "Lag", ylab = "ACF", main = "ACF Function Plot - 21MIC0065")

acf(diff(log(AirPassengers)), xlab = "Lag", ylab = "ACF", main = "ACF Function Plot (Differenced Log) - 21MIC0065")

pacf(diff(log(AirPassengers)), xlab = "Lag", ylab = "PACF", main = "PACF Function Plot (Differenced Log) - 21MIC0065")

plot(diff(log(AirPassengers)), xlab = "Time", ylab = "Differenced Log(Passenger Count)", main = "Differenced Log function- 21MIC0065")

fit <- arima(log(AirPassengers), c(0,1,1), seasonal = list(order = c(0,1,1), period = 12))
# Prediction
pred <- predict(fit, n.ahead = 41*12)
pred1 <- round(2.718^pred$pred, 0)
ts.plot(AirPassengers, pred1, log = 'y', lty = c(1,3), xlab = "Time", ylab = "Passenger Count", main = "AirPassengers with ARIMA Model - 21MIC0065")
