Skip to main content

Advanced Credit Risk Modeling for Basel/IFRS 9 using R/Python/SAS

In this course, students learn how to do advanced credit risk modeling.

About This Course

In this course, students learn how to do advanced credit risk modeling. We start by reviewing the Basel and IFRS 9 regulation. We then discuss how to leverage alternative data sources for credit risk modeling and do feature engineering. This is followed by an overview of variable selection and profit driven performance evaluation. We discuss some advanced modeling methods such as ensemble methods, neural networks, and Bayesian networks. We then cover low default portfolios and validation. The course concludes by reviewing stress testing. Modeling methods, performance measurement and benchmarks are discussed into great detail. The course provides a sound mix of both theoretical and technical insights, as well as practical implementation details. These are illustrated by several real-life case studies and examples. The course also features code examples in R, Python and SAS. Throughout the course, the instructors also extenisvely report upon their research and industry experience.

The course features more than 6 hours of video lectures, multiple multiple choice questions, and various references to background literature. A certificate signed by the instructors is provided upon successful completion.

See this sample lecture video on YouTube to get a free teaser of the course contents.

We can also come and teach this course on-site in classroom format. If interested, please mail us at:


The enrollment fee for this course is EUR 250 (VAT excl.) per participant. Payments are securely handled by PayPal. If you are a company in the European Union, then we can apply VAT reverse charge. For this, please mail your VAT number to Part of our course revenue is used towards funding organizations involvement in protecting and cleaning our oceans. See our about page to learn more about our mission statement.

After enrollment, participants will get 1 year unlimited access to all course material (videos, R/Python/SAS scripts, quizzes and certificate).


Before subscribing to this course, you should have business expertise in credit risk and a basic understanding of descriptive statistics (e.g., mean, median, standard deviation, etc.) and inference (e.g., confidence intervals, hypothesis testing). Previous R, Python or SAS experience is helpful but not necessary. You're also adviced to complete our Basic Credit Risk Modeling for Basel/IFRS 9 using R/Python/SAS course first if you haven't done so already.

