Функция HSMM не работает на наблюдаемых данных - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь проверить в реализации HMM, сравнивая результаты с функцией из пакета HSMM в R.

Функция hsmm () работает нормально, когда она решается в смоделированных наблюдениях, как показано в описании пакета. Проблема в том, что когда я пытаюсь использовать реальные наблюдения, модель не проходит через EM-алгоритм.

Чтобы убедиться, что векторы наблюдений совпадают, я объединил их при переключении между obs3 [, 1] и obs3 [, 2], это все еще только моделируемые наблюдения, которые повторяются в алгоритме EM.

Где я ошибся?

# Simulating observations:
# (see hsmm.sim for details)
pipar <- rep(1/3, 3)
tpmpar <- matrix(c(0, 0.5, 0.5,
               0.7, 0, 0.3,
               0.8, 0.2, 0), 3, byrow = TRUE)
rdpar <- list(p = c(1, 1, 1))
odpar <- list(mean = c(-1.5, 0, 1.5), var = c(0.5, 0.6, 0.8), df =    c(1,2,5))

sim <- hsmm.sim(n = 2000, od = "t", rd = "geom",
            pi.par = pipar, tpm.par = tpmpar,
            rd.par = rdpar, od.par = odpar, seed = 3539)

obs <- sim$obs
obs2 <- LnR.SP[1:2000,2]
obs3 <- cbind(obs, obs2)
# Executing the EM algorithm:
fit <- hsmm(obs3[,1], od = "t", rd = "geom",
        pi.par = pipar, tpm.par = tpmpar,
        od.par = odpar, rd.par = rdpar, epsilon = 10e-10)

# The log-likelihood:
fit$logl
# Ehe estimated parameters:
fit$para
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...