01 · Punto de partida
Un número para el arrastre lineal
La dependencia (tema 37) se mide con r de Pearson: −1 a +1. Cerca de +1 suben juntas; de −1 opuestas; de 0 sin línea (pero puede haber curva). r manda en sumas: Var(X+Y) = Var(X)+Var(Y)+2·r·σx·σy.
En simulación, r positivo entre demandas infla picos conjuntos; negativo entre productos estabiliza caja. Generar con ρ dado es un truco estándar.
- ¿La nube tiene línea o curva?
- ¿r cuánto da y con qué n?
- ¿La suma se amplifica o se compensa?
- ¿Cómo genero pares con el ρ observado?
02 · Definición
Lectura de r y de la nube
Positiva
Nube diagonal ↗. Suma amplificada: picos juntos. Paraguas + impermeable.
Nula lineal
Nube redonda. Ojo: puede haber curva (U, anillo) con r = 0. Mirar gráfico, no solo número.
Negativa
Diagonal ↘. Suma compensada: una sube cuando otra baja. Diversificación.
| r | σ suma | Lectura |
|---|---|---|
| +0,8 | ~28 | Picos juntos, más stock |
| 0 | ~21 | Independencia |
| −0,6 | ~13 | Compensan, menos stock |
03 · Generar con ρ dado
El truco de la combinación
Receta normal
Y = ρ·Z₁ + √(1−ρ²)·Z₂
Con Z₁, Z₂ independientes N(0,1). Después escalar: X = μx+σx·Z₁, Y = μy+σy·Y*. Así nace el laboratorio.
Chequeo
r muestral ≈ ρ
Con N grande, r calculado pega a ρ pedido. Con N chico salta: informar n junto a r.
- Covarianza
- r·σx·σy en unidades cuadradas. r la normaliza a −1…+1.
- Pendiente
- Recta Y sobre X: r·σy/σx. No es causalidad: es ajuste lineal.
- No lineal
- r = 0 con curva en U: correlación nula, dependencia total. Graficar siempre.
- Rango
- r con n chico salta ±0,3. Tasas con cientos para publicar.
04 · Ejemplos
r que dimensiona
- 1Lluvia.
r = +0,8 entre paraguas e impermeable: stock conjunto, no por separado.
- 2Verano/invierno.
r = −0,6 entre dos temporadas: diversificar estabiliza.
- 3Pico.
Llegadas y espera r = +0,7: refuerzo conjunto en pico.
- 4Medidas.
Peso y altura r = +0,6: predecir uno con otro (recta).
- 5Ruido.
r ≈ 0 con curva: buscar forma no lineal antes de declarar independencia.
05 · Representación en Python
Generar y medir r
Python en tu navegador. Pedí ρ = 0,7 y medí r.
import random, math, statistics
random.seed(381)
rho, N = 0.7, 2000
xs, ys = [], []
for _ in range(N):
z1 = random.gauss(0,1); z2 = random.gauss(0,1)
xs.append(10+2*z1)
ys.append(10+2*(rho*z1+math.sqrt(1-rho**2)*z2))
mx, my = statistics.mean(xs), statistics.mean(ys)
cov = sum((a-mx)*(b-my) for a,b in zip(xs,ys))/len(xs)
print("r:", round(cov/(statistics.stdev(xs)*statistics.stdev(ys)), 3))
Consejo: con N = 50 r salta ±0,2; con 2000 se pega a ρ.
Varianza de la suma
import statistics
ss = [a+b for a,b in zip(xs,ys)]
print("s suma:", round(statistics.stdev(ss),2), "| teo:", round((4+4+2*0.7*4)**0.5,2))
06 · Exploración
Laboratorio: ρ pedido vs r medido
Pedí ρ: la nube y la recta se alargan. El laboratorio genera N pares, mide r muestral y la s de la suma vs teórica √(8+8ρ). La línea blanca es la diagonal perfecta.
r muestral → ρ
s(X+Y) = √(8+8ρ)
Con N grande, r se pega a ρ y la suma cierra.
Ejes 4 a 16. En suma se ve el ancho: con ρ = 0,9 la campana se ensancha; con −0,9 se afina.
Preguntas para explorar
- Con ρ = 0 y N = 800, ¿r cuánto da? ¿La suma qué ancho tiene?
- Con ρ = 0,9, ¿s suma cuánto da vs teórica? ¿Qué stock pedirías?
- Con ρ = −0,9, ¿por qué la suma se concentra? ¿Cuándo conviene?
Ver respuestas sugeridas
- r ≈ 0, s ≈ 2,83 = √8. Independencia: ancho intermedio.
- s ≈ 3,9 = √(8+7,2). Picos juntos: stock para la suma, no por separado.
- Se compensan (s ≈ 1,05): diversificar productos anti-correlacionados estabiliza caja.
07 · Comprensión
Confusiones frecuentes
«r = 0 prueba independencia»
Solo descarta línea. Curvas en U o anillos dan r = 0 con dependencia total: graficar.
«r alto es causa»
Puede ser Z común. La causa se prueba interviniendo o segmentando, no correlacionando.
«r con 20 datos publica»
Con 20 salta ±0,4. r se publica con cientos y con nube que muestre linealidad.
«La suma siempre amplifica»
Solo con r positiva. Con negativa compensa: por eso diversificar funciona.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: r pedido vs medido
Con ρ = −0,6 y N = 1500, medí r y s de la suma (σ = 2). Teóricas: −0,6 y √(8−4,8).
import random, math, statistics
random.seed(381)
rho, N = -0.6, 1500
xs, ys = [], []
for _ in range(N):
z1, z2 = random.gauss(0,1), random.gauss(0,1)
xs.append(10+2*z1); ys.append(10+2*(rho*z1+math.sqrt(1-rho**2)*z2))
print("teo s:", round((8+8*rho)**0.5,2), "| sim:", round(statistics.stdev([a+b for a,b in zip(xs,ys)]),2))
Ver solución razonada
s ≈ 1,79: la compensación angosta la suma a la mitad vs independencia (2,83).
Ejercicio 2: pendiente
Con los mismos datos, ¿pendiente de Y sobre X? Teórica r·σy/σx = r.
# pendiente = cov/var(x)
mx, my = statistics.mean(xs), statistics.mean(ys)
cov = sum((a-mx)*(b-my) for a,b in zip(xs,ys))/len(xs)
print(round(cov/statistics.variance(xs),3))
Ver solución
Ronda −0,6: con iguales σ, pendiente = r. Así se predice Y desde X linealmente.
Ejercicio 3: stock conjunto
Dos demandas N(100,15) con r = 0,8. ¿σ de la suma? ¿Stock +2σ?
Ver una posible respuesta
import math
s = math.sqrt(225+225+2*0.8*225)
print(round(s,1), round(200+2*s))
σ ≈ 28,5, stock ≈ 257. Con r = 0 serían 242: la correlación cuesta 15 unidades de colchón.
09 · Síntesis
Ideas para recordar
- r ∈ [−1,1]: signo = dirección, |r| = fuerza lineal.
- Var(X+Y) incluye 2rσxσy: correlación manda el stock conjunto.
- Generar: Y = ρZ₁ + √(1−ρ²)Z₂, luego escalar.
- r = 0 no prueba independencia; nube siempre.
- Informar r + n + forma; correlación no es causa.
En el próximo tema generaremos azar a pedido: muestreo.