我是HMM和 depmix 的新手,如果这个问题太明显,请道歉。
我有一个代表学生序列的数据集。不确定这是否与此问题相关,但我可以提供样本。所以,我尝试使用depmix对序列进行建模,看起来一切正常。但是,它随机选择其中一个状态作为初始状态。这基本上意味着每个学生都从州1开始(例如)。我试图以两种方式改变初始状态概率: - 将depmix中的“instart”参数设置为(0.33,0.33,0.33)和 - 将instart定义为transInit并将“previous”设置为transInit对象。
第一个选项会正确地为每个状态分配初始概率,但是从一个状态到另一个状态的转换(转换矩阵)都相等 - 0.33。
使用第二种方法我会做这样的事情:
instart=c(0.33, 0.33, 0.33)
inMod <- transInit(~1, ns=3, ps=instart, data=code.hmm, pstart=c(trstart[1:3])) # pstart is basically 0.3, 0.3, 0.4
以及我在这里所做的一切:
mod.make <- depmix(cluster~1, family=multinomial("identity"), data=code.hmm, nstates=3, ntrails=sum[,2], prior=inMod)
我收到了一个错误:
Error in formula == ~1 :
comparison (1) is possible only for atomic and list types