Saltar al contenido principal
LibreTexts Español

20.2: Introducción a los modelos de Markov

  • Page ID
    115352
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    %matplotlib inline
    import matplotlib.pylab as plt
    import numpy as np
    import sympy as sym
    sym.init_printing(use_unicode=True)
    from urllib.request import urlretrieve
    
    urlretrieve('https://raw.githubusercontent.com/colbrydi/jupytercheck/master/answercheck.py', 
                'answercheck.py');

    En teoría de probabilidad, un modelo de Markov es un modelo estocástico utilizado para modelar sistemas que cambian aleatoriamente. Se supone que los estados futuros dependen únicamente del estado actual, no de los hechos ocurridos antes de él.

    Un modelo de Markov.
    Un diagrama que representa un proceso de Markov de dos estados, con los estados etiquetados E y A. Vía Wikipedia

    Cada número representa la probabilidad de que el proceso de Markov cambie de un estado a otro, con la dirección indicada por la flecha. Por ejemplo, si el proceso de Markov está en el estado A, entonces la probabilidad de que cambie al estado E es 0.4, mientras que la probabilidad de que permanezca en el estado A es 0.6.

    El modelo de estado anterior puede ser representado por una matriz de transición.

    \ [\ begin {split}\ begin {array} {cc}
    &\ text {Estado actual}\\
    P = &
    \ begin {bmatrix}
    p_ {A\ rightarrow A} & p_ {E\ rightarrow A}\\
    p_ {A\ rightarrow E} & p_ {E\ rightarrow E}
    \ end {bmatrix}
    \ end {array}
    \ text {siguiente estado}\ end {split}\ nonumber\]

    En otras palabras podemos escribir lo anterior de la siguiente manera

    A = np.matrix([[0.6, 0.7],[0.4, 0.3]])
    sym.Matrix(A)

    Observe cómo las columnas de la matriz se suman a una. Esto se debe a que todas las probabilidades de transición fuera de una matriz deben sumar al 100 por ciento.

    Ahora, considera el siguiente mapa de casas con gatos en cada habitación...

    En cada paso de tiempo, existe la misma probabilidad de que un gato se quede en su habitación actual o se mude a una nueva habitación. Si un gato elige salir de una habitación, entonces existe la misma posibilidad de que ese gato recoja alguna de las puertas de la habitación para salir.

    El diagrama de la habitación.
    Hacer esto

    Trate de dibujar una cadena de Markov (matriz de Markov) para el sistema de ecuaciones anterior. Prepárate para compartir tu diagrama con la clase.

    Una cadena de Markov se puede representar como un modelo de transición de Markov de la forma\(Ax=b\). ¿Dónde\(A\) está su matriz de tranisición de probabilidad (a menudo representada como una\(P\) en lugar de una\(A\)). \(x\)es el estado antes de la transición y\(b\) es el estado después de la transición.

    Pregunta

    Generar un modelo de transición de Markov representado como una matriz\(P\) de la forma:

    \ [
    \ begin {array} {ccc}
    &\ text {Sala actual}\\
    P = &
    \ begin {bmatrix}
    p_ {11} & p_ {12} & p_ {13}\\
    p_ {21} & p_ {22} & p_ {23}\\
    p_ {31} & p_ {32} & p_ {33}
    \ end {bmatrix}
    \ end {array}
    \ text {Next Room}\ nonumber\]

    Dónde\(p_{ij}\) están las transiciones de probabilidad del gato moviéndose entre habitaciones (de habitación\(j\) a habitación\(i\)):

    ##put your answer here
    from answercheck import checkanswer
    
    checkanswer.matrix(P,'1001a6fa07727caf8ce05226b765542c');
    Pregunta

    Supongamos que el sistema comienza con; 6 gatos en la habitación 1, 15 gatos en la habitación 2 y 3 gatos en la habitación 3. ¿Cuántos gatos habrá en cada habitación después de un paso de tiempo (Almacenar los valores en un vector llamado current_state)?

    #Put your answer to the above question here.
    from answercheck import checkanswer
    
    checkanswer.vector(current_state,'98d5519be82a0585654de5eda3a7f397');
    Pregunta

    El siguiente código trazará el número de gatos en función de time (\(t\)). Cuando este sistema converge, ¿cuál es el estado estacionario?

    #Define Start State
    room1 = [6]
    room2 = [15]
    room3 = [3]
    
    current_state = np.matrix([room1, room2, room3])
    
    for i in range(10):
        #update Current State
        current_state = P*current_state
        
        #Store history for each room
        room1.append(current_state[0])
        room2.append(current_state[1])
        room3.append(current_state[2])
        
    plt.plot(room1, label="room1");
    plt.plot(room2, label="room2");
    plt.plot(room3, label="room3");
    plt.legend();
    print(current_state)
    Pregunta

    Calcula los valores propios y los vectores propios de tu matriz de\(P\) transición.

    ##put your answer here
    Hacer esto

    Haz un nuevo vector llamado steadystate a partir del vector propio de tu\(P\) matriz con un valor propio de 1.

    ## Put your answer here

    Dado que los vectores de estado estacionario representan probabilidades a largo plazo, deben sumar a uno (1). Sin embargo, la mayoría de las bibliotecas de programación (por ejemplo, numpy y sympy) devuelven vectores propios “normalizados” a una longitud de 1 (es decir, norm (e) ==1).

    Hacer esto

    Correcto para la normalización multiplicando el vector propio de estado estacionario por una constante tal que la suma de los elementos vectoriales se sume a 1.

    #Put your answer here
    Hacer esto

    Piensa en el problema de los gatos, porque un gato tiene que estar en una de las tres habitaciones. Eso significa que el número total de gatos no cambiará. Si sumamos el número de gatos en todas las habitaciones juntos, este número tiene que ser el mismo. Por lo tanto, si arrancamos voluntad 6+15+3=24 gatos, también hay 24 gatos en el estado estacionario. Modifique el estado estacionario para asegurarse de que el número total de gatos sea 24.

    Pregunta

    ¿Por qué la suma de los números en cada etapa sigue siendo la misma?


    This page titled 20.2: Introducción a los modelos de Markov is shared under a CC BY-NC 4.0 license and was authored, remixed, and/or curated by Dirk Colbry via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.