Tratamiento de Señales Laboratorio 1 (2h) Cadenas de Markov Curso 2011/2012 Materiales: (a) Ordenadores equipados con Matlab Objetivos: (a) Estudiar las cadenas de Markov como una familia de secuencias estocásticas discretas. (b) Modelado de problemas concretos como cadenas de Markov y su resolución. Introducción Las cadenas de Markov son una familia de secuencias estocásticas discretas que se utilizan para modelar el comportamiento dinámico de sistemas en muchos campos de la ciencia y tecnologı́a como fı́sica, biologı́a, economı́a, sociologı́a, demografı́a, comunicaciones, etc. En la primera parte se presentan las cadenas de Markov como una familia particular de secuencias aleatorias discretas, ası́ como sus propiedades caracterı́sticas. Después se muestra la caracterización de las cadenas de Markov mediante sus matrices de transiciones y su representación gráfica mediante los diagramas de transición. En las siguientes secciones se presenta una metodolgı́a algebraica para el análisis de las cadenas de Markov. A lo largo de la práctica se proponen problemas para que el alumno los modele como cadenas de Markov y los estudie utilizando la metodologı́a propuesta. Definición y propiedades de las cadenas de Markov Las cadenas de Markov son una familia de procesos aleatorios con las siguientes caracterı́sticas: 1. Son procesos discretos en el tiempo (secuencias aleatorias): ω ∈ Ω → X[n, ω]. Cuando no de lugar a confusión los denotaremos como X[n]. 2. Tienen un espacio de estados (S) finito con lo que sus posibles valores se identifican con los primeros N números naturales: X[n] ∈ S = {1, 2, . . . , N}. A estos posibles valores se les llama estados, y al conjunto S se le llama conjunto de estados. 1 3. Cumplen la llamada propiedad de Markov: P (X[n + 1] = in+1 | X[n] = in , X[n − 1] = in−1 , X[n − 2] = in−2 , . . .) = P (X[n + 1] = in+1 | X[n] = in ), ∀n ∈ N, es decir, la probabilidad de que la secuencia tome un valor dado en el instante n + 1 sólo está condicionado por el valor de la secuencia en el instante n y es independiente de los valores de la secuencia en los instantes anteriones (n − 1, n − 2, ...) 4. Son procesos homogéneos en el tiempo: (n) tj,i (n+k) tj,i = P (X[n + 1] = j | X[n] = i) = = P (X[n + k + 1] = j | X[n + k] = i), ∀k, n ∈ N, es decir, la probabilidad de que la secuencia pase de un valor i a un valor j no cambia con el tiempo. En adelante, a esta probabilidad de transición la llamaremos tj,i , prescindiendo del indice temporal. Caracterización y representación Una cadena de Markov está caracterizada por su matriz de transiciones t1,1 t1,2 · · · t1,N t2,1 t2,2 · · · t2,N T = .. .. .. . . . tN,1 tN,2 · · · tN,N (1) La matriz de transición se representa gráficamente por el diagrama de transiciones. El diagrama de transiciones consta de un conjunto de N vértices, que corresponden a los posibles valores ó estados del proceso, y un conjunto de aristas dirigidas entre los vértices. Cada arista dirigida tiene un valor numérico que representa la probabilidad de transición entre los dos vértices que une. En el diagrama sólo se representan los enlaces correspondientes a probabilidades de transición no nulas. Por ejemplo, la figura 1 muestra el diagrama de transiciones de una cadena de Markov de N = 3 estados con la siguiente matriz de transiciones: 0,9 0 0,2 T = 0 0,8 0,1 (2) 0,1 0,2 0,7 En general, las matrices de transición son matrices estocásticas por columnas, es decir, cumplen las siguientes propiedades 1. 0 ≤ tj,i ≤ 1, ∀i, j ∈ 1, 2, . . . , N 'N 2. j=1 tj,i = 1, ∀i ∈ 1, 2, . . . , N En otras palabras, las columnas de T son vectores de probabilidad. 2 Figura 1: Ejemplo de diagrama de transiciones de una cadena de Markov. Vectores de probabilidad de estado El vector de probabilidad de estado en el instante n se define ası́ p[n] = [p1 [n] p2 [n] . . . pN [n]]T , donde pi [n] = P (X[n] = i) es la probabilidad de que el proceso se encuentre en el estado i en el instante n. El vector de probabilidad en el siguiente instante n + 1 se puede obtener a partir del vector de probabilidad en el instante anterior, n, y de la matriz de transiciones p[n + 1] = Tp[n] (3) En general, a partir de las probabilidades de estado en un instante dado n, podemos obtener las probabilidades de estado en cualquier instante posterior n + m aplicando (3) repetidamente: p[n + m] = Tm p[n], ∀n, m ∈ Z+ . (4) La matriz de transición caracteriza la dinámica del sistema, pero para conocer los valores concretos de los vectores de estado en los distintos instantes de tiempo es necesario conocer también el vector de estado inicial p[0]. En ocasiones, el estado inicial del sistema es conocido de forma determinista con lo que las componentes de p[0] serán cero excepto un 1 en la componente correspondiente al estado inicial del sistema. Dado el vector de estado inicial, el vector de probabilidad de estado en el instante n lo podemos obtener aplicando (4) p[n] = Tn p[0], ∀n ∈ N. (5) Ejercicio 1: Considere la cadena de Markov de la figura 1. Suponiendo que en el instante inicial el sistema se encuentra en el estado 1, calcule 1. La probabilidad de que el sistema se encuentre en el estado 1 después de 5 transiciones 2. La probabilidad de que el sistema se encuentre en el estado 1 después de 25 transiciones 3 3. La probabilidad de que el sistema no se encuentre en el estado 1 después de 10 transiciones Construya una función para dibujar la evolución con el tiempo de las probabilidades de estado y guardela en el fichero ej1.m. La sintaxis de la función debe ser la siguiente: function ej1(T, p0, Nt) ... donde los puntos suspensivos indican las lı́neas necesarias para implementar la función. La función tiene tres argumentos de entrada: 1. T es la matriz de transiciones 2. p0 es un vector de estado inicial. 3. Nt es el número de transiciones que se van a considerar. Utilizando la función ej1, representar la evolución de las probabilidades de estado para los tres estados de la cadena de Markov de la figura 1, durante las primeras Nt = 20 transiciones. Dibuje las curvas en la misma gráfica utilizando el comando plot de Matlab con la opción ’-o’. Ejercicio 2: Modelo de movimiento de población de un municipio Un municipio consta de una ciudad grande y de dos pueblos residenciales en las afueras de la ciudad. Cada año, un 5 % de los ciudadanos de la ciudad fijan su residencia en el pueblo A y un 3 % lo hacen en el pueblo B. Cada año un 2 % de los habitantes del pueblo A y un 0,4 % de los del pueblo B se mudan a la ciudad. Además, cada año, un 4 % de la población de pueblo A se va a vivir al pueblo B. No se registran migraciones del pueblo B al A. La ciudad tiene actualmente 10000 habitantes, el pueblo A tiene 2000 y el pueblo B tiene 1000. Se desea estudiar la evolución de la población en el municipio durante los próximos 30 años, suponiendo que los porcentajes de emigración anteriores no cambian. Para ello modele el problema como una cadena de Markov, identificando los estados, la matriz de transición y el vector de estados inicial. Después utilizar la función ej1 para contestar las siguientes preguntas 1. ¿Qué representan los estados? 2. ¿Cuál será la población de la ciudad y de los pueblos dentro de 40 años? 3. ¿En qué momento el pueblo B tendrá más población que el pueblo A? 4. ¿Llegarán los pueblos a tener más población que la ciudad?. En caso afirmativo, ¿cuándo?. 4 Si el número de estados del sistema N es grande y/o n es grande, el cálculo de la potencia n-ésima de la matriz de transiciones en (5) puede ser computacionalmente costoso. Pero, cuando T es diagonalizable por semejanza, el cálculo de los vectores de probabilidad puede simplificarse considerablemente, como se muestra a continuación. Sea T = VDV−1 , donde V es la matriz cuyas columnas son los autovectores de T y D es una matriz diagonal con los autovalores de T en la diagonal. Las potencias de T se pueden obtener ası́ T = VDV−1 , T2 = (VDV−1 )(VDV−1 ) = VD2 V−1 , T3 = (VDV−1 )(VD2 V−1 ) = VD3 V−1 , .. . n T = VDn V−1 . Entonces el vector de probabilidades de estado se puede obtener ası́ p[n] = Tn p[0] = VDn V−1 p[0]. Como D es diagonal, su potencia n-ésima se puede calcular potencias n-ésimas de los autovalores n λ1 0 · · · 0 λn1 0 · · · 0 λ2 · · · 0 0 λn · · · 2 n D = .. .. . . .. = .. .. . . . . . . . . . 0 0 . . . λN 0 0 ... (6) fácilmente a partir de las 0 0 .. . λnN . (7) Lamentablemente, no todas las matrices de transición son diagonalizables por semejanza. Ver en (6) que para ser T diagonalizable, V debe ser invertible, lo que es lo mismo, sus autovectores deben ser linealmente independientes. Una condición suficiente (no necesaria) para que esto se cumpla es que los autovalores sean diferentes. Ejercicio 3: Construya una función para dibujar la evolución con el tiempo de las probabilidades de estado basada en las expresiones (5) (6), y almacénela en el fichero ej2.m. La sintaxis de la función debe ser la siguiente: function ej2(T, p0, Nt) ... donde los puntos suspensivos indican las lı́neas necesarias para implementar la función. La función tiene tres argumentos de entrada: 1. T es la matriz de transiciones 2. p0 es un vector de estado inicial. 5 3. Nt es el número de transiciones que se van a considerar. Dibuje las curvas en la misma gráfica utilizando el comando plot de Matlab con la opción ’-o’. Para diagonalizar la matriz de transiciones utilice la función de Matlab [V, D] = eig(T). Para calcular las potencias de D, no utilize el producto de matrices sino las potencias de los autovalores, como muestra (7). Una vez construida la función ej2, estudie la evolución del vector de probabilidades como hizo en el ejercicio 1 y compruebe que obtiene las mismas curvas que con la función ej1. Ejercicio 4: Dos amigos deciden apostar sus ahorros tirando repetidamente una moneda. En cada lanzamiento de moneda el jugador 1 recibe 1000 euros del jugador 2 si sale cara y paga 1000 euros al jugador 2 si sale cruz. Inicialmente el jugador 1 dispone de 20000 euros y el jugador 2 tiene 40000 euros. Si la moneda se lanza 200 veces, calcular 1. La probabilidad de que el jugador 1 arruine al jugador 2. 2. La probabilidad de que el jugador 2 arruine al jugador 1. 3. La probabilidad de que el jugador 1 termine ganando dinero. Para ello plantee el problema como una cadena de Markov y obtenga las probabilidades anteriores utilizando la función ej2. Repetir los cálculos cuando la moneda se lanza 300 veces y 600 veces. Vector de probabilidad de estado lı́mite Una cadena de Markov es irreducible si desde cualquier estado i es posible llegar a cualquier estado j en un número de transiciones (tiempo) finito con probabilidad no nula. Una cadena de Markov se dice periódica si existe algún estado que es visitado periódicamente con un periodo mayor de 1. Una cadena de Markov es aperiódica si no es periódica. Ambas propiedades pueden comprobarse viendo el diagrama de transiciones. Por ejemplo, la cadena de la figura 1 es aperiódica e irreductible. Normalmente las cadenas de Markov que modelan sistemas dinámicos son irreductibles y aperiódicas. Si una cadena de Markov es irreducible y aperiódica, tiene un autovalor dominante igual a 1, y el resto de los autovalores tienen módulo menor que 1. Por ejemplo los autovalores de la matriz de transición de la cadena de la figura 1 son λ = 1; 0,84; 0,56. En estas cadenas de Markov el vector de probabilidades de estado converge a un vector de probabilidad p, llamado vector de probabilidades de estado lı́mite, independientemente del estado inicial p[n] −−−→ p, ∀p[0], n→∞ Las gráficas de los ejercicios 1 y 2 sugieren que el vector de probabilidades converge a un vector lı́mite cuando el estado inicial es 1. Utilizando la función ej1 ó ej2, dibuje la 6 evolución del las probabilidades de estado cuando los estados iniciales son 2, 3, ó cuando los tres estados iniciales son equiprobables. Compruebe que en todos los casos el vector de probabilidades de estado converge al mismo vector lı́mite. Si la cadena de Markov es irreductible y aperiódica y, además, su matriz de transiciones es diagonalizable, el vector de probabilidades lı́mite se puede calcular eficientemente como se describe a continuación. Primero se expresa p[0] como combinación lineal de los autovectores de T, p[0] = N ( ci vi = Vc =⇒ c = V−1 p[0], (8) i=1 donde los vi ’s son los autovectores de T y c = [c1 , c2 , . . . , cN ]T es el vector que contiene los coeficientes de la combinación lineal. Aplicando repetidamente (3) p[1] = Tp[0] = p[2] = Tp[1] = N ( i=1 N ( ci Tvi = p[n] = Tp[n − 1] = ci λi vi , i=1 N ( ci λi Tvi = i=1 .. . N ( ci (λi )2 vi , i=1 N ( ci (λ1 ) n−1 Tvi = i=1 N ( ci (λi )n vi , . i=1 Si λj = 1 es el autovalor dominante y vj el autovector asociado, en el lı́mite p[n] −−−→ cj vj , n→∞ (9) donde cj se obtiene de (8). Ejercicio 5: Considerando (8) y (9), construya una función para calcular las probabilidades de estado lı́mite en cadenas de Markov aperiódicas, irreductibles y diagonalizables. Almacene la función en el fichero ej3.m. Su sintaxis debe ser la siguiente: function ej3(T) ... donde los puntos suspensivos indican las lı́neas necesarias para implementar la función. En la función se puede utilizar cualquier vector inicial ya que, si se cumplen las condiciones mencionadas, las probabilidades de estado lı́mite no dependen del estado inicial. Utilizando ej3, compruebe, para la cadena de Markov de la figura 1, que las probabilidades de estado lı́mite coinciden con las obtenidas a partir de las funciones ej1 o ej2. 7 Ejercicio 6: Modelo de movimiento de población en un municipio Considere el modelo de movimiento de población del ejercicio 2. Utilizando la función ej3 obtener la distribución de la población después de un número grande de años y comparar los resultados con las curvas obtenidas en el ejercicio 2. 8