Course Outline

  • Introduction
    • Instructor Team
    • Our Credit Risk Publications
    • Course Outline
    • Software
    • R/Python tutorials
    • Data sets
    • Disclaimer
  • Credit Risk Modeling for Basel and IFRS 9
    • Regulatory versus Economic Capital
    • Basel I and II
    • Basel III
    • Basel IV
    • Basel Approaches to Model Credit Risk
    • Standardized Approach
    • IRB Approach
    • Default Rating Specifics
    • Basel IRB Model Architecture
    • Merton Model
    • Risk Weight Functions
    • Risk Weight Functions in R
    • Risk Weight Functions in Python
    • IFRS 9
    • Credit Risk Analytics
  • Alternative Data Sources for Credit Risk Modeling
    • Call Detail Record Data
    • Social Media Data
    • Clickstream Data
    • Google Street View
    • Google Trends
    • API/Web Scraping
    • Web Scraping in Python
    • Open Data
  • Feature Engineering
    • Feature Engineering Defined
    • RFM features
    • Trend features
    • Ratio features
    • Logarithmic transformation
    • Power transformation
    • Box-Cox transformation
    • Yeo-Johnson transformation
    • Principal Component Analysis
    • Percentile coding
    • Thermometer coding
    • Performance Optimization
    • Feature engineering in R
    • Feature engineering in Python
  • Variable Selection
    • Filter methods (gain, Cramer’s V, Fisher score)
    • Filters in R
    • Filters in Python
    • Forward/Backward/Stepwise regression
    • Forward/Backward/Stepwise in R
    • BART: Backward Regression Trimming
    • BART variable selection in R
    • Criteria for variable selection
  • Profit Driven Performance Evaluation
    • Profit Driven Performance evaluation
    • Total and Average Misclassification Cost
    • Cutoff point tuning
    • MP and EMP
  • Ensemble Methods
    • Bootstrapping
    • Bagging
    • Boosting
    • Random Forests
    • Random Forests in R
    • Random Forests in Python
    • XGBoost
    • XGBoost in R
    • XGBoost in Python
  • Neural Networks
    • Neural Networks
    • Multilayer Perceptron
    • Deep Learning Neural Networks
    • Deep Learning for Credit Scoring: Do or Don't?
    • Neural Networks in Credit Risk
    • Neural Networks in R
    • Neural Networks in Python
    • Opening Neural Network Black Box
    • Variable Selection
    • Rule Extraction
    • Decompositional Rule Extraction
    • Pedagogical Rule Extraction
    • Quality of Extracted Rule Set
    • Rule Extraction Example
    • Two-Stage Model
    • Self-Organizing Maps
    • Self-Organizing Maps Example
    • Self-Organizing Maps Evaluated
    • SOMs in R
  • Bayesian Networks
    • Bayesian Networks
    • Example Bayesian Network Classifier
    • Naive Bayes Classifier
    • Tree Augmented Naive Bayes Classifiers
    • Bayesian Networks in R
    • Bayesian Networks in Python
  • Low Default Portfolios
    • Low Default Portfolios
    • Modeling Approaches
    • Shadow Rating Approach
    • Cumulative Logistic Regression in R
    • Cumulative Logistic Regression in Python
    • Sampling Approaches
    • Undersampling
    • Oversampling
    • Synthetic Minority Oversampling technique (SMOTE)
    • Adjusting Posterior Probability estimates
    • Adjusting Posterior Probability estimates in R
    • Adjusting Posterior Probability estimates in Python
    • Calibration Approaches
    • Calibration Approach in R
    • Calibration Approach in Python
    • EAD and LGD for Low Default Portfolios
  • Model Validation
    • A regulatory perspective
    • Validation Overview
    • Developing a Validation Framework
    • Quantitative Validation
    • Backtesting PD
    • Backtesting PD at Level 0
    • System Stability Index in R
    • System Stability Index in Python
    • Backtesting PD at Level 1
    • ROC curve in R
    • ROC Curve in Python
    • Overrides
    • Backtesting PD at Level 2
    • Brier Score
    • Binomial Test
    • Binomial test in R
    • Binomial test in Python
    • Hosmer-Lemeshow Test
    • Normal Test
    • Vasicek One-Factor test
    • Vasicek One-Factor test in R
    • Vasicek One-Factor test in Python
    • Data Aggregation
    • Risk Rating Philosophy
    • Example Traffic Light Indicator Dashboard
    • Example Action Scheme
    • Backtesting LGD and EAD (Bootstrapping, F-test, Student’s t test, Wilcoxon signed rank test, loss shortfall, mean absolute deviation)
    • Benchmarking
    • Rating Difference Histogram
    • Spearman’s Rank-Order Correlation
    • Kendall’s Tau
    • Goodman-Kruskal Gamma
    • Benchmarking Example
    • Ranking statistics in R
    • Ranking statistics in Python
    • Qualitative Validation
    • Use test
    • Data quality
    • Model design
    • Documentation
    • Corporate governance and management oversight
    • Privacy and Security
  • Stress Testing
    • Stress Testing
    • Stress Testing Applications
    • Regulatory perspective
    • Challenges in stress testing
    • Types of stress testing
    • Sensitivity-based stress testing analysis
    • Scenario analysis
    • Historical scenarios
    • Hypothetical scenarios
    • Pillar 1 versus Pillar 2 Stress Testing
    • Macroeconomic approaches to stress testing
    • Stress testing governance

Course Staff

Prof. dr. Bart Baesens

Prof. dr. Bart Baesens

