Transformaciones que estabilizan la varianza

De acuerdo a lo visto anteriormente, es necesario contar con herramientas para estabilizar la varianza caso sea no existe homogeneidad en ésta y sea una función con constante del tiempo.

La herramienta más común y tradicional para estos escenarios es la transformación de Box-Cox.

La transformación de Box-Cox es un caso general de varias otras transformaciones comunes.

Sea \(\{y_t\}\) la serie original, la serie transformada está dada por \(\{w_t\}\) donde \[ w_t=\begin{cases} \log(y_t), & \lambda=0, \\ \frac{y_{t}^{\lambda} - 1}{\lambda}, & \lambda\neq 0 \end{cases} \]

Siempre que \(-1\leq\lambda\leq 1\)

Algunos casos particulares de la transformación Box-Cox

Para ejemplificar.

library(ggfortify)
library(dplyr)
library(car)
library(forecast)
#library(FitAR)
library(DT)
library(TSstudio)
data("AirPassengers")
end(AirPassengers)
## [1] 1960   12
z1<-AirPassengers
z1<-ts(z1, start = c(1949,1), end=c(1960,12), frequency = 12)
ts_plot(z1, color = "red", slider = TRUE, title = "Airpassengers")
head(z1)
##      Jan Feb Mar Apr May Jun
## 1949 112 118 132 129 121 135
summary(z1)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   104.0   180.0   265.5   280.3   360.5   622.0
sd(z1)
## [1] 119.9663

Transformación Con logaritmo

log_z1<-log(z1)
ts_plot(log_z1)
summary(log_z1)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   4.644   5.193   5.582   5.542   5.887   6.433
sd(log_z1)
## [1] 0.4414564

Box Cox con lambda=-1

x1<-forecast::BoxCox(z1,lambda = -1)
ts_plot(x1)

Boxcox con Lambda= 0.5

x2<-forecast::BoxCox(z1,lambda = 0.5)
ts_plot(x2)

Funcion para elegir lambda

forecast::BoxCox.lambda(z1)
## [1] -0.2947156
x3<-forecast::BoxCox(z1,0.051)
ts_plot(x3)
sd(x3)
## [1] 0.5849984