Series de tiempo: análisis de tendencia, descomposición y modelos ARIMA y redes neuronales,
###consumo aparente de vehículos(2000-2015) fuente:ANDI
ti<-seq(2000,2015,1);ti
consumo<-c(61834,67525,98702,75605,104623,150421,225139,273367,213668,177976,267472,351012,325278,
294857,339670,280539)
plot(ti,consumo,type="o")
##tendencia
##modelo lineal y=a+bt
t<-c(seq(1,16,1))
plot(t,consumo,type="o")
ml<-lm(consumo~t);ml
summary(ml)
pre1<-predict(ml);pre1
lines(pre1,lwd=2,col="red")
res1<-resid(ml);res1
cbind(consumo,pre1,res1)
nueva1 <- data.frame(t = seq(17,20))
predict(ml,nueva1)
AIC(ml)
nuevo1 = seq(17,20,1)
pr1 = predict(ml,data.frame(t=nuevo1));pr1
##modelo cuadrático y=a+bt+bt^2
t2<-t^2
mc<-lm(consumo~t+t2);mc
summary(mc)
plot(t,consumo,type="o")
pre2<-predict(mc);pre2
lines(pre2,lwd=2,col="red")
res2<-resid(mc);res2
cbind(consumo,pre2,res2)
AIC(mc)
nueva2 <- data.frame(t = seq(17,20),t2)
predict(mc,nueva2)
##modelo cubico
t3<-t^3
mcu<-lm(consumo~t+t2+t3);mcu
summary(mcu)
plot(t,consumo,type="o")
pre3<-predict(mcu);pre3
lines(pre3,lwd=2,col="red")
res3<-resid(mcu);res3
cbind(consumo,pre3,res3)
AIC(mcu)
nueva3 <- data.frame(t = seq(17,20),t3)
predict(ml,nueva1)
##exponencial y=a*exp(bt)
m4<-nls(consumo~a*exp(b*t),start=list(a=20000,b=0.1));m4
summary(m4)
plot(t,consumo,type="o")
lines(pre4,lwd=2,col="red")
pre4<-predict(m4);pre4
res4<-resid(m4)
cbind(consumo,pre4,res4)
AIC(m4)
nuevo4 = seq(17,20,1)
pr4 = predict(m4,data.frame(t=nuevo4));pr4
##Reciproco y=a+b/t
m5<-nls(consumo~a+b*1/t,start=list(a=10000,b=0.1));m5
summary(m5)
plot(t,consumo,type="o")
pre5<-predict(m5);pre5
lines(pre5,lwd=2,col="red")
res5<-resid(m5)
cbind(consumo,pre5,res5)
AIC(m5)
nuevo5 = seq(17,20,1)
pr5 = predict(m5,data.frame(t=nuevo5));pr5
### exponencial y=a*t^b
m6<-nls(consumo~a*t^b,start=list(a=10000,b=0.1));m6
summary(m6)
plot(t,consumo,type="o")
pre6<-predict(m6);pre6
lines(pre6,lwd=2,col="red")
res6<-resid(m6)
cbind(consumo,pre6,res6)
AIC(m6)
nuevo6 = seq(17,20,1)
pr6 = predict(m6,data.frame(t=nuevo6));pr6
##exponencia y=exp(a+bt)
m7<-nls(consumo~exp(a+b*t),start=list(a=20,b=1));m7
summary(m7)
plot(t,consumo,type="o")
pre7<-predict(m7);pre7
lines(pre7,lwd=2,col="red")
res7<-resid(m7)
cbind(consumo,pre7,res7)
AIC(m7)
nuevo7 = seq(17,20,1)
pr7 = predict(m7,data.frame(t=nuevo7));pr7
##
###
library(nnet)
library(forecast)
library(caret)
library(neuralnet)
plot(consumo,type="l")
aj1=auto.arima(consumo)
aj1
summary(aj1)
pre20<-predict(aj1);pre20
plot(forecast(aj1,h=5))
points(1:length(consumo),fitted(aj1),type="l",col="green")
aj2 <- ets(consumo)
summary(aj2)
pre21<-predict(aj2);pre21
plot(forecast(aj2,h=5))
points(1:length(consumo),fitted(aj2),type="l",col="red")
aj3 <- nnetar(consumo)
summary(aj3)
predict(aj3)
plot(forecast(aj3,h=5))
points(1:length(consumo),fitted(aj3),type="l",col="green")
#####
####
2010 2011 2012 2013 2014
##sacrificio de ganado
library(TTR)
datos<-c(295839,189120,209502,339964,354888,279324,190823,215406,307956,314295,
297428,215370,241733,307595,326528,288924,196892,218068,350029,309083,
297811,226628,252026,362010,347737,297639,235449,253180,338591,317963,
314819,229895,247540,346190,349251,298125,236100,256652,341287,331098,
299129,232521,237528,333125,326818,311325,233826,261270,358702,339998,
307341,237653,261780,344347,315589,335957,294523,321571,356546,349263)
y = ts(datos,frequency=12,start=c(2010,01))
y
plot.ts(y)
suav<-SMA(y,n=12)
lines(suav,col="red",lwd=2)
des<-decompose(y)
des
plot(des)
Tend<-decompose(y)$trend
plot(Tend)
ad<-y-des$seasonal
plot.ts(y)
lines(ad,col="red",lwd=2)
plot(ad)
HW<-HoltWinters(y, beta=FALSE, gamma=FALSE)
HW
HW1<-HoltWinters(y, gamma=FALSE)
HW1
HW2<-HoltWinters(y);HW2
fitted(HW1)
plot(HW1)
fore1<-forecast.HoltWinters(HW1, h=12);fore1
plot.forecast(fore1)
acf(fore1$residuals, lag.max=20)
Box.test(fore1$residuals, lag=20, type="Ljung-Box")
plot.ts(fore1$residuals)
di <- diff(y, differences=1);di
plot.ts(di)
di2<- diff(y, differences=2);di2
plot.ts(di2)
acf(di2, lag.max=10)
pacf(di2, lag.max=10)
ari<-arima(y, order=c(0,1,1));ari
forecast(ari)
tsdiag(ari)
accuracy(ari)
ajus <- ets(y);ajus
forecast(ajus,1)
plot(forecast(ajus, 5))
seasonplot(y)
plot(y,type="l")
aj5=auto.arima(y)
aj5
summary(aj5)
pre50<-forecast(aj5);pre50
plot(forecast(aj5,h=12))
points(1:length(y),fitted(aj5),type="l",col="green")
aj6 <- ets(y)
summary(aj6)
pre51<-predict(aj6);pre51
plot(forecast(aj6,h=12))
points(1:length(y),fitted(aj6),type="l",col="red")
aj7 <- nnetar(y)
summary(aj7)
predict(aj7)
plot(forecast(aj7,h=12))
points(1:length(y),fitted(aj7),type="l",col="green")
##modelo AR
mo1<-ar(y);mo1
pro1<-forecast(mo1);pro1
plot(y,type="l")
lines(mo1)
plot(pro1)
pro2<-predict(mo1,n.ahead=12);pro2
mo2<-ma(y,order=2);mo2
plot(y,type="l")
lines(mo2,col="red")
pred<-predict(mo2);pred
mo3<-arima(y,order=c(2,2,0))
mo3
predict(mo3)
No hay comentarios.:
Publicar un comentario