Dow JonesS&P 500
3. Optimización de portafolios: el cálculo detrás de Markowitz · Lección 6 de 14

El portafolio de varianza mínima: derivando el peso óptimo

¿Por qué y cuándo se usa esto? Cada vez que decides "¿cuánto le pongo a cada activo?" estás resolviendo, aunque no lo sepas, un problema de optimización. Esta lección te da la fórmula exacta para la pregunta más simple de ese tipo: con dos activos dados, ¿qué combinación de pesos me da el menor riesgo posible.

La varianza de un portafolio de 2 activos con pesos w1w_1 y w2=1−w1w_2=1-w_1 es:

σp2(w1)=w12σ12+(1−w1)2σ22+2w1(1−w1)ρ12σ1σ2\sigma_p^2(w_1) = w_1^2\sigma_1^2 + (1-w_1)^2\sigma_2^2 + 2w_1(1-w_1)\rho_{12}\sigma_1\sigma_2

Para hallar el peso que minimiza el riesgo, derivamos respecto a w1w_1 e igualamos a cero:

dσp2dw1=2w1σ12−2(1−w1)σ22+2(1−2w1)ρ12σ1σ2=0\frac{d\sigma_p^2}{dw_1} = 2w_1\sigma_1^2 - 2(1-w_1)\sigma_2^2 + 2(1-2w_1)\rho_{12}\sigma_1\sigma_2 = 0

Despejando w1w_1 se obtiene la fórmula cerrada del portafolio de varianza mínima:

w1∗=σ22−ρ12σ1σ2σ12+σ22−2ρ12σ1σ2w_1^{*} = \frac{\sigma_2^2 - \rho_{12}\sigma_1\sigma_2}{\sigma_1^2+\sigma_2^2-2\rho_{12}\sigma_1\sigma_2}

Procedimiento paso a paso (a mano), portafolio de 2 activos:

  1. Consigue σ1\sigma_1, σ2\sigma_2 (volatilidades) y ρ12\rho_{12} (correlación) de los dos activos.
  2. Numerador: σ22−ρ12σ1σ2\sigma_2^2 - \rho_{12}\sigma_1\sigma_2.
  3. Denominador: σ12+σ22−2ρ12σ1σ2\sigma_1^2+\sigma_2^2-2\rho_{12}\sigma_1\sigma_2.
  4. w1∗=w_1^{*}= numerador ÷ denominador; w2∗=1−w1∗w_2^{*}=1-w_1^{*}.
  5. Si algún peso te da negativo o mayor a 1, significa que la fórmula "quiere" vender en corto uno de los activos — sin esa opción, el mínimo real está en la esquina (w1=0w_1=0 o w1=1w_1=1).

Ahora aplica el procedimiento:

Problema. Activo 1 con σ1=20%\sigma_1=20\%, activo 2 con σ2=10%\sigma_2=10\%, ρ12=0.3\rho_{12}=0.3. Encuentra w1∗w_1^{*}.

Solución. Numerador: 0.102−0.3(0.20)(0.10)=0.01−0.006=0.0040.10^2 - 0.3(0.20)(0.10) = 0.01-0.006=0.004. Denominador: 0.202+0.102−2(0.3)(0.20)(0.10)=0.04+0.01−0.012=0.0380.20^2+0.10^2-2(0.3)(0.20)(0.10)=0.04+0.01-0.012=0.038. w1∗=0.004/0.038≈10.5%w_1^{*}=0.004/0.038\approx 10.5\%, así que w2∗≈89.5%w_2^{*}\approx 89.5\%: casi todo en el activo menos volátil, con solo un poco del más volátil porque su correlación moderada todavía aporta diversificación.

Practica tú (resuelve antes de mirar la respuesta). Dos activos con σ1=30%\sigma_1=30\%, σ2=30%\sigma_2=30\% y ρ12=−0.5\rho_{12}=-0.5. Encuentra w1∗w_1^{*}. Respuesta: por simetría (σ1=σ2\sigma_1=\sigma_2), w1∗=50%w_1^{*}=50\% — cuando las volatilidades son iguales, el mínimo siempre reparte a la mitad, sin importar la correlación.

El caso general (N activos): minimizar 12wTΣw\frac12 w^{\mathsf T}\Sigma w sujeto a wTμ=r∗w^{\mathsf T}\mu = r^{*} y wT1=1w^{\mathsf T}\mathbf 1 = 1 se resuelve con multiplicadores de Lagrange:

