Carga de datos y analisis exploratorio

data <- Nile
plot(data, main="Caudal Rio Nilo", ylab="Caudal", xlab="Años", type="l", lwd=2)

Se comprueba mediante el adf.test la estacionaridad y se comprueba que no se puede rechazar la hipotesis Nula. Por lo cual, no se puede considerar estacionaria esta

adf.test(data)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  data
## Dickey-Fuller = -3.3657, Lag order = 4, p-value = 0.0642
## alternative hypothesis: stationary

Probamos la técnica BoxCox

lambda <- BoxCox.lambda(data)
lambda
## [1] 0.9988894
bxcx.data <- BoxCox(data, lambda)
par(mfrow=c(1,1))
plot(data, col="blue")
lines(bxcx.data, col= "red")

Como se puede apreciar no produce practicamente ningun efecto la transformación.

Modelar la tendencia.–

Veamos si es posible aplicar diferenciación para quitar la tendencia.

ndiffs(data, test="adf")
## [1] 0

El estadístico me recomienda que no haga ninguna diferenciación.

Vamos entonces por la eliminación de la tendencia por regresión lineal

t <- time(data)
Tc <- 1902 ## Selecicionamos año de quiebre (año en que sucede algo)

dummy <- ifelse(t>Tc, t-Tc,0)
modelo <- lm(data ~ t + dummy)

plot(data, col="darkblue", main="Regresión con cambio estructural en 1902", lwd=2)
lines(modelo$fitted.values~c(time(data)), col="darkred", lwd=2)

Ahora el modelo sin tendencia es:

modelo.sin.tend <- resid(modelo)
plot(modelo.sin.tend, type="l", col="darkred", lwd=2)

Evaluación de Estacionaridad

Probamos ahora el modelo quitándole la tendencia y aplicando el estadístico adt.test, obtenemos lo siguiente:

adf.test(modelo.sin.tend)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  modelo.sin.tend
## Dickey-Fuller = -4.0388, Lag order = 4, p-value = 0.01016
## alternative hypothesis: stationary

Por lo anterior, como p-value = 0.01016 < 0.05, rechazamos la hipótesis nula y aceptar la estacionaridad.