Cadenas de Markov

Una cadena de Markov es un proceso estocástico en tiempo discreto en el que cada variable aleatoria de \(\{X_n, n \in \mathbb{N}\}\) se puede encontrar en uno de los m estados posibles de \(E=\{1, 2, \ldots, m\}\). La propiedad fundamental de las cadenas de Markov es que la probabilidad de que ocurra \(X_n = j\) solo depende del estado en el que se encontrase en el momento anterior, \(X_{n-1}\); si estas probabilidades no varían a lo largo del tiempo, decimos que la cadena es homogénea. Así, necesitamos especificar estas probabilidades de transición de un estado al siguiente \(p_{ij}=\Pr(X_n = j|X_{n-1}=i)\), las cuales agrupamos en la matriz de transición \[ P= \begin{pmatrix} p_{11} & p_{12} & \ldots & p_{1m} \\ p_{21} & p_{22} & \ldots & p_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ p_{n1} & p_{n2} & \ldots & p_{mm} \\ \end{pmatrix} \] en la cual se cumple que las probabilidades de cada fila deben sumar la unidad, \(\sum_{j=1}^m p_{ij} = 1\). Además nos interesa qué distribución de probabilidad tienen los estados en el momento inicial, la cual se reduce al vector de probabilidades iniciales \(p^{(0)}=(p_1^{(0)}, p_2^{(0)}, \ldots, p_n^{(0)})\), que también debe cumplir que sus componentes sumen la unidad.

Con el fin de realizar cálculos, vamos a trabajar sobre una cadena en particular. Cierta máquina se puede encontrar en uno de tres estados posibles: 1= trabaja sin problemas, 2= trabaja pero necesita de un mantenimiento mínimo, 3= trabaja pero necesita un mantenimiento en profundidad, 4= fuera de servicio. Las probabilidades de transición entre estos estados son \[ P= \begin{pmatrix} 0.80 & 0.14 & 0.04 & 0.02 \\ 0.00 & 0.60 & 0.30 & 0.10 \\ 0.00 & 0.00 & 0.65 & 0.35 \\ 0.90 & 0.00 & 0.00 & 0.10 \end{pmatrix}. \] De acuerdo con esta matriz de transición, la probabilidad de pasar del estado 1 (trabaja sin problemas) al 4 (fuera de servicio) es \(p_{14}=0.02\). Supondremos que inicialmente la máquina está operando en estado 1, por lo que el vector de probabilidades iniciales es \(p^{(0)}=(1, 0, 0, 0)\).

Simulación de Montecarlo

Realizamos una simulación de las cien primeras etapas con el programa Maxima.

/* carga librería de probabilidades */
load(distrib)$

/* función simuladora */
markov(p, P, m):=
  block([ant],
    ant: random_general_finite_discrete(p),
    makelist(ant: random_general_finite_discrete(P[ant]),
             k, m)) $

/* define la cadena de Markov */
p0: [1,0,0,0] $
P: matrix([0.80, 0.14, 0.04, 0.02],
          [0.00, 0.60, 0.30, 0.10],
          [0.00, 0.00, 0.65, 0.35],
          [0.90, 0.00, 0.00, 0.10]) $

h: markov(p0,P,100);

\[ \left[ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 3 , 4 , 1 , 1 , 1 , 3 , 3 , 3 , 4 , 1 , 1 , 2 , \\ 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , \\ 2 , 2 , 2 , 2 , 3 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 2 , \\ 2 , 3 , 3 , 3 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 3 , 4 , 1 , 1 , 1 , 1 , 1 , \\ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 3 , 3 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 \right] \]

Vemos que la mayor parte del tiempo la máquina permanece en estado operativo. Podemos obtener un gráfico que muestre los sucesivos estados por los que pasa la cadena durante las 100 primeras etapas simuladas,

load(draw) $

draw2d(
  ytics = {1, 2, 3, 4},
  points(h)) $
Simulación

Transición de n etapas

La matriz de transición \(P\) nos da las probabilidades de saltar de un estado al outro desde calquera etapa a la siguiente. Nos planteamos ahora calcular las probabilidades de saltar de un estado al outro en dos etapas,

\[ p_{ij}^{(2)} = \Pr(X_n=e_j | X_{n-2}=e_i). \]

Utilizando las propiedades de las probabilidades condicionadas se puede demostrar que \[ p_{ij}^{(2)} = p_{i1} \cdot p_{1j} + p_{i2} \cdot p_{2j} + \ldots + p_{im} \cdot p_{mj}, \] que podemos interpretar de la siguiente manera: para acceder del estado i al estado j en dos etapas, lo podemos hacer de m maneras diferentes, pasando a través de 1, lo que puede acurrir con una probabilidad de \(p_{i1} p_{1j}\), o bien pasando por 2 con probabilidad \(p_{i2} p_{2j}\) y así hasta poder hacerlo pasando por el estado m, lo cual acontecería con probabilidad \(p_{im} p_{mj}\); sumando todas estas probabilidades, tendremos la de pasar de i a j en dos etapas.

La suma anterior es el elemento de la matriz \(P^2 =P \cdot P\) que se encuentra en la fila i y en la columna j. Generalizando para más etapas, tenemos el seguinte resultado:

Si P es la matriz de transición de una cadena de Markov, entonces la matriz de transición para k etapas, que representamos por \[ P^{(k)} = \begin{pmatrix} p_{11}^{(k)} & p_{12}^{(k)} & \ldots & p_{1m}^{(k)} \\ p_{21}^{(k)} & p_{22}^{(k)} & \ldots & p_{2m}^{(k)} \\ \vdots & \vdots & \ddots & \vdots \\ p_{n1}^{(k)} & p_{n2}^{(k)} & \ldots & p_{mm}^{(k)} \\ \end{pmatrix}, \] es \(P^k\), su k-ésima potencia.

