suppressMessages(library(PDtoolkit))
data(loans)
#identify numeric risk factors
num.rf <- sapply(loans, is.numeric)
num.rf <- names(num.rf)[!names(num.rf)%in%"Creditability" & num.rf]
#discretized numeric risk factors using mdt.bin from monobin package
loans[, num.rf] <- sapply(num.rf, function(x)
mdt.bin(x = loans[, x], y = loans[, "Creditability"])[[2]])
str(loans)
res <- stepFWD(start.model = Creditability ~ 1,
p.value = 0.05,
coding = "WoE",
db = loans)
#run cutoff optimization
cop <- cutoff.palette(predictions = predict(res$model, type = "response"),
observed = loans$"Creditability",
min.pct.obs = 0.05,
min.pct.def = 0.01)
cop
confusion.matrix(predictions = predict(res$model, type = "response"),
observed = loans$"Creditability",
cutoff = cop$cutoff.max[cop$metric%in%"f1.score"])
Run the code above in your browser using DataLab