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
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.
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)
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.