1 votos

Cálculo de la Probabilidad de Incumplimiento

Estoy leyendo un libro de Tiziano Bellini titulado IFRS 9 y CECL Credit Risk Modelling y Validation, para entender el cálculo de la probabilidad de incumplimiento (enlace: https://www.sciencedirect.com/science/article/pii/B9780128149409000104?via%3Dihub)

El autor ha proporcionado algo de código R para ilustrar el cálculo de PD. La Página-51, dice lo siguiente -

# 1. Definición de bandera de incumplimiento y preparación de datos
# 1.1. Importar datos
oneypd<- read.csv(’chap2oneypd.csv’) [,2:45]
library(dplyr)
# 1.1.1. Panorama general de datos: contenido y formato de los datos
dplyr::glimpse(oneypd)
# $ id  6670001, 9131199...
# $ vintage_year  2005, 2006...
# $ monthly_installment  746.70, 887.40...
# $ loan_balance  131304.44, 115486.51...
# $ bureau_score  541, 441...
# ...
# 1.1.2. Formato de fecha
library(vars)
oneypd <- dplyr::mutate_at(oneypd, vars(contains(’date’)),
funs(as.Date))
class(oneypd$origination_date)
# 1.1.3. Redondeo de campos de cuenta de atrasos
oneypd$max_arrears_12m<- round(oneypd$max_arrears_12m,4)
oneypd$arrears_months<- round(oneypd$arrears_months,4)

# 1.2. Definición de bandera de incumplimiento
oneypd<- dplyr::mutate(oneypd,
default_event = if_else(oneypd$arrears_event == 1 |
oneypd$term_expiry_event == 1 |
oneypd$bankrupt_event == 1, 1,0))

# 1.3. División de la base de datos en muestras de entrenamiento y prueba
# Recodificar variables de eventos de incumplimiento para un uso más conveniente
# 0-incumplimiento, 1-no incumplimiento
oneypd$default_flag<-
dplyr::if_else(oneypd$default_event == 1,0,1)
# Realizar un muestreo estratificado: 70% de entrenamiento y 30% de prueba
library(caret)
set.seed(2122)
train.index <- caret::createDataPartition(oneypd$default_event,
p = .7, list = FALSE)
train <- oneypd[ train.index,]
test <- oneypd[-train.index,]

Luego, él creó la siguiente tabla -

enter image description here

Sin embargo, no pude replicar la generación de las variables que empiezan con woe_ es decir woe_cc_util etc.

¿Puedes ayudarme a crear los códigos correspondientes en R para construir esas variables? Los datos están disponibles en el enlace - https://www.tizianobellini.com/copy-of-chapter-2-4

Realmente aprecio cualquier indicación.

1voto

Paul Williams Puntos 7390

Según puedo ver, el autor comparte información WOE codificada en https://www.tizianobellini.com/copy-of-data-and-code con el nombre de "Código de Software Complementario". Si quieres profundizar, puedes probar varios paquetes en R como smbinning o Klar.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X