Correlação e covariância

Introdução ao Gerenciamento de Risco de Portfólio em Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Correlação de Pearson

Exemplos de diferentes correlações entre duas variáveis aleatórias:

Introdução ao Gerenciamento de Risco de Portfólio em Python

Correlação de Pearson

Um mapa de calor de uma matriz de correlação:

Introdução ao Gerenciamento de Risco de Portfólio em Python

Matriz de correlação em Python

Supondo que StockReturns seja um DataFrame do pandas com retornos de ações, você pode calcular a matriz de correlação assim:

correlation_matrix = StockReturns.corr()
print(correlation_matrix)

Introdução ao Gerenciamento de Risco de Portfólio em Python

Desvio padrão do portfólio

Desvio padrão de um portfólio com dois ativos:

$$ \sigma_p = \sqrt{ w_1^2 \sigma_1^2 + w_2^2 \sigma_2^2 + 2 w_1 w_2 \rho_{1, 2} \sigma_1 \sigma_2 }$$

  • $\sigma_p$: desvio padrão do portfólio
  • w: peso do ativo
  • $\sigma$: volatilidade do ativo
  • $\rho_{1, 2}$: correlação entre os ativos 1 e 2
Introdução ao Gerenciamento de Risco de Portfólio em Python

A matriz de covariância

Para calcular a matriz de covariância ($ \Sigma $) dos retornos X:

Introdução ao Gerenciamento de Risco de Portfólio em Python

A matriz de covariância em Python

Supondo que StockReturns seja um DataFrame do pandas com retornos de ações, você pode calcular a matriz de covariância assim:

cov_mat = StockReturns.cov()
cov_mat

Introdução ao Gerenciamento de Risco de Portfólio em Python

Anualizando a matriz de covariância

Para anualizar a matriz de covariância:

cov_mat_annual = cov_mat * 252
Introdução ao Gerenciamento de Risco de Portfólio em Python

Desvio padrão do portfólio usando covariância

A fórmula da volatilidade do portfólio é:

$$ \sigma_{Portfolio} = \sqrt{ w_T \cdot \Sigma \cdot w } $$

  • $ \sigma_{Portfolio} $: volatilidade do portfólio
  • $ \Sigma $: matriz de covariância dos retornos
  • w: pesos do portfólio ($ w_T $ são os pesos transpostos)
  • $ \cdot $ operador de multiplicação por ponto
Introdução ao Gerenciamento de Risco de Portfólio em Python

Transposição de matriz

Exemplos de operações de transposição de matriz:

Introdução ao Gerenciamento de Risco de Portfólio em Python

Produto escalar

A operação de produto escalar de dois vetores a e b:

Introdução ao Gerenciamento de Risco de Portfólio em Python

Desvio padrão do portfólio em Python

Para calcular a volatilidade do portfólio, assuma um array de pesos e uma matriz de covariância:

import numpy as np
port_vol = np.sqrt(np.dot(weights.T, np.dot(cov_mat, weights)))
port_vol
0.035
Introdução ao Gerenciamento de Risco de Portfólio em Python

Vamos praticar!

Introdução ao Gerenciamento de Risco de Portfólio em Python

Preparing Video For Download...