Taxa de juros real no Brasil
Cálculo dos juros reais
Marcos Júnio Ribeiro
22/08/2022
Nesse post vou calcular a taxa de juros real utilizando o Python dentro do Rmarkdown.A ideia aqui é reproduzir em Python o que foi feito em sala de aula utilizando o Excel. O primeiro passo é importar as bibliotecas que irei utilizar.
import numpy as np
import pandas as pd
from matplotlib.ticker import FuncFormatter
Feito isso, utilizo a função pd.read_excel
do Pandas para importar os dados do meu HD. Posso ver as cinco primeiras linhas dos meus dados com a função df.head()
:
df.head()
## data selic_am inf_esp
## 0 2001-07 1.50 6.40
## 1 2001-08 1.60 6.57
## 2 2001-09 1.32 6.53
## 3 2001-10 1.53 6.49
## 4 2001-11 1.39 5.57
A primeira variável é a data, a segunda, a Taxa de juros - Over / Selic - acumulada no mês - (% a.m.), e a terceira a Expectativa média de Inflação - IPCA - taxa acumulada para os próximos doze meses - (% a.a.).
Vamos calcular a taxa de juros real em % a.a, logo, primeiro temos que anualizar a taxa selic. Para isso vou criar uma função chamada selic_aa
.
def selic_aa(selic_am):
= np.array(selic_am)
selic_am return ((1 + selic_am/100)**12 - 1 )*100
Agora estamos habilitados a fazer o cálculo da Selic a.a.
'selic_aa'] = selic_aa(df['selic_am'])
df[
df.head()
## data selic_am inf_esp selic_aa
## 0 2001-07 1.50 6.40 19.561817
## 1 2001-08 1.60 6.57 20.983041
## 2 2001-09 1.32 6.53 17.042118
## 3 2001-10 1.53 6.49 19.986569
## 4 2001-11 1.39 5.57 18.016159
Agora vamos criar um segunda função para calcular a taxa de juros real.
def selic_real(selic_aa, inf_esp):
= np.array(selic_aa)
selic_aa = np.array(inf_esp)
inf_esp
return ((1 + selic_aa/100)/ (1 + inf_esp/100) - 1)*100
Então podemos calcular a taxa de juros real a.a.
'selic_real'] = selic_real(df['selic_aa'], df['inf_esp'])
df[
df.head()
## data selic_am inf_esp selic_aa selic_real
## 0 2001-07 1.50 6.40 19.561817 12.370129
## 1 2001-08 1.60 6.57 20.983041 13.524482
## 2 2001-09 1.32 6.53 17.042118 9.867754
## 3 2001-10 1.53 6.49 19.986569 12.674025
## 4 2001-11 1.39 5.57 18.016159 11.789485
Vamos fazer um gráfico das variáveis que calculamos do jeito mais simples possível. Vamos usar o próprio Pandas para isso. Primeiro temos que colocar a data como índice do nosso conjunto de dados e em seguida vamos usar a função plot
do Pandas para gerar um gráfico de linhas das variáveis que queremos.
'data', inplace = True)
df.set_index(
= df.iloc[:, 1:].plot(grid = True)
ax lambda y, _: f'{y}%'))
ax.yaxis.set_major_formatter(FuncFormatter(
ax
Também podemos utilizar a função describe
do Pandas para gerar um conjunto de estatísticas descritivas das variáveis do nosso dataframe.
df.describe()
## selic_am inf_esp selic_aa selic_real
## count 242.000000 240.000000 242.000000 240.000000
## mean 0.932769 5.179625 11.902822 6.436842
## std 0.402196 1.461931 5.383821 4.374065
## min 0.130000 2.500000 1.571202 -2.325991
## 25% 0.660000 4.135000 8.213916 3.108725
## 50% 0.910000 4.915000 11.483469 5.835355
## 75% 1.177500 5.957500 15.081995 9.228181
## max 2.080000 13.240000 28.022981 20.333660