Volatilidad portafolio de inversión#

La varianza es el cuadrado de la dispersión alrededor de la media (\(\sigma^2\)).

La desviación estándar, o también llamada volatilidad, es la raíz cuadrada de la varianza. Tiene las mismas unidades que la variable original.

Forma polinomial#

\[\sigma_P=\sqrt{\sum_{i=1}^n\sum_{j=1}^nw_iw_j\sigma_{i,j}}=\sqrt{\sum_{i=1}^n\sum_{j=1}^nw_iw_j\sigma_j\sigma_j\rho_{i,j}}\]

\[\sigma_P=\sqrt{\sum_{i=1}^nw_i^2\sigma_i^2+2\sum_{i<j}w_iw_j\sigma_i\sigma_j\rho_{i,j}}\]

Varianza entre dos activos.#

\[\sigma_P^2=w_A^2\sigma_A^2+w_B^2\sigma_B^2+2w_Aw_B\sigma_{A,B}\]

\(\sigma_p^2:\) varianza del portafolio de inversión.

\(\sigma_A^2:\) varianza activo A.

\(\sigma_B^2:\) varianza activo B.

\(w_A^2:\) proporción de inversión en A al cuadrado.

\(w_B^2:\) proporción de inversión en B al cuadrado.

\(w_A:\) proporción de inversión en A.

\(w_B:\) proporción de inversión en B.

\(\sigma_{A,B}:\) covarianza entre A y B.

Volatilidad de dos activos.#

\[\sigma_P=\sqrt{w_A^2\sigma_A^2+w_B^2\sigma_B^2+2w_Aw_B\sigma_{A,B}}\]

\(\sigma_p:\) volatilidad o desviación estándar del portafolio de inversión.

\[\sigma_{A,B}=\sigma_A \sigma_B\rho_{A,B}\]

\(\rho_{A,B}:\) coeficiente de correlación entre A y B.

\[\sigma_P=\sqrt{w_A^2\sigma_A^2+w_B^2\sigma_B^2+2w_Aw_B\sigma_A\sigma_B\rho_{A,B}}\]

Ejemplo:#

Volatilidad

Proporción de inversión

Acción A

2%

70%

Acción B

5%

30%

\[\rho_{A,B}=0,67\]
volatilidad_portafolio = sqrt(0.7^2*0.02^2 + 0.3^2*0.05^2 + 2*0.7*0.3*0.02*0.05*0.67)
volatilidad_portafolio
0.0265028300375639

Volatilidad del portafolio de inversión de 2,65%.

Ejemplo:#

Volatilidad

Proporción de inversión

Acción A

2%

30%

Acción B

5%

70%

\[\rho_{A,B}=0,67\]
volatilidad_portafolio = sqrt(0.30^2*0.02^2 + 0.70^2*0.05^2 + 2*0.30*0.70*0.02*0.05*0.67)
volatilidad_portafolio
0.0392734006676274

Volatilidad del portafolio de inversión de 3,93%.

Volatilidad de tres activos.#

\[\sigma_P=\sqrt{w_A^2\sigma_A^2+w_B^2\sigma_B^2+w_C^2\sigma_C^2+2w_Aw_B\sigma_{A,B}+2w_Aw_C\sigma_{A,C}+2w_Bw_C\sigma_{B,C}}\]

\[\sigma_P=\sqrt{w_A^2\sigma_A^2+w_B^2\sigma_B^2+w_C^2\sigma_C^2+2w_Aw_B\sigma_A\sigma_B\rho_{A,B}+2w_Aw_C\sigma_A\sigma_C\rho_{A,C}+2w_Bw_C\sigma_B\sigma_C\rho_{B,C}}\]

Ejemplo:#

Volatilidad

Proporción de inversión

Acción A

2%

20%

Acción B

4%

50%

Acción C

3,2%

30%

Matriz de coeficientes de correlación:#

Acción A

Acción B

Acción C

Acción A

1

0,52

0,32

Acción B

0,52

1

0,48

Acción C

0,42

0,48

1

