Sunteți pe pagina 1din 5

INTRODUCCIN

Existen numerosos mtodos bootstrap para inferencia y para predicin en series


de tiempo.
Se har una aproximacin a la inferencia paramtrica mediante bootstrap en
series temporales mediante la funcin tsboot del paquete boot de R.
Se simular una serie de tiempo sencilla y utilizando los distintos comandos de la
funcin tsboot se estimarn los coeficientes de la serie.

Generar la serie de tiempo
Mediante la funcin arima.sim del paquete stats creamos una serie AR(1) con
200 datos.
En la figura 1 se puede observar la grfica de la serie as como las auto
correlaciones y autocorrelaciones parciales.

-3

-1

Serie AR(1)

50

100

150

200

0.4
0.0

ACF

0.8

Time

10

15

20

0.6
0.2
-0.2

Partial ACF

Lag

10

15

20

Lag

Figura 1. Plot de la serie, las ACF y PACF



Primero estimaremos el modelo que minimiza AIC, mediante la funcin arima


ar1 <- arima(ts.sim1,order=c(1,0,0)) # AR(1)
ar1
Call:
arima(x = ts.sim1, order = c(1, 0, 0))
Coefficients:
ar1 intercept
0.7631
-0.0596
s.e. 0.0453
0.2984
sigma^2 estimated as 1.031:

log likelihood = -287.24,

aic = 580.48

Se crea la funcin para el estadistico en este caso ser el coeficiente del modelo.