Siguiendo con el ejemplo, la matriz de transición para 5 etapas se calcula elevando la matriz de transiciones P a 5, lo cual se hace en Maxima con el operador ^^.

P^^5;

\[ \pmatrix{0.4983866&0.19590536&0.20145566&0.10425238\cr 0.43462575& 0.1507833&0.265526175&0.149064775\cr 0.561857625&0.13430655& 0.1932103625&0.1106254625\cr 0.5252616&0.2055564&0.1793322&0.0898498 \cr } \]

Según el resultado anterior, si la máquina está en el estado 3 en un instante cualquiera, la probabilidad de que se encuentre en el estado 1 cinco etapas después es \(p_{31}^{(5)}=0.5619\).

Clasificación de los estados

Distinguimos tres tipos de estados en una cadena de Markov: los que se comunican entre sí, los absorbentes y los transitorios.

Una cadena de Markov es irreducible cuando todos sus estados se comunican entre si. Cando no es irreducible la llamamos reducible. Según este criterio, el ejemplo anterior de la máquina es un caso de cadena irreducible, ya que todos sus estados se comunican entre sí, ya que comprobamos que todos son accesibles desde cualquier otro en un número finito de etapas; nótese del último cálculo que \(p_{ij}^{(5)} \gt 0\) para i y j arbitrarios.

Distribución de estados en cada etapa

Ya vimos que podemos asignar probabilidades a los estados iniciais por medio del vector \(p^{(0)}=(p_1^{(0)}, p_2^{(0)}, \ldots, p_n^{(0)})\). Lo que nos planteamos ahora es qué probabilidad tenemos de encontrarnos en cada un de los estados posibles transcurridas k etapas.

La probabilidad de encontrarse en el estado i en la k-ésima etapa es \[ p_i^{(k)} = p_1^{(0)} p_{1i}^{(k)} + p_2^{(0)} p_{2i}^{(k)} + \ldots + p_n^{(0)} p_{ni}^{(k)}, \] esto es, para alcanzar el estado i en k etapas, podemos hacerlo partiendo del estado 1 y llegar a i en k saltos, lo cual tiene probabilidad \(p_1^{(0)} p_{1i}^{(k)}\), o partiendo del estado 2 y llegando a i en k saltos, lo cual tiene probabilidad \(p_2^{(0)} p_{2i}^{(k)}\), y así sucesivamente. La suma de estas probabilidades es \(p_i^{(k)}\).

La suma que acabamos de ver es la i-ésima componente del vector que se obtiene al multiplicar el vector de las probabilidades iniciales por la matriz de transición de k etapas. Tenemos entonces que el vector de probabilidades de estados transcurridas k etapas es \[ p^{(k)} = (p_1^{(k)}, p_2^{(k)}, \ldots, p_n^{(k)}) = p^{(0)} \cdot P^k. \]

Volviendo al ejemplo de la máquina, calculamos las probabilidades para cada uno de sus cuatro estados, partiendo nuevamente del estado de funcionamiento correcto,

/* controla número decimales del resultado */
fpprintprec: 6$

p: p0 . P^^10;

\[ \pmatrix{0.5015&0.1757&0.21&0.1128\cr } \]

Un diagrama de barras de estas probabilidades permite visualizar mejor la situación con la que nos vamos a encontrar dentro de 10 etapas,

draw2d(
  xtics         = {1, 2, 3, 4},
  xlabel        = "Estado",
  ylabel        = "Probabilidad en %",
  title         = "Probabilidades a 10 etapas",
  grid          = true,
  points_joined = impulses,
  line_width    = 10,
  points(100*p)) $
Probabilidades

Distribución estacionaria

En general, se tiene que \(p^{(k+1)} = p^{(k)} \cdot P\), y si se da la circunstancia de que \(p^{(k+1)} = p^{(k)}\), entonces esta distribución tiene un carácter especial; así, un vector de probabilidades \(p = (p_1, p_2, \ldots, p_n)\), con \(\sum_{i=1}^n p_i = 1\), se llama distribución estacionaria si \(p \cdot P = p\).

Cuando a cadena de Markov es irreducible, el vector de probabilidades de los estados tiende a la estacionaria, \[ \lim_{k \rightarrow \infty} p^{(k)} = p. \]

El cálculo de la distribución estacionaria no necesita de la inicial y se hace resolviendo el sistema \[ \left\{ \begin{array}{ccccccccc} p_1 & + & p_2 & + & \ldots & + & p_n & = & 1 \\ p_1 p_{11} & + & p_2 p_{21} & + & \ldots & + & p_n p_{n1} & = & p_1 \\ p_1 p_{12} & + & p_2 p_{22} & + & \ldots & + & p_n p_{n2} & = & p_2 \\ \vdots & & \vdots & & \ddots & & \vdots & & \vdots \\ p_1 p_{1n} & + & p_2 p_{2n} & + & \ldots & + & p_n p_{nn} & = & p_n \end{array}, \right. \]

La calculamos para el ejemplo de la máquina.

p : [p1, p2, p3, p4] $

solve(
  cons(
    apply("+",p) = 1,
    map("=", first(p.P), p)),
  p);

\[ \left[ \left[ {\it p_1}={{1260}\over{2503}} , {\it p_2}={{441 }\over{2503}} , {\it p_3}={{522}\over{2503}} , {\it p_4}={{280 }\over{2503}} \right] \right] \]


© 2011-2016, TecnoStats.