L(w,λ1,λ2)=12wTΣw−λ1(wTμ−r∗)−λ2(wT1−1)\mathcal L(w,\lambda_1,\lambda_2) = \tfrac12 w^{\mathsf T}\Sigma w - \lambda_1(w^{\mathsf T}\mu-r^{*}) - \lambda_2(w^{\mathsf T}\mathbf 1-1)

La condición de primer orden ∇wL=0\nabla_w\mathcal L=0 da Σw=λ1μ+λ21⇒w=Σ−1(λ1μ+λ21)\Sigma w = \lambda_1\mu+\lambda_2\mathbf 1 \Rightarrow w=\Sigma^{-1}(\lambda_1\mu+\lambda_2\mathbf 1) — el peso óptimo es la matriz de covarianza invertida aplicada a una combinación de los retornos esperados y un vector de unos. Esta es, literalmente, la ecuación que resuelve cualquier optimizador de portafolios moderno.

🔧 En código libre: CVXPY resuelve este problema de optimización cuadrática directamente; PyPortfolioOpt y Riskfolio-Lib lo envuelven en funciones listas para usar con datos reales de precios.

📌 Para repasar: para 2 activos, w1∗=σ22−ρ12σ1σ2σ12+σ22−2ρ12σ1σ2w_1^{*}=\dfrac{\sigma_2^2-\rho_{12}\sigma_1\sigma_2} {\sigma_1^2+\sigma_2^2-2\rho_{12}\sigma_1\sigma_2}. Se obtiene derivando la varianza del portafolio e igualando a cero — el mismo truco de cálculo de toda la optimización moderna.

Práctica paso a paso

Portafolio de varianza mínima

Mira cómo se resuelve completo y por qué se hace cada paso.

Dos activos con volatilidad σ₁ = 20% y σ₂ = 10%, y correlación ρ = 0.3. ¿Qué porcentaje del dinero pones en cada uno para que el portafolio tenga el menor riesgo posible?

  1. 1Numerador

    Calcula σ₂² − ρ·σ₁·σ₂ con las volatilidades en decimal (σ₁ = 0.2, σ₂ = 0.1). Redondea a 4 decimales.

    σ22−ρ σ1σ2\sigma_2^2 - \rho\,\sigma_1\sigma_2
    0.12−0.3×0.2×0.1=0.01−0.006=0.0040.1^2 - 0.3\times 0.2\times 0.1 = 0.01 - 0.006 = 0.004
  2. 2Denominador

    Calcula σ₁² + σ₂² − 2·ρ·σ₁·σ₂ (también en decimal). Redondea a 4 decimales.

    σ12+σ22−2ρ σ1σ2\sigma_1^2 + \sigma_2^2 - 2\rho\,\sigma_1\sigma_2
    0.04+0.01−2×0.3×0.2×0.1=0.0380.04 + 0.01 - 2\times 0.3\times 0.2\times 0.1 = 0.038
  3. 3Peso del activo 1

    Divide el numerador entre el denominador y pásalo a %. Es el peso w₁* del activo 1. Redondea a 1 decimal.

    w1∗=σ22−ρσ1σ2σ12+σ22−2ρσ1σ2w_1^{*} = \dfrac{\sigma_2^2 - \rho\sigma_1\sigma_2}{\sigma_1^2+\sigma_2^2-2\rho\sigma_1\sigma_2}
    w1∗=0.0040.038=10.5w_1^{*} = \frac{0.004}{0.038} = 10.5%
  4. 4Peso del activo 2

    El resto del dinero va al activo 2: w₂* = 100% − w₁*. Redondea a 1 decimal.

    w2∗=1−w1∗w_2^{*} = 1 - w_1^{*}
    w2∗=100%−10.5%=89.5%w_2^{*} = 100\% - 10.5\% = 89.5\%

    Pon aproximadamente 10.5% en el activo 1 y 89.5% en el 2: así el portafolio tiene el menor riesgo posible con esos dos activos.

Los errores que más se repiten
  • Usar los porcentajes sin pasarlos a decimal antes de elevar al cuadrado.

  • Olvidar el 2 delante de ρ·σ₁·σ₂ en el denominador.

  • Poner σ₁² en el numerador en lugar de σ₂².

  • Dividir al revés (denominador ÷ numerador).

  • Pasar por alto que un peso negativo o mayor que 100% significa vender en corto: sin esa opción, el mínimo está en una esquina.