Python: Modelo de Precificação de Ativos (CAPM)

Python: Modelo de Precificação de Ativos (CAPM)

filipe-duarte

10 FEV

4 MIN

Python: Modelo de Precificação de Ativos (CAPM)

Hoje seguimos nosso estudo de introdução à ciência da computação com Python. Já temos uma série de aulas sobre o programa, vale a pena conferir nossa categoria “Quant & Investimentos” para acompanhar o curso completo.

O texto de hoje traz conteúdo sobre como aplicar o modelo CAPM (Capital Asset Pricing Model). O modelo de precificação de ativos é um método que analisa a relação entre o fator de risco sistemático e o retorno esperado de um determinado ativo. Dividimos o artigo nos seguintes tópicos:

  • Modelo CAPM
  • Calculando o CAPM com o Python

Boa leitura!

Curso de Introdução ao Python

Chegamos a nossa última da série de Introdução ao Python. Confira nossas últimas aulas:

No texto de hoje, iremos aprender como calcular o beta e o retorno esperado de um ativo e como estimar o modelo CAPM no Python a partir de uma biblioteca estatística chamada statsmodel.

Modelo CAPM

O modelo CAPM (Capital Asset Pricing Model) é utilizado para estimar o retorno esperado teórico de um ativo, ou melhor, a taxa de retorno esperada (custo de capital) que é apropriada para um determinado ativo.

A equação que calcula o retorno esperado de um ativo através do modelo CAPM está exposta na equação 1 a seguir:

Em que:

  • E [Ri] é o retorno esperado do ativo i;
  • βi é o beta do ativo i;
  • Rf é o retorno da taxa livre de risco;
  • E [Rm] é o retorno esperado do mercado;
  • E [Rm] – Rf é o Prêmio de Risco de Mercado.

A taxa livre de risco é calculada a partir de um investimento com o menor grau de risco no mercado de renda fixa. No exemplo a seguir utilizaremos a taxa Selic.

Regressão linear

Para estimar o beta (sensibilidade do retorno esperado ao mercado), utilizaremos o método estatístico Regressão Linear Simples o qual relaciona a variável Dependente (retorno esperado de um ativo) à variável independente (prêmio de risco de mercado).

A abordagem mais utilizada para estimar o beta de um ativo se dá através da regressão especificada na equação 2 a seguir:

Em que:

  • Rt – Rft é o excesso de retorno do ativo durante o período t;
  • Rmt – Rft é o excesso de retorno do mercado durante o período t;
  • ∈t é o resíduo da regressão.

Conforme Bali et al. (2016), se o modelo de regressão (equação 2) descrever o retorno do ativo e o alfa () for zero, então aplicando o valor esperado em ambos os lados da equação, teremos o modelo CAPM. Dessa maneira, o beta do ativo será o coeficiente estimado pela regressão linear.

Calculando o CAPM com o Python

Antes de iniciar estimando o modelo de regressão, apresentado na equação 2, precisamos aprender a importar uma biblioteca no Python. Biblioteca é uma coleção de módulos com diversas funções que simplificam nossa vida.

Para importar uma biblioteca basta digitar o comando ‘import’ seguido do nome da biblioteca. Para estimar o modelo de regressão, vamos importar duas bibliotecas:

  • numpy
  • statsmodel.api

Biblioteca numpy e statsmodel.api

A biblioteca numpy servirá para transformar nossa lista de dados em arrays (vetores), ao passo que a biblioteca statsmodel.api nos fornecerá uma função para estimar o modelo de regressão.

É possível simplificar os nomes das bibliotecas quando for importá-las. Basta você escrever o comando ‘as’ (após o nome da biblioteca) seguido do nome simplificado. Vamos importar numpy como ‘np’ e statsmodel.api como ‘sm’, veja abaixo:

Importando bibliotecas

Os dados utilizados neste artigo são de cotações de fechamento, de periodicidade anual e foram extraídos do Yahoo Finance e do Banco Central. Selecionamos a ação ordinária da Petrobrás (PETR3) e o índice Ibovespa (representando o mercado) para implementar o modelo e estimar e calcular o CAPM. O período compreende os anos 2010 a 2020, computados em 1º de janeiro. Para a taxa livre de risco, utilizamos a Selic (dados do Banco Central).

Dados de retorno da PETR3, Ibovespa e Selic

Transformando em array com o numpy

Calculando o excesso de retorno e o prêmio de risco de mercado (com array você pode realizar operações matriciais, não é necessário realizar um laço de repetição como visto em artigo anterior).

Estimação do modelo e apresentação dos resultados

Perceba que antes de estimar o modelo de regressão, criamos um objeto chamado ‘premio_risco_mercado_matriz’ para adicionar a constante (alfa) ao modelo de regressão.

A função que ‘cria a equação de regressão’ é chamada de ‘OLS()’, um atributo da biblioteca sm (por isso utilizamos sm.OLS). Nós criamos um objeto que se chama mod, o qual possui o atributo ‘.fit()’.

Dito isso, temos um beta no valor de 1,2612 cuja estatística t foi de 3.054, evidenciando uma significância estatística. Como podemos ver, o ativo PETR3 possui um beta maior do que 1, significando que ele possui uma maior sensibilidade às variações do mercado.

Sendo assim, temos a equação 3 do modelo CAPM para o ativo PETR3, como se vê a seguir:

Fixando os valores da taxa livre de risco e do valor esperado do retorno do mercado, podemos calcular o retorno esperado para o ativo PETR3. Esse valor esperado representa o custo de capital exigido como taxa de desconto, representando, desse modo, uma taxa de risco teórica para o ativo em questão.

Portanto, terminamos essa série de artigos de Introdução ao Python aprendendo a estimar uma regressão linear para obter o beta de um ativo a partir do modelo CAPM. Esperamos que tenham gostado. Em breve traremos ainda mais novidades!

Referências

BALI, T. G.; ENGLE, R. F.; MURRAY, S. Empirical Asset Pricing: The Cross Section of Stock Returns. Hoboken: Wiley, 2016.

Colaborador do TC School

Aprenda tudo sobre contabilidade

E-BOOK

Aprenda tudo sobre contabilidade

Neste e-book — “Contabilidade”, trazemos informações e conceitos importantes sobre contabilidade financeira.

Receba todas as novidades do TC

Deixe o seu contato com a gente e saiba mais sobre nossas novidades, eventos e facilidades.

Receba todas as novidades do TC

Deixe o seu contato com a gente e saiba mais sobre nossas novidades, eventos e facilidades.