gpt4 book ai didi

r - 从 HMM 高斯混合分布中获取下一个观察结果

转载 作者:行者123 更新时间:2023-12-02 09:03:07 27 4
gpt4 key购买 nike

我有一个长度为 1000 的连续单变量 xts 对象,我已将其转换为名为 x 的 data.frame,以供 RHmm 包使用。

我已经选择混合分布中有 5 个状态和 4 个高斯分布。

我想要的是下一次观察的预期平均值。我该如何获得它?

所以到目前为止我所拥有的是:

  1. 运行 HMMFit() 函数的转换矩阵
  2. 混合物中每个高斯分布的一组均值和方差以及它们各自的比例,所有这些也都是由 HMMFit() 函数生成
  3. 使用 HMMFit 函数的输出并将其放入 viterbi 函数时与输入数据相关的过去隐藏状态的列表

我将如何从我所获得的数据中获取下一个隐藏状态(即第 1001 个值),然后使用它从高斯分布中获取加权平均值。

我想我已经非常接近了,只是不太确定下一部分是什么...最后一个状态是状态 5,我是否以某种方式使用转换矩阵中的第 5 行来获取下一个状态?

我所追求的是下一次观察中预期的加权平均值,因此下一个隐藏状态甚至是不必要的。我是否要将第 5 行中的概率乘以每个均值,并根据每个州的比例进行加权?然后将它们加在一起?

这是我使用的代码。

# have used 2000 iterations to ensure convergence
a <- HMMFit(x, nStates=5, nMixt=4, dis="MIXTURE", control=list(iter=2000)
v <- viterbi(a,x)
a
v

一如既往,任何帮助将不胜感激!

最佳答案

下一个预测值使用最后一个隐藏状态 last(v$states) 从转换矩阵中获取概率权重 a$HMM$transMat[last(v$states),] 对于每个状态,分布均值 a$HMM$distribution$mean 按比例 a$HMM$distribution$proportion 进行加权,然后将其全部相乘并求和。因此,在上述情况下,结果如下:

sum(a$HMM$transMat[last(v$states),] * .colSums((matrix(unlist(a$HMM$distribution$mean), nrow=4,ncol=5)) * (matrix(unlist(a$HMM$distribution$proportion), nrow=4,ncol=5)), m=4,n=5))

关于r - 从 HMM 高斯混合分布中获取下一个观察结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11644522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com