Procesos Estocásticos y Cadenas de Markov · Tema 28

Múltiples pasos

Probabilidades en n pasos con Pⁿ y Chapman-Kolmogorov: puentes por estados intermedios.

01 · Punto de partida

De 1 paso a n pasos de un salto

P dice el próximo paso; pero ¿y en 5 pasos? ¿En 10? La respuesta es Pⁿ: la matriz que salta n pasos de una vez. Su entrada pᵢⱼ⁽ⁿ⁾ es la chance de ir de i a j en exactamente n pasos.

El puente es Chapman-Kolmogorov: para ir en m+n pasos se pasa por algún intermedio k.

  • ¿Qué chance hay de 0 a 1 en 5 pasos: p₀₁⁽⁵⁾?
  • ¿Cómo se calcula P² = P·P y Pⁿ en general?
  • ¿A qué tienden las filas de Pⁿ con n grande?
  • ¿Cuántos pasos borran el origen?

02 · Definición

¿Qué es pᵢⱼ⁽ⁿ⁾?

Tres ideas la fijan:

n

n pasos

pᵢⱼ⁽ⁿ⁾: de i a j en exactamente n pasos (con intermedios libres).

×

Potencia

La matriz Pⁿ = P·…·P. Su fila i es el futuro en n pasos desde i.

⛉

Puente CK

pᵢⱼ⁽ᵐ⁺ⁿ⁾ = Σₖ pᵢₖ⁽ᵐ⁾·pₖⱼ⁽ⁿ⁾: se suma por intermedios k.

En 2×2 (a = 0,3, b = 0,5): p₀₁⁽ⁿ⁾ = 0,375·(1−0,2ⁿ) y p₁₁⁽ⁿ⁾ = 0,375 + 0,625·0,2ⁿ. Ambas tienden a π₁ = 0,375.

Pⁿ 2×2: las filas se igualan en π.
np₀₁⁽ⁿ⁾p₁₁⁽ⁿ⁾Filas
10,3000,500distintas
20,3600,400cerca
50,3750,375iguales (π)

03 · Anatomía

Potencia, puente y límite

Cuatro lecturas de Pⁿ:

P¹ = P
Un paso: la base. P⁰ = identidad (cero pasos = quedarse).
P² = P·P
Dos pasos pasando por k: pᵢⱼ⁽²⁾ = Σₖ pᵢₖ·pₖⱼ.
Pⁿ por potencias
π(n) = π(0)·Pⁿ: N pasos de una vez en vez de iterar.
Límite π
Si converge, cada fila de Pⁿ tiende a π. El origen se borra.

Iterar πP

Paso a paso

Barato para un π(0) y N moderado. No da toda la matriz.

Potencia Pⁿ

Todo de una vez

Da todas las parejas i→j en n pasos. Cuesta K³ por producto.

04 · Ejemplos

Preguntas de n pasos

Toda pregunta «en n pasos» es una entrada de Pⁿ:

«¿en 5?»→P⁵→pᵢⱼ⁽⁵⁾
  1. 1
    Clima en 3 días.

    p₀₁⁽³⁾: de sol hoy a lluvia en 3 días.

  2. 2
    Servidor en 10 min.

    Fila desde caído: ¿ya volvió a libre?

  3. 3
    Regreso en 2.

    pᵢᵢ⁽²⁾: salir y volver en dos pasos.

  4. 4
    Régimen en 20.

    Filas ≈ π: el origen ya no importa.

  5. 5
    Puente CK.

    En 5 = 2+3: pᵢⱼ⁽⁵⁾ = Σₖ pᵢₖ⁽²⁾·pₖⱼ⁽³⁾.

05 · Representación en Python

Multiplicar matrices, no casilleros

En Python, Pⁿ es producto matricial repetido. Con K chico basta triple bucle; con K grande, librerías. La verificación es Chapman-Kolmogorov.

Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Compará P² a mano vs producto.

def matmul(A, B):
    K = len(A)
    return [[sum(A[i][k] * B[k][j] for k in range(K)) for j in range(K)] for i in range(K)]

P = [[0.7, 0.3], [0.5, 0.5]]
P2 = matmul(P, P)
print([[round(x, 3) for x in f] for f in P2])

P² = [[0,64 – 0,36], [0,6 – 0,4]]: en 2 pasos desde 0 hay 36 % de chance de 1.

Potencia y Chapman-Kolmogorov

P⁵ = P²·P³ debe cerrar exacto:

def matmul(A, B):
    K = len(A)
    return [[sum(A[i][k] * B[k][j] for k in range(K)) for j in range(K)] for i in range(K)]

def matpow(P, n):
    K = len(P)
    R = [[1.0 if i == j else 0.0 for j in range(K)] for i in range(K)]
    for _ in range(n):
        R = matmul(R, P)
    return R

P = [[0.7, 0.3], [0.5, 0.5]]
P5a = matpow(P, 5)
P5b = matmul(matpow(P, 2), matpow(P, 3))
print([[round(x, 4) for x in f] for f in P5a])
print("CK cierra:", all(abs(P5a[i][j] - P5b[i][j]) < 1e-9 for i in range(2) for j in range(2)))

