Paquete RHmm (R)
Tengo un vector que ajusto en un modelo hmm en un intento de seleccionar un número óptimo de estados para un modelo de markov oculto.
x <- c(-0.0961421466, -0.0375458485, 0.0681121271, 0.0259201028, 0.0016780785, 0.0311860542,
0.0067940299, 0.0126520055, 0.0357599812, 0.0007679569, 0.0409759326, 0.0560839083, -0.0272581160, -0.0439501404, 0.0321578353, 0.0196158110, -0.0097262133, -0.0226182376, 0.0119897380, -0.0099522863, -0.0359443106, -0.0039363349, -0.0476283592, -0.0383203835, -0.0518624079, 0.0187455678, 0.0950535435, 0.0057115192, -0.0307805051, -0.0272725295, -0.0254645538, -0.0102565781, -0.0267986024, -0.0482906267, -0.0256826510, -0.0414746754, -0.0470666997, 0.0284912760...
Cada vez que ejecuto el modelo intentando obtener el mejor número de estados para el modelo de markov oculto, obtengo un número diferente de estados, ya que creo que el modelo se entrena sobre valores nuevos seleccionados al azar y también el mínimo local. Esto no sucede si simplemente ajusto el modelo.
# puntajes proporcionales a la probabilidad de que una secuencia sea generada por un modelo dado
nhs <- c(2, 3, 4)
for (i in 1:length(nhs)) {
fit <- HMMFit(x, dis = "NORMAL", nStates = nhs[i], asymptCov = FALSE)
VitPath = viterbi(fit, x)
error[i] <- fit[[3]]
}
error <- c(error)
error[is.na(error)] <- 10000
nhs[which.min(error)] # Número óptimo de estados ocultos (método min AIC)
Sin embargo, los resultados de los dos son muy diferentes. ¿Cuál es mejor? Por un lado, tengo un modelo en el que puedo probar nuevas muestras. Por otro lado, el segundo proporciona el mejor ajuste en muestras vistas. En el caso del modelo, si repito la prueba dado que el conjunto de entrenamiento/prueba cambia (aleatoriamente), el número resultante de estados cambia a medida que cambia la muestra de entrenamiento/prueba. En este caso, ¿qué método debo usar para estar seguro de que el modelo proporciona generalización (el número de estados resulta ser el mejor)?
¿Qué métodos adicionales puedo emplear para poder seleccionar un número óptimo de estados?
Muchas gracias
0 votos
¿Hay algo más que podríamos hacer por ti? De lo contrario, sería genial si pudieras aceptar la respuesta dada - ¡Gracias :-)
0 votos
¿Hay alguna razón por la que aún no has aceptado ninguna respuesta en ninguna de tus preguntas en Quant.SE?