###Lectura de los datos

data = read.table("G:/OP/datos2014.txt", header = T)sample<-data.frame(y=data)

## instalar y cargar la libreria depmixS4

library(depmixS4)

## ajustar un modelo oculto de markov con 1, 2, 3, 4, 5, 6, 7 estados con observaciones
gausianas

m1<-depmix(y.Sureste~1, data=sample, ns=1, ntimes=nrow(sample))
fm1<-fit(m1, em=em.control(maxit=2000, tol=0.00000001,crit="relative"))

m2<-depmix(y.Sureste~1, data=sample, ns=2, ntimes=nrow(sample))
fm2<-fit(m2, em=em.control(maxit=2000, tol=0.00000001,crit="relative"))

m3<-depmix(y.Sureste~1, data=sample, ns=3, ntimes=nrow(sample))
fm3<-fit(m3, em=em.control(maxit=2000, tol=0.00000001,crit="relative"))

m4<-depmix(y.Sureste~1, data=sample, ns=4, ntimes=nrow(sample))
fm4<-fit(m4, em=em.control(maxit=2000, tol=0.00000001,crit="relative"))

m5<-depmix(y.Sureste~1, data=sample, ns=5, ntimes=nrow(sample))
fm5<-fit(m5, em=em.control(maxit=2000, tol=0.00000001,crit="relative"))

m6<-depmix(y.Sureste~1, data=sample, ns=6, ntimes=nrow(sample))
fm6<-fit(m6, em=em.control(maxit=2000, tol=0.00000001,crit="relative"))

m7<-depmix(y.Sureste~1, data=sample, ns=7, ntimes=nrow(sample))
fm7<-fit(m7, em=em.control(maxit=2000, tol=0.00000001,crit="relative"))

### determinar cual es el mejor modelo

bic<-c(BIC(fm2), BIC(fm3), BIC(fm4), BIC(fm5), BIC(fm6), BIC(fm7))

which.min(bic)

aic<-c(AIC(fm1), AIC(fm2), AIC(fm3), AIC(fm4), AIC(fm5), AIC(fm6), AIC(fm7))

which.min(aic)

## parametros del modelo seleccionado, ejemplo donde se selecciono el modelo HMM con
dos estados

sd=5.na. nclass=13.21. main="C".summary(fm3) ### Numero de observaciones en cada estado.001. probs<-posterior(fm3) table(probs[.rm=TRUE) apply(probs[.rm=TRUE) range(probs$ y. lty = 1.cbind(probs.add=TRUE) points(34.na. col="blue". lty=3. 0. lwd = 1.by=. es un hmm con 3 estados ## histograma de los datos hist(sample$y.1]) probs<. col="red".lwd=0.06). ylim=c(0.sample) first<-which(probs$state==1) second<-which(probs$state==2) third<-which(probs$state==3) range(probs$y.Sureste[second].rm=TRUE) range(probs$ y. lwd=4) . pch=0. lwd = 1. 0.01). sd=5.0. col ="red". mean=23.84.Sureste [first].84.Sureste[third]. probabilidad de ocurrencia de cada estado.add=TRUE) points(23. type= "p". fg=1. lty = 1. mean=34.mean) ## ejemplo de grafica del modelo de markov oculto ajustado en la zona sureste.col="light grey".42*dnorm(x.1.20. type= "p".63). rango de las distribuciones asociadas a cada estado. xlab="Ozono". ylab="densidad") ## grafico de la densidad ajustada al primer estado x <. bg=5.Sureste.2:4].seq(-20. lwd=4) ## grafico de la densidad del Segundo estado curve(0.21. col ="blue".2.1) curve(0.37*dnorm(x.na. freq=FALSE.

