PIT PD calibration
This articles briefly outlines the approach for PIT PD calibration. We have discussed briefly about the PD model development in other articles. Output of PD model is raw PDs, which are obtained by using the value of different parameters and multiplying it by corresponding coefficient of the PD model.
Now the questions arise why we need to calibrate PIT PD model, we are already using latest data to calculate the PIT PD. Answer to this question is that we might be using all available data to build PD model. The most recent default rates might be different than the calculated mean PD of the portfolio. Thumb rule is that mean PDs calculated from PD model for the most recent populations should be equal to most recent default rates of portfolio. If that is not the case, then we need to recalibrate the PD model.
Now other question arises whether we should calibrate the PD model on grade level or portfolio level. The answer to this question is that it depends upon size of your portfolio, how many customers are available. In general retail portfolio, we have enough number of customers but wholesale, corporate and commercial portfolio might have smaller number of customer depending upon the size of bank, building society.
If you are looking to perform the PD calibration of the grade, firstly we will learn how to create the grade using the R. You might use the below simple code to create 15grades
PIT_PD <- read_excel("C:/Users/nitin/Downloads/Nitin_PIT_Project/PD Data_latest.xlsx")
grade = cut(PIT_PD$PD, breaks=quantile(PIT_PD$PD, probs=c(0:15/15)), labels=1:15, include.lowest=TRUE)
PIT_PD$grade = grade
Once you have obtained the grade, then we will perform the calibration for each grade using the logistic regression. There might be different formula for different kinds of portfolio depending upon whether its wholesale, corporate or commercial. In general, logistic regression works for retail. You might use such a simple code in R to do PIT calibration on each grade level as follows:
glm.fit <- glm(Dependent ~ PD, data = PIT_PD_grade1, family = binomial)
summary(glm.fit)
PIT_PD_grade1$Cal_PD= 1/(1+ exp(-(-3.5969 + 8.1878*PIT_PD_grade1$PD)))
Once the PD calibration is done, you need to validate it. The simplest validation technique is that calibrated mean PD should be equal to mean default rate for a portfolio.
hi Nitin, is it possible to share the data used for the exercise
Perfect