volatilidad_portafolio = sqrt(0.20^2*0.02^2 + 0.50^2*0.04^2 + 0.30^2*0.032^2 + 2*0.20*0.50*0.02*0.04*0.52 + 2*0.20*0.30*0.02*0.032*0.42 + 2*0.50*0.30*0.04*0.032)
volatilidad_portafolio
0.0317429677251513

Volatilidad del portafolio de inversión de 3,17%.

Forma matricial#

Varianza entre dos activos#

image0

Ejemplo:#

Volatilidad

Proporción de inversión

Acción A

2%

70%

Acción B

5%

30%

Matriz de varianzas-covarianzas#

Acción A

Acción B

Acción A

0,0010196809

0,0005939468

Acción B

0,0005939468

0,0008155434

Vector de proporciones.#

proporciones = c(0.70, 0.30)
proporciones
  1. 0.7
  2. 0.3

Es importante conocer si el vector de proporciones está en posición horizontal o vertical. La ecuación de volatilidad en forma matricial, indica que primero el vector de proporciones debe estár horizontal y después vertical.

Matriz de varianzas-covarianzas#

Si utilizamos cbind, entonces cada vector será una columna.

vector_1 = c(0.0010196809, 0.0005939468)

vector_2 = c(0.0005939468, 0.0008155434)

covarianzas = cbind(vector_1, vector_2)
covarianzas
A matrix: 2 × 2 of type dbl
vector_1vector_2
0.00101968090.0005939468
0.00059394680.0008155434
volatilidad_portafolio = sqrt(sum(proporciones%*%covarianzas*t(proporciones)))
volatilidad_portafolio
0.0286792643385426

Volatilidad del portafolio de inversión de 2,87%.

Ejemplo con histórico de precios#

Importar datos.#

datos = read.csv("Cuatro acciones 2020.csv", sep = ";", dec = ",", header = T)

Matriz de precios.#

precios = datos[,-1]
precios = ts(precios)

Nombres de las acciones.#

nombres = colnames(precios)
nombres
  1. 'ECO'
  2. 'PFAVAL'
  3. 'ISA'
  4. 'NUTRESA'

Matriz de rendimientos.#

rendimientos = diff(log(precios))

Volatilidad de cada acción.#

volatilidades = apply(rendimientos, 2, sd)
volatilidades
ECO
0.0319324424190137
PFAVAL
0.0285577211893029
ISA
0.0237292026947701
NUTRESA
0.0140104740592151

Matriz de varianzas-covarianzas#

covarianzas = cov(rendimientos)
covarianzas
A matrix: 4 × 4 of type dbl
ECOPFAVALISANUTRESA
ECO0.00101968090.00059394680.00011603270.0001493216
PFAVAL0.00059394680.00081554340.00015643600.0001322689
ISA0.00011603270.00015643600.00056307510.0001519996
NUTRESA0.00014932160.00013226890.00015199960.0001962934

Proporciones de inversión.#

proporciones = c(0.20, 0.30, 0.40, 0.10)
proporciones
  1. 0.2
  2. 0.3
  3. 0.4
  4. 0.1

Volatilidad del portafolio de inversión (forma matricial).#

volatilidad_portafolio = sqrt(sum(proporciones*covarianzas*t(proporciones)))
volatilidad_portafolio
Error in proporciones * covarianzas * t(proporciones): arreglos de dimensón no compatibles
Traceback:

Para corregir el error anterior, debemos poner en la primera multiplicación %*%, que en código de R se utiliza para multiplicación de vectores y matrices.

volatilidad_portafolio = sqrt(sum(proporciones%*%covarianzas*t(proporciones)))
volatilidad_portafolio
0.0189655883295511

Volatilida del portafolio de inversión de 1,897% diaria.

Volatilidad del portafolio de inversión a partir de los rendimientos de las acciones.#

Rendimientos del portafolio de inversión.#

rendimientos_portafolio = vector()

for(i in 1:nrow(rendimientos)){

  rendimientos_portafolio[i] = sum(rendimientos[i,]*proporciones)
}

Volatilidad del portafolio de inversión#

volatilidad_portafolio = sd(rendimientos_portafolio)
volatilidad_portafolio
0.0189655883295511

Se obtiene el mismo resultado que por la forma matricial. Este método se puede usar sólo cuando se tienen los históricos de precios.