La variable aleatoria es el estado de la maquina.
Los posibles estados de la variable, estado de la maquina son
Se propone el siguiente codigo
library(readxl)
library(markovchain)
datos <- read_excel("lab3.xlsx")
extraer_estado <- function(fila) {
estados <- c("Grave", "Leve", "Bueno")
estado_activo <- which(fila == 1)
if (length(estado_activo) == 1) return(estados[estado_activo])
return(NA)
}
secuencia_estados <- na.omit(apply(datos[, 1:3], 1, extraer_estado))
modelo_markov <- markovchainFit(secuencia_estados)$estimate
## Bueno Grave Leve
## Bueno 0.5909091 0.09090909 0.31818182
## Grave 0.6666667 0.00000000 0.33333333
## Leve 0.5454545 0.36363636 0.09090909
Para esto debemos encontrar la matriz al momento en que es estscionaria y asi hallar el valor esperado del mantenimiemto de la maquina; el costo seria de $ 1.109.783 ; también fue realizado en r studio
matriz_estacionaria_aprox <- modelo_markov ^ 100
cat("\nDistribución estacionaria (formato matriz cuadrada):\n")
##
## Distribución estacionaria (formato matriz cuadrada):
print(matriz_estacionaria_aprox@transitionMatrix)
## Bueno Grave Leve
## Bueno 0.5902993 0.1486068 0.2610939
## Grave 0.5902993 0.1486068 0.2610939
## Leve 0.5902993 0.1486068 0.2610939
# Costos
valores_costos <- c("Grave" = 2000000, "Leve" = 1100000, "Bueno" = 890000)
estados_orden <- modelo_markov@states
fila_estacionaria <- matriz_estacionaria_aprox@transitionMatrix[1, estados_orden]
costo_promedio <- sum(fila_estacionaria * valores_costos[estados_orden])
cat("\nCosto promedio esperado: $", format(round(costo_promedio), big.mark = "."), "\n")
##
## Costo promedio esperado: $ 1.109.783