我已经安装了一个HMM
使用我的数据模型hmm.discnp
在R中封装如下:
library(hmm.discnp)
zs <- hmm(y=lis,K=5)
现在我想根据该模型预测未来的 K 个观测值(排放)。但我只能获得我已经通过的观察结果的最可能的状态序列Viterbi
算法。
I have t
已经排放,即(y(1),...,y(t))
.
我想要最有可能的未来K
所安装的排放物HMM
对象即(y(t+1),...y(t+k))
.
有没有一个函数可以计算这个?如果不是那么我该如何手动计算?
从隐马尔可夫模型中手动生成发射非常简单。我对 R 不太熟悉,但我在这里解释了按照您的要求生成数据的步骤。
首先要记住的是,根据其马尔可夫性质,隐马尔可夫模型没有记忆。任何时候,只有当前的状态是已知的,之前发生的事情是“忘记”的。这意味着样本的生成时间t+1
仅取决于当时的样本t
.
如果您有一个序列,您可以做的第一件事就是像您一样拟合最可能的状态序列(使用维特比算法)。现在,您知道生成您最后一次观察的状态(您表示的那个状态)y(t)
).
现在,通过转换矩阵,您可以从该状态知道转换到模型的每个其他状态的概率。这是一个概率质量函数 (pmf),您可以从该 pmf 中提取状态数(不是手动!R 应该有一个内置函数来从 pmf 中提取样本)。你画的状态号就是你的系统当时所处的状态t+1
.
有了这些信息,您现在可以从分配给这个新状态的概率函数中绘制样本观察值(此处相同,如果是高斯分布,则使用 R 中应存在的高斯随机生成器)。
从这个状态t+1
,您现在可以应用相同的程序来一次达到某个状态t+2
等等。
请记住,如果您多次执行此完整过程(以从时间生成数据样本)t+1
to t+k
),你最终会得到不同的结果。这是由于模型的概率性质。我不确定你的意思most probable future emissions
我不确定是否有一些惯例可以这样做。您可以计算最后获得的完整序列的可能性(来自1
to t+k
)。一般来说,序列的可能性更大t
因为最后一部分是真正从模型本身生成的,因此在某些方面“完美”适合。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)