Chaîne ErgodiC Markov Distribution stationnaire: Résolution des équations
-
21-12-2019 - |
Question
J'essaie de résoudre un ensemble d'équations pour déterminer la distribution stationnaire d'une matrice ergodique Markov.
nommément, la matrice est
P=[0 0 0 0.5 0 0.5;
0.1 0.1 0 0.4 0 0.4;
0 0.2 0.2 0.3 0 0.3;
0 0 0.3 0.5 0 0.2;
0 0 0 0.4 0.6 0;
0 0 0 0 0.4 0.6];
et l'ensemble des équations sont ceux du théorème ci-dessous
Comment puis-je convertir les équations ci-dessus en syntaxe MATLAB valide?
La solution
La distribution stationnaire est donnée par la
>> [V D] = eig( P.' ); %// note the transpose .' - we are looking for the **left** EV
>> st = V(:,1).'; %//' the stationary distribution
st =
0.0051 0.0509 0.2291 0.6110 0.5346 0.5346
>> D(1)
1.0000
Autres conseils
Ceci est une approche différente de @ Shai's Réponse .
Un autre moyen de le faire provient de la résolution des équations PI * P= PI pour l'état d'équilibre et d'ignorer l'exigence selon laquelle la somme du PI_J doit être une (pour l'instant).
Un peu d'algèbre matricielle ...
Ensuite, nous savons que PI n'a pas une solution unique à cela sans la condition "somme à 1".PI doit être dans l'espace null de (transpose (p) - i).Matlab est bon à cela.Normalisation après avoir donné le résultat souhaité (comme indiqué par @Luismendo dans les commentaires).
P=[0 0 0 0.5 0 0.5;
0.1 0.1 0 0.4 0 0.4;
0 0.2 0.2 0.3 0 0.3;
0 0 0.3 0.5 0 0.2;
0 0 0 0.4 0.6 0;
0 0 0 0 0.4 0.6];
I = eye(size(P));
Y = null(P'-I)
PI = Y./(sum(Y))
Ceci est facile à vérifier.
>> PI(:)' % Force into row vector
ans =
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
comparer avec la matrice de transition en 25 étapes.
P5 = P*P*P*P*P;
P25 = P5*P5*P5*P5*P5;
>>P25 =
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720