通过拟合 HMM 模型预测未来排放量

2023-12-02

我已经安装了一个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(使用前将#替换为@)

通过拟合 HMM 模型预测未来排放量 的相关文章

随机推荐