main="A". lwd=4) legend("topright".55. lwd = 1. outline = TRUE.55. lwd=1) text(375. col="green" ) abline(h=33. ylim = c(0. col="blue" ) if(probs$state[i]==1) text(i.84. col="red" ) abline(h=34. 60). lwd=1) .cex=0. col="blue".lty=1. lty = 1.04.0.col=”red”) text(36. 24.23.5. lwd=1) text(375. col="blue" ) abline(h=48. ylab="Ozono") for(i in 1:nrow(sample)){ if(probs$state[i]==2) text(i.21.cex=0.84."Segundo estado".0.0. lty = 1. 49.col ="black".lwd=2.col=”black”) ##Ejemplo de grafico de la trayectoria de los posibles estados de la cadena de markov.23). lty=1.5.37*dnorm(x. horizontal = TRUE.cex=0. col="red".5.Sureste.003. sample$y.Sureste[i]+1. col="black". sample$y.col=c("red".9. type= "p".55.cex=0. lwd=1) text(375. add = TRUE) points(30.cex=0.Sureste[i]+1. col="green".5.002. xlab="dias". sd=5.04. mean=23.9. col="blue".25. mean=34. sd=5. col= "green1". lwd = 1. col="black". "m1". col="red" ) } abline(h=23.002. 0.42*dnorm(x.63)+ 0.338.cex=0. lwd=2) boxplot(k.01)+0. frame = FALSE. lty=1.20*dnorm(x.”M”. corresponde a seleccionar un hmm con 2 estados plot(sample$y."blue".add=TRUE) points(48. "m2". probs$state[i]. "m3". bty="n") points(29. col="green". probs$state[i].55. sd=7.23).pch=5.cex=0. lty=1. lty=1. mean=48. col ="green".”m1”. lwd=4) ##grafico de la function de densidad mezcla de las densidades en los estados curve(0.”m2”.20*dnorm(x.legend=c( "Primer estado". “green” ). 35. type= "p".## grafico de la densidad del tercer estado curve(0.”tercer estado”).9.col=”blue”) text(29.5. mean=48. type="h".add=TRUE) text(21.cex=0. type= "p". 0.0.21.167. sd=7.

tol=0.Noroeste~1.1).1).family=Gamma("identity").Noroeste~1. em=em.6.6. BIC(fm7)) which. 6.0. bty="n") ##Ajuste de un hmm con observaciones gamma ## lectura de datos data = read.8.00000001.1. em=em. ntimes=nrow(sample)) fm3<-fit(m3.1). respstar=c(0. 4.8). ntimes=nrow(sample)) fm7<-fit(m7. BIC(fm2).control(maxit=2000. ns=1.00000001. ns=2. 2.6. tol=0.family=Gamma("identity"). tol=0.control(maxit=2000.00000001. 3. em=em.0.Noroeste~1. 1. ntimes=nrow(sample)) fm5<-fit(m5. em=em.6.00000001.0. col="black" ) legend(0.crit="relative")) m6<-depmix(y.8. respstar=c(0. ntimes=nrow(sample)) fm6<-fit(m6.col=c("red".control(maxit=2000. BIC(fm4).min(bic) . respstar=c(0. 1.family=Gamma("identity").control(maxit=2000. ntimes=nrow(sample)) fm4<-fit(m4.family=Gamma("identity").crit="relative")) m2<-depmix(y.control(maxit=2000. 1. BIC(fm5). data=sample.family=Gamma("identity"). respstar=c(0.1. em=em. "M". tol=0.family=Gamma("identity").frame(y=data) ## cargar el paquete library(depmixS4) ##ajuste de los modelos hmm con 1.table("G:/OP/datos1998.Noroeste~1.8. ns=5.1.lwd=2. 34."Segundo estado".control(maxit=2000.family=Gamma("identity"). respstar=c(0.70.6. 5.crit="relative")) m3<-depmix(y. tol=0.Noroeste~1. ns=3.0.00000001.9.6)."blue". ns=6. data=sample. 1).legend=c("Primer estado". 7 estados observaciones gamma m1<-depmix(y.8.crit="relative")) m5<-depmix(y. BIC(fm6).Noroeste~1.1. data=sample. data=sample.1).6.control(maxit=2000.crit="relative")) m7<-depmix(y. tol=0. data=sample. ntimes=nrow(sample)) fm1<-fit(m1.crit="relative")) bic<-c(BIC(fm1).Noroeste~1. data=sample.lty=1. ns=4. data=sample. “green” ).1.8. em=em.txt".1. em=em. BIC(fm3). 1. header = T) sample<-data. tol=0. respstar=c(0.00000001.crit="relative")) m4<-depmix(y.”Tercer estado”). ns=7.0. respstar=c(0. ntimes=nrow(sample)) fm2<-fit(m2.0.cex=0.text(375.00000001.

rm=TRUE) range(probs$ y.Noroeste [first].2.mean) ## calculo de las varianzas.na. parametros de forma y escala de las densidades gamma varianza1<-var(probs$y.na.Noroeste [first])) escala1<-varianza1/media1 forma1<-media1/escala1 varianza2<-var(probs$y.rm=TRUE) range(probs$ y.cbind(probs.Noroeste [second]) desviacionesta2<-sqrt(var(probs$y.2:4].Noroeste [third]. rango de las densidades asociadas a cada estado probs<-posterior(fm3) table(probs[.Noroeste [second]. numero de observaciones en cada estado.### resumen de los parametros summary(fm3) ## probabilidad de cada estado.Noroeste [second])) escala2<-varianza2/media2 forma2<-media2/escala2 varianza3<-var(probs$y.1]) probs<.Noroeste [first]) desviacionesta1<-sqrt(var(probs$y.na.Noroeste [third]) desviacionesta3<-sqrt(var(probs$y.sample) first<-which(probs$state==1) second<-which(probs$state==2) third<-which(probs$state==3) range(probs$y.Noroeste [third])) escala3<-varianza3/media3 forma3<-media3/escala3 desviacionesta1 desviacionesta2 desviacionesta3 escala1 escala2 escala3 forma1 forma2 forma3 .rm=TRUE) apply(probs[.