06 · Exploración

Laboratorio: las filas se vuelven π

Curvas p₀₁⁽ⁿ⁾ (turquesa, desde 0) y p₁₁⁽ⁿ⁾ (naranja, desde 1) hacia π₁ = 0,375 (blanca). Movete el paso n: en n = 1 difieren (0,3 vs 0,5); en n = 5 ya son π. La brecha entre ellas decae ×0,2 por paso.

EXPERIMENTO 28

Pⁿ hacia filas π

p₀₁⁽ⁿ⁾, p₁₁⁽ⁿ⁾ → π₁ = 0,375

Los resultados numéricos aparecen debajo.
p₀₁⁽ⁿ⁾0,000
p₁₁⁽ⁿ⁾0,000
Brecha0,000
LecturaDistintas

En n 2: 0,360 y 0,400. Brecha 0,040.

En n = 0 valen 0 y 1 (identidad: sin pasos no hay viaje); desde n = 1 saltan a la fila de P y luego se juntan en π₁.

Preguntas para explorar

  1. En n = 0, ¿cuánto valen p₀₁ y p₁₁? ¿Por qué (P⁰ = I)?
  2. ¿En qué n la brecha cae bajo 0,01? ¿Qué potencia de 0,2 es?
  3. ¿Las filas de P⁵ son π? ¿Qué significa que el origen se borre?
Ver respuestas sugeridas
  1. 0 y 1: en 0 pasos se queda donde está (identidad).
  2. En n = 3 (0,2³ = 0,008 × 1). Tres pasos borran casi todo.
  3. Sí: ambas ≈ [0,625 – 0,375]. En 5 pasos da igual de dónde se vino.

07 · Comprensión

Confusiones frecuentes

«pᵢⱼ⁽ⁿ⁾ es pᵢⱼ a la n»

No: es la entrada (i,j) de la potencia matricial. Elevar casilleros rompe las filas.

«Pⁿ multiplica las chances»

Suma por caminos: pᵢⱼ⁽²⁾ = Σₖ pᵢₖ·pₖⱼ. Todos los puentes k aportan.

«P⁰ no existe»

Es la identidad: 0 pasos = quedarse. Útil como base de potencias.

«Si Pⁿ converge, P es aburrida»

No: converge a π con memoria corta, pero cada fila cuenta una historia distinta al inicio.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: P² a mano

Con P 2×2 (a = 0,3, b = 0,5), calculá p₀₁⁽²⁾ por puentes: 0→0→1 más 0→1→1.

print(0.7 * 0.3 + 0.3 * 0.5)
Ver solución razonada

Da 0,36: 0,21 por quedarse y salir + 0,15 por salir y quedarse. Dos puentes, una suma.

Ejercicio 2: límite de filas

Sin ejecutar primero: ¿a qué tienden p₀₁⁽ⁿ⁾ y p₁₁⁽ⁿ⁾? Comprobalo con P¹⁰.

def matmul(A, B):
    K = len(A)
    return [[sum(A[i][k] * B[k][j] for k in range(K)) for j in range(K)] for i in range(K)]

P = [[0.7, 0.3], [0.5, 0.5]]
R = [[1.0, 0.0], [0.0, 1.0]]
for _ in range(10):
    R = matmul(R, P)
print([[round(x, 4) for x in f] for f in R])
Ver solución

Ambas filas ≈ [0,625 – 0,375] = π. El origen se borró.

Ejercicio 3: CK en 5 = 2+3

Verificá p₀₁⁽⁵⁾ = p₀₀⁽²⁾·p₀₁⁽³⁾ + p₀₁⁽²⁾·p₁₁⁽³⁾ con tus potencias.

Ver una posible respuesta
def matmul(A, B):
    K = len(A)
    return [[sum(A[i][k] * B[k][j] for k in range(K)) for j in range(K)] for i in range(K)]

def matpow(P, n):
    R = [[1.0, 0.0], [0.0, 1.0]]
    for _ in range(n):
        R = matmul(R, P)
    return R

P = [[0.7, 0.3], [0.5, 0.5]]
P2, P3, P5 = matpow(P, 2), matpow(P, 3), matpow(P, 5)
print(round(P2[0][0] * P3[0][1] + P2[0][1] * P3[1][1], 6), round(P5[0][1], 6))

Ambos dan 0,3744: el puente por k = 0 y k = 1 suma el viaje en 5.

09 · Síntesis

Ideas para recordar

  • Pⁿ da las chances en n pasos exactos.
  • CK: P⁽ᵐ⁺ⁿ⁾ = P⁽ᵐ⁾·P⁽ⁿ⁾ sumando por intermedios.
  • Pⁿ no es casillero a la n: es producto matricial.
  • Si converge, las filas tienden a π.
  • En Python: matmul + matpow, test CK.

Cerramos evolución. En el próximo bloque clasificaremos: estados recurrentes, transitorios y más.