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
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.