Bart was born in Bruges (West Flanders, Belgium) on February 27th, 1975. He speaks West-Flemish (which he is very proud of!), Dutch, French, a bit of German, some English and can order a beer in Chinese. He is married to Katrien Denys and has 3 kids (Ann-Sophie, Victor and Hannelore), and 2 cats (Felix and Simba). Besides enjoying time with his family, he is also a diehard Club Brugge soccer fan. Bart is a foodie and amateur cook. He loves drinking a good glass of wine (his favorites are white Viognier or red Cabernet Sauvignon) either in his wine cellar or when overlooking the authentic red English phone booth in his garden. His favourite pub is “In den Rozenkrans” in Kessel-Lo (close to Leuven) where you will often find him having a Gueuze Girardin 1882 or Tripel Karmeliet with a spaghetti of the house. Bart loves traveling and his favorite cities are: San Francisco, Sydney and Barcelona. He is fascinated by World War I and reads many books on the topic. He is not a big fan of being called professor Baesens (or even worse, professor Baessens), shopping (especially for clothes or shoes), pastis (or other anise-flavored drinks), vacuum cleaning (he can’t bare the sound), students chewing gum during their oral exam of Credit Risk Modeling (or had garlic for breakfast), long meetings (> 30 minutes), phone calls (asynchronous e-mail communication is a lot more efficient!), admin (e.g., forms and surveys) or French fries (Belgian fries are a lot better!). He is often praised for his sense of humor, although he is usually more modest about this. Bart is also a professor of Big Data and Analytics at KU Leuven (Belgium) and a lecturer at the University of Southampton (United Kingdom). He has done extensive research on Big Data & Analytics, Credit Risk Modeling, Fraud Detection and Marketing Analytics. He has written more than 250 scientific papers, some of which have been published in well-known international journals (e.g., MIS Quarterly, Machine Learning, Management Science, MIT Sloan Management Review and IEEE Transactions on Knowledge and Data Engineering) and presented at top international conferences (e.g., ICIS, KDD, CAISE). He has received various best paper and best speaker awards. Bart is the author of 8 books: Credit Risk Management: Basic Concepts (Oxford University Press, 2009), Analytics in a Big Data World (Wiley, 2014), Beginning Java Programming (Wiley, 2015), Fraud Analytics using Descriptive, Predictive and Social Network Techniques (Wiley, 2015), Credit Risk Analytics (Wiley, 2016), Profit Driven Business Analytics (Wiley, 2017), Web Scraping for Data Science with Python (Apress, 2018), and Principles of Database Management (Cambridge University Press, 2018). He sold more than 25.000 copies of these books worldwide, some of which have been translated in Chinese, Russian and Korean. His research is summarized at For an overview of the courses he is teaching, see He also regularly tutors, advises and provides consulting support to international firms regarding their big data, analytics and credit risk management strategy.

Prof. dr. Tim Verdonck

Prof. dr. Tim Verdonck

Tim was born in Merksem (Antwerp, Belgium) on February 19, 1983. He lives together with his girlfriend Nuria Baeten, his daughter Oona, his dog Ragna and two cats Nello and Patrasche (the names of the cats come from the novel A Dog of Flanders, which takes place in Hoboken and Antwerp, see He lives in Wilrijk (Antwerp, Belgium) and enjoys relaxing in his garden with his family. He loves travelling and his favorite cities are Barcelona and Vancouver. On holidays, he likes to dive (his favorite place is Sipadan in Malaysia), snowboard and wakeboard. His other favorite sports are tennis and football.

Tim Verdonck is also a professor of Statistics and Data Science at the Department of Mathematics of University of Antwerp (Belgium). He is affiliated to KU Leuven and has been an invited professor at the University of Bologna, teaching advanced non-life insurance in the Master of Quantitative Finance. He is chairholder of the BNP Paribas Fortis Chair on Fraud Analytics, the Allianz Chair on Prescriptive Business Analytics in Insurance and the BASF Chair on Robust Predictive Analytics. Tim has a degree in Mathematics and a PhD in Science: Mathematics, obtained at the University of Antwerp. During his PhD he successfully took the Master in Insurance and the Master in Financial and Actuarial Engineering, both at KU Leuven. His research interests are in the development and application of robust statistical methods for financial, actuarial and economic data sets. He is associate editor of Statistics: A Journal of Theoretical and Applied Statistics (Taylor & Francis) and Computational Statistics & Data Analysis (Elsevier). Tim is co-organizer of the Data Science Meetups in Leuven and managing partner at Boltzmann (, a team of experts in machine learning that transform data into actionable insights.