1

マルコフ モデルの定常分布を決定するのが困難です。理論と関係を理解し​​始めます: 確率行列が与えられた場合、定常分布を決定するには、最大の固有値 (つまり 1) の固有ベクトルを見つける必要があります。

確率行列の生成から始めました

set.seed(6534)
stoma <- matrix(abs(rnorm(25)), nrow=5, ncol=5)
stoma <- (stoma)/rowSums(stoma) # that should make it a stochastic matrix rowSums(stoma) == 1

その後、Reigen関数を使用します

ew <- eigen(stoma)

でも結果がよくわからない

> ew
$values
[1]  1.000000e+00+0.000000e+00i -6.038961e-02+0.000000e+00i -3.991160e-17+0.000000e+00i
[4] -1.900754e-17+1.345763e-17i -1.900754e-17-1.345763e-17i

$vectors
              [,1]           [,2]          [,3]                  [,4]                  [,5]
[1,] -0.4472136+0i  0.81018968+0i  0.3647755+0i -0.0112889+0.1658253i -0.0112889-0.1658253i
[2,] -0.4472136+0i  0.45927081+0i -0.7687393+0i  0.5314923-0.1790588i  0.5314923+0.1790588i
[3,] -0.4472136+0i  0.16233945+0i  0.2128250+0i -0.7093859+0.0000000i -0.7093859+0.0000000i
[4,] -0.4472136+0i -0.09217315+0i  0.4214660+0i -0.1305497-0.1261247i -0.1305497+0.1261247i
[5,] -0.4472136+0i -0.31275073+0i -0.2303272+0i  0.3197321+0.1393583i  0.3197321-0.1393583i

最大値 (1) のベクトルは、すべて同じコンポーネント値 "-0.4472136" を持ちます。シードを変更しても、異なる数を描画するために、同じ値が再び得られます。何が恋しいですか?固有ベクトルの成分がすべて等しいのはなぜですか? 合計が 1 にならないのはなぜですか。これは定常分布でなければならないからです。

ご協力ありがとうございました!

4

2 に答える 2

3

markovchain定常分布 (別名定常状態) は、パッケージを使用して最も簡単に計算できます。

library(markovchain)
mc <- new("markovchain", transitionMatrix = stoma)
steadyStates(mc)

これはあなたに同じ答えを与えます

ev <- eigen(t(stoma))
ev$vectors[, 1] / sum(ev$vectors[, 1])
于 2014-01-17T15:55:59.677 に答える