3

長さ1000の連続した単変量xtsオブジェクトがあり、パッケージで使用するためにxというdata.frameに変換しましたRHmm

混合分布には5つの状態と4つのガウス分布があることをすでに選択しました。

私が求めているのは、次の観測の期待平均値です。どうすればそれを取得できますか?

だから私がこれまでに持っているのは:

  1. HMMFit()関数の実行からの遷移行列
  2. 混合物内の各ガウス分布の平均と分散のセット、およびそれぞれの比率。これらはすべて、HMMFit()関数から生成されました。
  3. viterbiHMMFit関数の出力を使用し、それを関数に入れるときの入力データに関連する過去の非表示状態のリスト

取得したものから次の非表示状態(つまり、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

いつものようにどんな助けでも大歓迎です!

4

1 に答える 1

3

次の予測値は、最後の隠れ状態を使用して、各状態のlast(v$states)遷移行列から確率の重みを取得します。分布平均は比率で重み付けされ、そのすべてが乗算されて合計されます。したがって、上記の場合は次のようになります。a$HMM$transMat[last(v$states),]a$HMM$distribution$meana$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))
于 2012-07-26T05:27:57.653 に答える