AR1.sim.fun <- function(tsb) { # estadstico para tsboot
ar.fit <- ar(tsb, order.max = 25)
return(ar.fit$ar[1]) # coefficiente

La funcin a utilizar para bootsrap para series de tiempo es tsboot del paquete
boot.

SIEVE BOOTSTRAP (Blchman 1997)

Para poder hacer remuestreo las muestras deben ser iid, as que generamos
muestras aleatorias de los residuos con los parmetros inicialmente estimados
de del modelo de la serie.

Los centramos para que tengan media 0. Y generamos la muestra bootsrap a
traves de ellos.

AR1.sim.ar <- ar(AR1.sim)


AR1.sim.model <- list(order = c(AR1.sim.ar$order, 0, 0), ar =
AR1.sim.ar$ar)
AR1.sim.res <- AR1.sim.ar$resid[!is.na(AR1.sim.ar$resid)]
AR1.sim.res <- AR1.sim.res - mean(AR1.sim.res)

AR1.sim.sim <- function(res,n.sim, ran.args) {


# generar replicas aletarorias usando arima.sim
rg1 <- function(n, res) sample(res, n, replace = TRUE)
ts.orig <- ran.args$ts
ts.mod <- ran.args$model
mean(ts.orig)+ts(arima.sim(model = ts.mod, n = n.sim,
rand.gen = rg1, res = as.vector(res)))
}
AR1.sim.3 <- tsboot(AR1.sim.res, AR1.sim.fun, R = 999, sim =
"fixed", n.sim = 200,
orig.t = FALSE, ran.gen = AR1.sim.sim,
ran.args = list(ts = AR1.sim, model =
AR1.sim.model))

La salida de R nos muestra la media del estadstico y el error standard.



MODEL BASED BOOTSTRAP FOR TIME SERIES
Call:
tsboot(tseries = AR1.sim.res, statistic = AR1.sim.fun, R = 999,
sim = "model", n.sim = 114, orig.t = FALSE, ran.gen = AR1.sim.sim,
ran.args = list(ts = AR1.sim, model = AR1.sim.model))
Bootstrap Statistics :
mean std. error
t1* 0.6855124 0.0838971




BOOTSTRAP PARA BLOQUES FIJOS (Knsh (1989) y Liu y Sing(1992)

Mediante este mtodo , se puede preservar y posteriormente modelizar la
dependencia de la serie.

Grfico 2. Representacin de mtodo de bootstrap por bloques




La salida en R para el muestreo por bloqUes es la siguiente

BLOCK BOOTSTRAP FOR TIME SERIES

Fixed Block Length of 20


Call:
tsboot(tseries = AR1.sim, statistic = AR1.sim.fun, R = 999, l = 20,
sim = "fixed")
Bootstrap Statistics :
original
bias
t1* 0.708911 -0.03174527

std. error
0.08863113

BOOTSTRAP ESTACIONARIO. Politis y Romano (1994)



Para eliminar la falta de estacionariedad del muestreo por bloques Politis y
Romano (1994) proponen el Bootstrap estacionario.

AR1.sim.1 <- tsboot(AR1.sim, AR1.sim.fun, R = 999, l = 20, sim = "geom")



R devuelve la salida

STATIONARY BOOTSTRAP FOR TIME SERIES


Average Block Length of 20
Call:
tsboot(tseries = AR1.sim, statistic = AR1.sim.fun, R = 999, l = 20,
sim = "geom")
Bootstrap Statistics :
original
bias
t1* 0.708911 -0.03366742

std. error
0.0794962


En la figura 3 se representa la distribucin del estadstico calculado por
bootstrap y los valores obtenidos por inferencia clsica y por inferencia
bootstrap.

Histograma 1*
250
1
^
1

*1

200

Frecuencia

IC
IC*
150

100

50

0
0.4

0.5

0.6

0.7

0.8

0.9

1.0

1*

Figura 3. Histograma del estadistico t *.

POST BLACKENING
Una dificultad importante para reemplazamientos basados en bloques es que se
pueden generar series con menos dependencia que los datos originales. Si se
hiciera remuestreo con longitud l=1 se obtendra ruido blanco. Entonces se
puede pre-blanquear la serie para estimar un modelo que posea bastante de la
dependencia de las observaciones originales. La serie de innovaciones
generadas por remuestreo de bloques de los residuos del modelo estimado , y la
serie de obtenida es es post-blackened post-oscurecida, por la aplicacin del
remuestreo.

Definimos una nueva funcin
AR1.sim.black <- function(res, n.sim, ran.args) {
ts.orig <- ran.args$ts
ts.mod <- ran.args$model
mean(ts.orig) + ts(arima.sim(model = ts.mod,n = n.sim,innov = res))
}

REMUESTREO POR BLOQUES DE RESIDUOS


AR1.sim.1b <- tsboot(AR1.sim.res, AR1.sim.fun, R = 999, l = 20, sim =
"fixed",
n.sim = length(AR1.sim), orig.t = FALSE, ran.gen =
AR1.sim.black,
ran.args = list(ts = AR1.sim, model = AR1.sim.model))

El resultado que muestra R


POST-BLACKENED BLOCK BOOTSTRAP FOR TIME SERIES


Fixed Block Length of 20
Call:
tsboot(tseries = AR1.sim.res, statistic = AR1.sim.fun, R = 999,
l = 20, sim = "fixed", n.sim = length(AR1.sim), orig.t = FALSE,
ran.gen = AR1.sim.black, ran.args = list(ts = AR1.sim, model =
AR1.sim.model))
Bootstrap Statistics :
mean std. error
t1* 0.7141841 0.1003148

REMUESTREO POR BLOQUES DE RESIDUOS ESTACIONARIO


AR1.sim.2b <- tsboot(AR1.sim.res, AR1.sim.fun, R = 999, l = 20, sim =
"geom",
n.sim = length(AR1.sim), orig.t = FALSE, ran.gen =
AR1.sim.black,
ran.args = list(ts = AR1.sim, model = AR1.sim.model))
POST-BLACKENED STATIONARY BOOTSTRAP FOR TIME SERIES
Average Block Length of 20
Call:
tsboot(tseries = AR1.sim.res, statistic = AR1.sim.fun, R = 999,
l = 20, sim = "geom", n.sim = length(AR1.sim), orig.t = FALSE,
ran.gen = AR1.sim.black, ran.args = list(ts = AR1.sim, model =
AR1.sim.model))
Bootstrap Statistics :
mean std. error
t1* 0.7162676 0.09214667

S-ar putea să vă placă și