Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168744
Image: ubuntu2004
Considere una cadena de Markov con espacio de estados {a,b,c} y con la siguiente matriz de transiciones: 0.3 0.5 0.2 P = 0.1 0.2 0.7 0.8 0.0 0.2 Cada visita al estado a resulta en una ganancia de 5 dólares, cada visita al estado b resulta en una ganancia de 10 dólares y cada visita al estado c genera una ganancia de 12 dólares. Escriba un programa de computadora que simule la cadena de Markov de manera que se pueda hacer una estimación la ganancia esperada por paso. Asuma que la cadena siempre empieza en el estado a. La simulación debe involucrar la ganancia acumulada generada por cada paso; luego la estimación por corrida de la simulación es la ganancia acumulada dividida entre el número de pasos en la corrida. A) Sea la estimación basada en 10 replicas, donde cada replica tiene 25 pasos. La estimación es el valor promedio entre las 10 replicas. Guarde ambos promedios generales y el rango de los promedios.
vganm = c() for (j in 1:10){ est = "a" vgan = c() for (i in 1:25){ aleat <- runif(1) gan = 0 if (est == "a"){ est = ifelse(aleat < .3, "a", ifelse(aleat < .8, "b", "c")) gan = ifelse(est == "a", 5, ifelse(est == "b", 10, 12)) } else{ if (est == "b"){ est = ifelse(aleat < .1, "a", ifelse(aleat < .3, "b", "c")) gan = ifelse(est == "a", 5, ifelse(est == "b", 10, 12)) } else{ est = ifelse(aleat < .8, "a", "b") gan = ifelse(est == "a", 5, ifelse(est == "b", 10, 12)) } } vgan <- c(vgan,gan) } vganm <- c(vganm,mean(vgan)) } summary(vganm)
Min. 1st Qu. Median Mean 3rd Qu. Max. 8.16 8.64 8.68 8.76 8.91 9.40
B) Sea la estimación basada en 10 replicas, donde cada replica tiene 1000 pasos. Compare las estimaciones y los rangos de las partes a) y b) y explique las diferencias.
for (j in 1:10){ est = "a" vgan = c() for (i in 1:1000){ aleat <- runif(1) gan = 0 if (est == "a"){ est = ifelse(aleat < .3, "a", ifelse(aleat < .8, "b", "c")) gan = ifelse(est == "a", 5, ifelse(estado == "b", 10, 12)) } else{ if (est == "b"){ est = ifelse(aleat < .1, "a", ifelse(aleat < .3, "b", "c")) gan = ifelse(est == "a", 5, ifelse(est == "b", 10, 12)) } else{ est = ifelse(aleat < .8, "a", "b") gan = ifelse(est == "a", 5, ifelse(est == "b", 10, 12)) } } vgan <- c(vgan,gan) } vganm <- c(vganm,mean(vgan)) } summary(vganm)
Error in storage.mode(test) <- "logical" : object 'estado' not found Min. 1st Qu. Median Mean 3rd Qu. Max. 8.16 8.64 8.68 8.76 8.91 9.40
Como se puede observar, para 25 o 1000 pasos en 10 replicas las estimaciones y los rangos dan exactamente el mismo resultado por lo que podemos decir que el proceso se estabiliza en el tiempo.