Documentos de Académico
Documentos de Profesional
Documentos de Cultura
WINTERS##
##Y MODELO ESTRUCTURAL BASICO BSM##
##construccion de la st##
gasolina.ts<-ts(datos,start=1960,frequency=12)
gasolina.ts
length(gasolina.ts)
##ploteo de la st y su tendencia##
d<-decompose(gasolina.ts)
d
plot(gasolina.ts,type="o",pch=20,main="Colombia.Demanda de Gasolina Mensual.A�os
1960 - 1975")
lines(d$trend,lwd=2,col="red")
grid()
##esquema aditivo##
plot(decompose(gasolina.ts,type="additive"))
##esquema multiplicativo##
plot(decompose(gasolina.ts,type="multiplicative"))
##estadisticos principales##
summary(gasolina.ts)
library(tseries)
test_JB<-jarque.bera.test(gasolina.ts)
test_JB
##asimetria y curtosis##
library(psych)
asimetria<-skew(gasolina.ts)
asimetria
kurtosis<-kurtosi(gasolina.ts)
kurtosis
##ploteo de la st y correlogramas##
library(forecast)
tsdisplay(gasolina.ts)
DATA<-gasolina.ts
DATA
###################################################################################
##################
################construccion del modelo HoltWinters bajo el esquema
multiplicativo####################
###################################################################################
###################
modelo_gasolina_HoltWinters<-HoltWinters(gasolina.ts,seasonal = "mult")
modelo_gasolina_HoltWinters
modelo_gasolina_HoltWinters_mod<-
HoltWinters(gasolina.ts,alpha=0.01,beta=0.001,gamma=0.002)
modelo_gasolina_HoltWinters_mod
comparativo<-
data.frame(modelo_gasolina_HoltWinters$fitted[,1],modelo_gasolina_HoltWinters_mod$f
itted[,1])
comparativo
a<-ts(comparativo,star=1961,frequency=12)
a
ten1<-cbind(a)
ts.plot(ten1,col=3:8,main="Colombia.Demanda de Gasolina vs Suavizamientos
HoltWinters.A�os 1961 - 1975",ylab="demanda",xlab="a�o")
##realizamos las predicciones para 1976 con intervalos de confianza al##
##80 y 95% respectivamente##
predicciones<-forecast.HoltWinters(modelo_gasolina_HoltWinters,h=12)
predicciones
###################################################################################
###################################
####################Aplicacion del modelo estructural b�sico
BSM####################################################
###################################################################################
#################################
##nota: El modelo esta formulado bajo un esquema aditivo, para resolver el problema
se debe aplicar##
##log a la st y devolver el cambio al final con las estimaciones ya que la
aplicacion de log##
##garantiza un esquema multiplicativo##
##st en log##
loggasolina.ts<-log(gasolina.ts)
loggasolina.ts
resultados1<-data.frame(loggasolina.ts,simulacion)
resultados1
resultados2<-data.frame(demanda,estimacionBSM)
resultados2
ten1<-cbind(demanda,estimacionBSM)
ts.plot(ten1,col=3:8,main="Colombia.Demanda de Gasolina vs Modelo Estructural
B�sico (BSM).A�os 1961 - 1975",ylab="demanda",xlab="a�o")
##nota: la interpretacion de la salida es la siguiente: como yt=mu(t)+gamma(t)
+epsilom(t)estas corresponden##
##con las componentes nivel, tendencia y patron estacional de la st y(t), se
observa que el reporte corresponde##
##a las estimaciones de la st dentro de la muestra (simulacion); la suma por fila
de c/u de las componentes##
##arroja como resultado las estimaciones de demanda de gasolina para el periodo
1960-1975##
####################
##clase "StructTS"##
####################
estimacionesStructTS<-fitted(gasolina_BSM)
estimacionesStructTS
resultados1<-data.frame(loggasolina.ts,simulacion)
resultados1
plot(cbind(loggasolina.ts, simulacion),
plot.type = "single", lty=1:4, col=1:4)
estimacionesStructTS<-exp(simulacion)
estimacionesStructTS
resultados2<-data.frame(demandaG,estimacionesStructTS)
resultados2
salida<-ts(resultados2,star=1960,frequency=12)
salida
plot(cbind(demandaG,estimacionesStructTS),
plot.type = "single", lty=1:4, col=1:4)
####################
##clase �tsSmooth�##
####################
simulacion<-tsSmooth(gasolina_BSM)
simulacion
resultados1<-data.frame(loggasolina.ts,estimacionlog)
resultados1
plot(cbind(loggasolina.ts, simulacion),
plot.type = "single", lty=1:4, col=1:4)
estimacionestsSmooth<-exp(estimacionlog)
estimacionestsSmooth
resultados2<-data.frame(demandaG,estimacionestsSmooth)
resultados2
salida<-ts(resultados2,star=1960,frequency=12)
salida
comparativo<-data.frame(demandaG,estimacionesStructTS,estimacionestsSmooth)
comparativo
##construccion de la st multivariante##
compilado<-ts(comparativo,star=1961,frequency=12)
compilado
library(KFKSDS)
library(stsm)
y <- loggasolina.ts
m <- stsm::stsm.model(model = "BSM", y = y, transPars = "StructTS")
fit <- StructTS(y, "BSM")
m <- stsm::set.pars(m, as.vector(fit$coef[c(4,1:3)]) * 100 / var(y))
ss <- stsm::char2numeric(m, P0cov = TRUE)
res <- predict(ss, y, 12)
res
##valores proyectados##
proyecciones<-res$pred
proyecciones
##############################
##AJUSTE POR REGRESI�N LOESS##
##############################
##construccion de la bd multivariante##
base1<-data.frame(gretldata,loessmod$fitted)
base1
##construccion de la st##
serie<-ts(base1,star=1960,frequency=12)
serie
######################################################
##METODO DE DESCOMPOSICION BASADA EN REGRESION LOESS##
######################################################
a<-ts(gasolina.ts,star=1960,frequency=12)
a
class(a)
stlmod<-stl(x=gasolina.ts, s.window="periodic")
stlmod
plot(stlmod)
####################################
##METODO STL PARA REGRESION LOESS###
####################################
gasolina<-
c(87695,86890,96442,98133,113615,123924,128924,134775,117357,114626,107677,108087,9
2188,88591,98683,99207,125485,124677,132543,140735,124008,121194,111634,111565,1010
07,94228,104255,106922,130621,125251,140318,146174,122318,128770,117518,115492,1084
97,100482,106140,118581,132371,132042,151938,150997,130931,137018,121271,123548,109
894,106061,112539,125745,136251,140892,158390,148314,144148,140138,124075,136485,10
9895,109044,122499,124264,142296,150693,163331,165837,151731,165869,173522,155828,1
53771,143963,143898,124046,121260,138870,129782,162312,167211,172897,189689,166496,
160754,155582,145936,139625,137361,138963,155301,172026,165004,185861,190270,163903
,174270,160272,165614,146182,137728,148932,156751,177998,174559,198079,189073,17570
2,180097,155202,174508,154277,144998,159644,168646,166273,190176,205541,193657,1826
17,189614,174176,184416,158167,156261,176353,175720,193939,201269,218960,209861,198
688,190474,194502,190755,166286,170699,181468,174241,175347,196265,203526,227443,23
3038,234119,255133,216478,232868,209893,194784,189756,193522,212870,248565,221532,2
52642,255007,206826,233231,212678,217173,199024,191813,195997,208684,244113,243108,
255918,244642,237579,237579,217775,227621,222698)
gasolina
##declaramos la st##
gaso.ts<-ts(gasolina,star=1960,frequency=12)
gaso.ts
##NOTA: COMO AMBAS ST TIENEN DIFERENTES LONGITUD SE DEBE CREAR UNA NUEVA ST EN LOS
DATOS ORIGINALES DE##
#IGUAL LONGITUD##
length(Tt)
length(gasolina.ts)