HSMM功能不适用于观察到的数据

时间:2019-06-17 15:28:09

标签: r hidden-markov-models

我正在尝试通过将结果与R中HSMM软件包中的功能进行比较来验证HMM的实现。

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

0 个答案:

没有答案