##Rodrigo Domínguez

library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(seasonal)
library(tseries)
library(readxl)

datos <- read_excel(file.choose(), sheet = 2)
datos <- data.frame(datos) 
str(datos)
## 'data.frame':    61 obs. of  2 variables:
##  $ ts : chr  "1960" "1961" "1962" "1963" ...
##  $ GDP: num  4.98 5.21 4.35 6.96 3.56 ...
head(datos)
##     ts      GDP
## 1 1960 4.978423
## 2 1961 5.212004
## 3 1962 4.351584
## 4 1963 6.956685
## 5 1964 3.560660
## 6 1965 3.155895
data <- ts(datos$GDP,frequency =1 )
plot(data)

tseries::adf.test(data)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  data
## Dickey-Fuller = -3.2283, Lag order = 3, p-value = 0.09141
## alternative hypothesis: stationary
diff_ts<-diff(data)
tseries::adf.test(data)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  data
## Dickey-Fuller = -3.2283, Lag order = 3, p-value = 0.09141
## alternative hypothesis: stationary
plot(diff_ts)

diff_ts2<-diff(diff_ts)
plot(diff_ts2)

acf(diff_ts) #2

pacf(diff_ts) #1

# 1 1 2
# 2 1 2

modelo1 = arima(data, order=c(2,1,1))
modelo2 = arima(data, order=c(2,1,1))

summary(modelo1)
## 
## Call:
## arima(x = data, order = c(2, 1, 1))
## 
## Coefficients:
##           ar1     ar2      ma1
##       -0.2402  0.0051  -0.7854
## s.e.   0.1751  0.1844   0.1158
## 
## sigma^2 estimated as 4.163:  log likelihood = -128.6,  aic = 265.2
## 
## Training set error measures:
##                    ME     RMSE     MAE       MPE    MAPE      MASE        ACF1
## Training set -0.35559 2.023498 1.39713 -2.787935 103.891 0.7224464 -0.05497848
summary(modelo2)
## 
## Call:
## arima(x = data, order = c(2, 1, 1))
## 
## Coefficients:
##           ar1     ar2      ma1
##       -0.2402  0.0051  -0.7854
## s.e.   0.1751  0.1844   0.1158
## 
## sigma^2 estimated as 4.163:  log likelihood = -128.6,  aic = 265.2
## 
## Training set error measures:
##                    ME     RMSE     MAE       MPE    MAPE      MASE        ACF1
## Training set -0.35559 2.023498 1.39713 -2.787935 103.891 0.7224464 -0.05497848
modelo1$aic
## [1] 265.2032
modelo2$aic
## [1] 265.2032
checkresiduals(modelo1$residuals)
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.

Box.test(modelo1$residuals, type="Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  modelo1$residuals
## X-squared = 0.1936, df = 1, p-value = 0.6599
a<-forecast::forecast(modelo1)
plot(a)

```