?

Log in

No account? Create an account

Publicaciones anteriores | Publicaciones siguientes

Estado estacionario de una cadena Markov

Aquí se presentan algunos cálculos de álgebra lineal básica y simulación a través de un simple ejemplo de cadena Markov. Considere una ciudad teórica, donde el clima se describe por tres estados posibles: (1) 'Fine', (2) 'Cloudy' y (3) 'Rain'. En cada día, dado un cierto estado, hay una distribución de probabilidad para el estado del tiempo del día siguiente. Este modelo meteorológico simplista constituye una cadena Markov discreta (homogénea). Esta cadena de Markov puede ser descrita por la Matriz de Probabilidad de Transición, P, donde la entrada Pi,jindica la probabilidad de pasar al estado jdado que el estado actual es i. Las probabilidades de transición se ilustran en la Figura 1.8.
Una cantidad calculada importante para un modelo de este tipo es la proporción a largo plazo de ocupación en cada estado. Es decir, en estado estacionario, qué proporción del tiempo es el clima en el estado 1, 2 o 3. La obtención de esta distribución estacionaria, denotada por el vector π = [π1, π2, π3](o una aproximación de este), se puede lograr de varias maneras. Por razones pedagógicas y exploratorias utilizamos los siguientes cuatro métodos para resolver la distribución estacionaria:

1. Al elevar la matriz P a una alta potencia, (repetida multiplicación de matriz de Pconsigo mismo), la distribución limitante se obtiene en cualquier fila. Matemáticamente,

πi = limn→∞[Pn]j,i para cualquier index, j.

2. Resolvemos el sistema lineal (sobredeterminado) de ecuaciones,
πP = π   and   sum(i=1-->3) πi=1

Este sistema lineal de ecuaciones se puede reorganizar en un sistema con 3 ecuaciones y 3 incógnitas al darse cuenta de que una de las ecuaciones dentro de πP = πes redundante.

3. Al hacer uso del hecho conocido (Perron Frobenius Theorem) que el eigenvector correspondiente al valor propio de la magnitud máxima, es proporcional a la palabra π. Encontramos este eigenvector y lo normalizamos.

4. Ejecutamos una simple simulación de Monte Carlo generando valores aleatorios del clima de acuerdo con P, y luego tomamos las proporciones a largo plazo de cada estado.

using LinearAlgebra, StatsBase

## Transition probability matrix
P = [0.5 0.4 0.1;
0.3 0.2 0.5;
0.5 0.3 0.2]

##First way
piProb1 = (P^100)[1,:]

##Second way
A = vcat((P' - I)[1:2,:],ones(3)')
b = [0 0 1]'
piProb2 = A\b

##third way
eigVecs = eigvecs(copy(P'))
highestVec = eigVecs[:,findmax(abs.(eigvals(P)))[2]]
piProb3 = Array{Float64}(highestVec) /norm(highestVec,1);

##Fourth way
numInState = zeros(3)
state = 1
N = 10^6
for t in 1:N
numInState[state] += 1
global state = sample(1:3,weights(P[state,:]))
end
piProb4 = numInState/N

[piProb1 piProb2 piProb3 piProb4] ##this dont work

print(piProb1, piProb2, piProb3, piProb4)

julia>
[0.4375, 0.3125, 0.25][0.4375; 0.3125; 0.25][0.4375, 0.3125, 0.25][0.437279, 0.312761, 0.24996]

Referencia:

[1]  H. Yoni y Y. Nazarathy, Statistics with Julia: Fundamentals for Data Science, Machine Learning and Artificial Intelligence [DRAFT]. 2019.

Perfil

deoxyt2
Juan Rodrigo Anabalón R.
Website

Acerca de mi

He estado escribiendo sobre temas de seguridad en Livejournal desde el 2008 y en mi horrible y extinto MSN Spaces desde el 2006. En la actualidad, soy CISO en MonkeysLab y Presidente en ISSA Chile.




MonkeysLab




Copyleft

Copyleft: Atribuir con enlace.







Flickr


ISSA Chile



contador de visitas


contadores gratis

Último mes

November 2019
S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930

Tags

Powered by LiveJournal.com
Designed by Lilia Ahner