Distribución estacionaria Ergódica Markov: Solución de ecuaciones
-
21-12-2019 - |
Pregunta
Estoy tratando de resolver un conjunto de ecuaciones para determinar la distribución estacionaria de una matriz Ergódica Markov.
a saber, la matriz es
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];
y el conjunto de ecuaciones son los del teorema a continuación
¿Cómo puedo convertir las ecuaciones anteriores en la sintaxis de Matlab Valid?
Solución
La distribución estacionaria está dada por el vector izquierda eigen con Eigen-Value 1.
>> [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
Otros consejos
Este es un enfoque diferente desde @ shai's respuesta .
Una forma alternativa de hacerlo proviene de resolver las ecuaciones PI * P= PI para el estado estable e ignorar el requisito de que la suma del PI_J necesita ser una (por ahora).
Entonces sabemos que PI no tiene una solución única para esto sin el requisito de "Sumo a 1".La PI debe estar en el espacio null de (transposición (P) - i).Matlab es bueno en esto.La normalización después de dar el resultado deseado (como se señala en @luismendo en los comentarios).
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))
Esto es fácil de comprobar.
>> PI(:)' % Force into row vector
ans =
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
Comparar con la matriz de transición de 25 pasos.
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