Introdução

O modelo de Merton (1974) é amplamente utilizado para avaliar o risco de crédito de uma empresa. Ele considera que os acionistas possuem uma opção de compra (call option) sobre os ativos da empresa, e a Probabilidade de Default (PD) ocorre quando o valor dos ativos da empresa fica abaixo do valor da dívida no vencimento.

A fórmula para PD é dada por:

\[ PD = \Phi(-d_2) \]

onde:

\[ d_2 = \frac{\ln(A_0 / D) + (\mu - \frac{1}{2} \sigma_A^2)T}{\sigma_A \sqrt{T}} \]

onde: - \(A_0\) = Valor de mercado dos ativos da empresa - \(D\) = Dívida total no vencimento - \(\mu\) = Retorno esperado dos ativos - \(\sigma_A\) = Volatilidade dos ativos - \(T\) = Tempo até o vencimento - \(\Phi(x)\) = Função de distribuição normal acumulada


1. Cálculo da Probabilidade de Default (PD)

Primeiramente, definimos os parâmetros do modelo.

library(ggplot2)
library(dplyr)
## 
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
## 
##     filter, lag
## Os seguintes objetos são mascarados por 'package:base':
## 
##     intersect, setdiff, setequal, union
# Definição dos parâmetros
A0 <- 100       # Valor de mercado dos ativos da empresa
D <- 80         # Valor da dívida
mu <- 0.05      # Retorno esperado dos ativos (5%)
sigma_A <- 0.20 # Volatilidade dos ativos (20%)
T <- 1          # Tempo até o vencimento (1 ano)

# Cálculo de d2
d2 <- (log(A0 / D) + (mu - 0.5 * sigma_A^2) * T) / (sigma_A * sqrt(T))

# Cálculo da PD usando a distribuição normal padrão
PD <- pnorm(-d2)

# Exibir o resultado
PD
## [1] 0.1028071
# Criando um intervalo de volatilidade (10% a 50%)
sigma_range <- seq(0.10, 0.50, by=0.01)

# Calculando PD para diferentes volatilidades
PD_values <- sapply(sigma_range, function(s) {
  d2 <- (log(A0 / D) + (mu - 0.5 * s^2) * T) / (s * sqrt(T))
  return(pnorm(-d2))
})

# Criando um data frame
df <- data.frame(sigma_A = sigma_range, PD = PD_values)

# Gerando o gráfico
ggplot(df, aes(x = sigma_A, y = PD)) +
  geom_line(color = "blue", size = 1.2) +
  geom_point(color = "red", size = 1) +
  labs(title = "Probabilidade de Default vs. Volatilidade dos Ativos",
       x = "Volatilidade dos Ativos (σ_A)",
       y = "Probabilidade de Default (PD)") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.