<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.4 20241031//EN" "JATS-journalpublishing1-4.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="1.4" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">jfrm</journal-id>
      <journal-title-group>
        <journal-title>Journal of Financial Risk Management</journal-title>
      </journal-title-group>
      <issn pub-type="epub">2167-9541</issn>
      <issn pub-type="ppub">2167-9533</issn>
      <publisher>
        <publisher-name>Scientific Research Publishing</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.4236/jfrm.2026.153014</article-id>
      <article-id pub-id-type="publisher-id">jfrm-153138</article-id>
      <article-categories>
        <subj-group>
          <subject>Article</subject>
        </subj-group>
        <subj-group>
          <subject>Business</subject>
          <subject>Economics</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Comparative Analytics of Machine Learning and Traditional Models in Mortgage Credit Risk: Evidence from Freddie Mac Data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <name name-style="western">
            <surname>Sanyang</surname>
            <given-names>Mammy F.</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <contrib-id contrib-id-type="orcid">0000-0003-0312-0959</contrib-id>
          <name name-style="western">
            <surname>Mun</surname>
            <given-names>Johnathan</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
      </contrib-group>
      <aff id="aff1"><label>1</label> School of Business, San Francisco Bay University, Fremont, CL, USA </aff>
      <author-notes>
        <fn fn-type="conflict" id="fn-conflict">
          <p>The authors declare no conflicts of interest regarding the publication of this paper.</p>
        </fn>
      </author-notes>
      <pub-date pub-type="epub">
        <day>03</day>
        <month>09</month>
        <year>2026</year>
      </pub-date>
      <pub-date pub-type="collection">
        <month>09</month>
        <year>2026</year>
      </pub-date>
      <volume>15</volume>
      <issue>03</issue>
      <fpage>237</fpage>
      <lpage>258</lpage>
      <history>
        <date date-type="received">
          <day>18</day>
          <month>06</month>
          <year>2026</year>
        </date>
        <date date-type="accepted">
          <day>09</day>
          <month>08</month>
          <year>2026</year>
        </date>
        <date date-type="published">
          <day>12</day>
          <month>08</month>
          <year>2026</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>© 2026 by the authors and Scientific Research Publishing Inc.</copyright-statement>
        <copyright-year>2026</copyright-year>
        <license license-type="open-access">
          <license-p> This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license ( <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link> ). </license-p>
        </license>
      </permissions>
      <self-uri content-type="doi" xlink:href="https://doi.org/10.4236/jfrm.2026.153014">https://doi.org/10.4236/jfrm.2026.153014</self-uri>
      <abstract>
        <p>This paper compares the performance of traditional models and machine learning (ML) models for mortgage credit risk prediction using the Freddie Mac Single-Family Loan-Level Dataset. A sample of 100,000 loans from 2022 and 2023 was used to train and test logistic regression models (with LASSO, Ridge, and Elastic Net penalties), a generalized additive model (GAM), and three boosting ML models (XGBoost, CatBoost, and LightGBM). All models used the same training and test data splits, ensuring a fair comparison. The models were evaluated using ROC-AUC, Precision-Recall metrics, Brier scores, F1 scores, and calibration measures. Among the logistic regression models tested, engineered logistic regression had the highest ROC-AUC, 0.7956. The GAM had the highest F1-score of 0.1542, with the lowest ECE (0.000703) and Brier score (0.02283) among all models tested. The CatBoost model had the highest ROC-AUC among all models tested at 0.7988, but also the worst calibration (ECE = 0.3386, Brier = 0.1835). Furthermore, the traditional logistic regression models outperform the ML boosting models in Brier score, with values of 0.0228 - 0.0229 compared to 0.1797 - 0.1853 for the boosting models. Finally, the PSI interest rate of 3.121 for the period from 2022 to 2023 shows the need to recalibrate these models over time. Overall, the results suggest that there may be little benefit to using ML models for credit risk prediction tasks. However, CatBoost may be useful for creating early warning systems for mortgage loan defaults. At the same time, GAMs may be useful for estimating losses on mortgage loans in default and reporting that information to regulatory authorities.</p>
      </abstract>
      <kwd-group kwd-group-type="author-generated" xml:lang="en">
        <kwd>Machine Learning</kwd>
        <kwd>Credit Risk</kwd>
        <kwd>Random Forest</kwd>
        <kwd>Logistic Regression</kwd>
        <kwd>Calibration</kwd>
        <kwd>Mortgage Risk</kwd>
        <kwd>CatBoost</kwd>
        <kwd>XGBoost</kwd>
        <kwd>LightGBM</kwd>
        <kwd>Ridge</kwd>
        <kwd>Elastic Net</kwd>
        <kwd>LASSO</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec1">
      <title>1. Introduction</title>
      <p>Given the importance of credit risk management in the banking industry, particularly in mortgage lending, there have been attempts to use methods beyond standard logistic regression to predict the likelihood of loan default better ([<xref ref-type="bibr" rid="B8">8</xref>]). Despite the number of machine learning (ML) models proposed as alternatives to the standard logistic regression model for predicting credit risk, one of the major unanswered questions in the field is whether these models offer any performance improvements for banks in real-world banking situations. Factors that influence the use of these models within banks include model calibration, robustness, and regulatory requirements for their implementation ([<xref ref-type="bibr" rid="B10">10</xref>]).</p>
      <p>The idea of Basel requirements on computing the probability of default (PD) is to obtain the expected loss at default on a loan using the following equation:</p>
      <disp-formula id="FD1">
        <mml:math>
          <mml:mrow>
            <mml:mi>E</mml:mi>
            <mml:msub>
              <mml:mi>L</mml:mi>
              <mml:mi>i</mml:mi>
            </mml:msub>
            <mml:mo>=</mml:mo>
            <mml:mi>P</mml:mi>
            <mml:msub>
              <mml:mi>D</mml:mi>
              <mml:mi>i</mml:mi>
            </mml:msub>
            <mml:mo>×</mml:mo>
            <mml:mi>L</mml:mi>
            <mml:mi>G</mml:mi>
            <mml:msub>
              <mml:mi>D</mml:mi>
              <mml:mi>i</mml:mi>
            </mml:msub>
            <mml:mo>×</mml:mo>
            <mml:mi>E</mml:mi>
            <mml:mi>A</mml:mi>
            <mml:msub>
              <mml:mi>D</mml:mi>
              <mml:mi>i</mml:mi>
            </mml:msub>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where <inline-formula><mml:math display="inline"><mml:mrow><mml:mi> P </mml:mi><mml:msub><mml:mi> D </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> = probability of default, <inline-formula><mml:math><mml:mrow><mml:mi> L </mml:mi><mml:mi> G </mml:mi><mml:msub><mml:mi> D </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> = loss given default, and <inline-formula><mml:math><mml:mrow><mml:mi> E </mml:mi><mml:mi> A </mml:mi><mml:msub><mml:mi> D </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> = exposure at default.</p>
      <p>For a whole portfolio, one would use</p>
      <disp-formula id="FD2">
        <mml:math>
          <mml:mrow>
            <mml:mi>E</mml:mi>
            <mml:msub>
              <mml:mi>L</mml:mi>
              <mml:mrow>
                <mml:mi>p</mml:mi>
                <mml:mi>o</mml:mi>
                <mml:mi>r</mml:mi>
                <mml:mi>t</mml:mi>
                <mml:mi>f</mml:mi>
                <mml:mi>o</mml:mi>
                <mml:mi>l</mml:mi>
                <mml:mi>i</mml:mi>
                <mml:mi>o</mml:mi>
              </mml:mrow>
            </mml:msub>
            <mml:mo>=</mml:mo>
            <mml:munderover>
              <mml:mstyle mathsize="140%" displaystyle="true">
                <mml:mo>∑</mml:mo>
              </mml:mstyle>
              <mml:mrow>
                <mml:mi>i</mml:mi>
                <mml:mo>=</mml:mo>
                <mml:mn>1</mml:mn>
              </mml:mrow>
              <mml:mi>n</mml:mi>
            </mml:munderover>
            <mml:mtext>
               
            </mml:mtext>
            <mml:mi>P</mml:mi>
            <mml:msub>
              <mml:mi>D</mml:mi>
              <mml:mi>i</mml:mi>
            </mml:msub>
            <mml:mo>×</mml:mo>
            <mml:mi>L</mml:mi>
            <mml:mi>G</mml:mi>
            <mml:msub>
              <mml:mi>D</mml:mi>
              <mml:mi>i</mml:mi>
            </mml:msub>
            <mml:mo>×</mml:mo>
            <mml:mi>E</mml:mi>
            <mml:mi>A</mml:mi>
            <mml:msub>
              <mml:mi>D</mml:mi>
              <mml:mi>i</mml:mi>
            </mml:msub>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Since the current research focuses on estimations, the models tested in this paper will estimate the first and most important component of expected credit loss, the probability of default. Thus, calibration and accuracy are important aspects of these models. A model may have a good area under the curve (AUC) measure, but if the probabilities are not well calibrated, the model will yield poor estimates of expected credit loss.</p>
      <p>The logistic regression and (ML) models will be compared using Freddie Mac loan-level data ([<xref ref-type="bibr" rid="B6">6</xref>]). The data are from 2022 and 2023 and are used to evaluate the calibration, accuracy, and robustness of the models outside of the training data.</p>
      <p>This research also uses the Brier score for error measurement, defined as:</p>
      <disp-formula id="FD3">
        <mml:math>
          <mml:mrow>
            <mml:mi>B</mml:mi>
            <mml:mi>r</mml:mi>
            <mml:mi>i</mml:mi>
            <mml:mi>e</mml:mi>
            <mml:mi>r</mml:mi>
            <mml:mo>=</mml:mo>
            <mml:mfrac>
              <mml:mn>1</mml:mn>
              <mml:mi>n</mml:mi>
            </mml:mfrac>
            <mml:munderover>
              <mml:mstyle mathsize="140%" displaystyle="true">
                <mml:mo>∑</mml:mo>
              </mml:mstyle>
              <mml:mrow>
                <mml:mi>i</mml:mi>
                <mml:mo>=</mml:mo>
                <mml:mn>1</mml:mn>
              </mml:mrow>
              <mml:mi>n</mml:mi>
            </mml:munderover>
            <mml:msup>
              <mml:mrow>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:msub>
                      <mml:mover accent="true">
                        <mml:mi>p</mml:mi>
                        <mml:mo>^</mml:mo>
                      </mml:mover>
                      <mml:mi>i</mml:mi>
                    </mml:msub>
                    <mml:mo>−</mml:mo>
                    <mml:msub>
                      <mml:mi>Y</mml:mi>
                      <mml:mi>i</mml:mi>
                    </mml:msub>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mn>2</mml:mn>
            </mml:msup>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where <inline-formula><mml:math><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi> p </mml:mi><mml:mo> ^ </mml:mo></mml:mover><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> = predicted probability of default and <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> Y </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> = actual default indicator.</p>
      <p>A lower Brier score indicates that the model’s predicted probabilities are more accurate. This is critical for identifying whether logistic regression performs much better than other ML methods. The ML models listed in <bold>Table 1</bold> will be tested in the current research project.</p>
      <p><bold>Table 1.</bold> Model runs comparing Logistic Regression (LR) and ML.</p>
      <table-wrap id="tbl1">
        <label>Table 1</label>
        <table>
          <tbody>
            <tr>
              <td>
                <bold>#</bold>
              </td>
              <td>
                <bold>Model</bold>
              </td>
              <td>
                <bold>Family</bold>
              </td>
            </tr>
            <tr>
              <td>1</td>
              <td>Full Logistic Regression (all variables)</td>
              <td>Traditional LR</td>
            </tr>
            <tr>
              <td>2</td>
              <td>
                Significant Logistic Regression (
                <italic>p</italic>
                ≤ 0.10)
              </td>
              <td>Traditional LR</td>
            </tr>
            <tr>
              <td>3</td>
              <td>Full LN Logistic Regression</td>
              <td>Log-Transformed LR</td>
            </tr>
            <tr>
              <td>4</td>
              <td>Significant LN Logistic Regression</td>
              <td>Log-Transformed LR</td>
            </tr>
            <tr>
              <td>5</td>
              <td>Engineered Logistic Regression (interactions)</td>
              <td>Engineered LR</td>
            </tr>
            <tr>
              <td>6</td>
              <td>Ridge Logistic Regression</td>
              <td>Regularized LR</td>
            </tr>
            <tr>
              <td>7</td>
              <td>LASSO Logistic Regression</td>
              <td>Regularized LR</td>
            </tr>
            <tr>
              <td>8</td>
              <td>Elastic Net Logistic Regression</td>
              <td>Regularized LR</td>
            </tr>
            <tr>
              <td>9</td>
              <td>Generalized Additive Model (GAM)</td>
              <td>Nonlinear LR</td>
            </tr>
            <tr>
              <td>10</td>
              <td>XGBoost</td>
              <td>Gradient Boosting ML</td>
            </tr>
            <tr>
              <td>11</td>
              <td>LightGBM</td>
              <td>Gradient Boosting ML</td>
            </tr>
            <tr>
              <td>12</td>
              <td>CatBoost</td>
              <td>Gradient Boosting ML</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <sec id="sec1dot1">
        <title>1.1. Research Questions</title>
        <p>1) Can machine learning models (XGBoost, LightGBM, CatBoost) outperform traditional logistic regression (Ridge, LASSO, Elastic Net) and a generalized additive model (GAM) in terms of predicting mortgage default risk?</p>
        <p>2) Do machine learning models have an advantage over the logistic regression model if both models are trained and tested on the same data?</p>
        <p>3) How do the twelve models compare in terms of their calibrated models (ECE, Brier score), and what are the effects on estimating regulatory loss?</p>
        <p>4) Given the comparison between the two models, which one should a bank utilize?</p>
      </sec>
      <sec id="sec1dot2">
        <title>1.2. Objectives</title>
        <p>1) To test and compare all twelve models of machine learning and traditional logistic regression.</p>
        <p>2) Additionally, to calculate and calibrate each of these models, including calculating the expected calibration error and Brier score, and to understand the impact of the Basel requirements for expected loss calculations.</p>
        <p>3) Furthermore, to determine whether models trained on the 2022 loans dataset would remain accurate with loans in 2023, with its drastic changes in interest rates.</p>
        <p>4) Finally, to provide recommendations regarding which of these models would be best to use in the management of the bank’s credit risks.</p>
      </sec>
    </sec>
    <sec id="sec2">
      <title>2. Literature Review</title>
      <p>The management of credit risk remains one of the most important areas within the banking industry. The failure to properly assess the likelihood that borrowers will default on their loans has, on many occasions, led to banks suffering losses. The 2008 financial crisis exposed the consequences of poor management of credit risk in the mortgage sector ([<xref ref-type="bibr" rid="B1">1</xref>]). This is one of the reasons that research on artificial intelligence (AI) is done.</p>
      <p>However, a higher AUC score is not the only consideration for banks. Other considerations may include whether the models are understandable to bank auditors and regulators, and whether the models stand up to challenges from loan borrowers and regulators, that is, they create an audit trail that is defensible and robust.</p>
      <p>While a great deal of literature has been published on credit risk and artificial intelligence, it has not been distributed evenly across the topic. The literature does provide evidence that ML models outperform traditional models in certain instances. However, research has been unable to determine the impact of this performance on banks subject to strict model-explainability regulations.</p>
      <sec id="sec2dot1">
        <title>2.1. The Limits of Traditional Credit Risk Models</title>
        <p>Although logistic regression is not the most effective algorithm for credit risk assessment, it is used due to regulatory approval and the institutional understanding it provides. Banks that use probability estimates from the logistic regression model also use these probabilities in accordance with regulatory systems such as the Basel Accords and the Federal Reserve’s SR 11-7 model risk-management instructions ([<xref ref-type="bibr" rid="B3">3</xref>]). Thus, logistic regression has been the option of least resistance for the banks that use it, given the high probability of regulatory noncompliance if they had implemented another risk assessment model.</p>
        <p>However, the interpretability of logistic regression comes at a cost to the model’s predictive performance. Because logistic regression assumes a linear relationship between the features and the outcome, it cannot, by construction, capture nonlinear interactions between features and the likelihood of loan default in its standard form. [<xref ref-type="bibr" rid="B5">5</xref>] found that their logistic regression model, with additional terms from decision trees to account for nonlinear interactions, achieved higher accuracy across several datasets.</p>
        <p>Thus, the findings indicate that the logistic regression model lacks sufficient information to predict the likelihood that a borrower will default on their loan. Furthermore, another drawback of logistic regression is that it is difficult to provide an objective evaluation of the model’s effectiveness, due to a tendency in the literature to compare traditional loan risk assessment models with machine learning-based models using datasets on which logistic regression models had previously been applied to make lending decisions. The findings of such literature, therefore, may be influenced by the feedback mechanism the model exhibited towards its developers and lenders. This point must be kept in mind when reviewing the literature that intends to make such comparisons.</p>
      </sec>
      <sec id="sec2dot2">
        <title>2.2. AI and Machine Learning at Credit Risk</title>
        <p><italic><bold>The</bold></italic><italic><bold>Broader</bold></italic><italic><bold>Consensus</bold></italic><italic><bold>and</bold></italic><italic><bold>Its</bold></italic><italic><bold>Limit</bold></italic><italic><bold>s</bold></italic></p>
        <p>[<xref ref-type="bibr" rid="B10">10</xref>], after reviewing 76 research articles over eight years, found that deep learning models outperformed both traditional models and statistical algorithms for the same tasks and benchmarks. However, there were several problems in existing literature on this topic, including data imbalance, a lack of model transparency, and poor use of datasets. These findings were replicated by [<xref ref-type="bibr" rid="B2">2</xref>], who reviewed 63 articles published between 2018 and 2024 and discovered findings similar to those of Shi et al. Furthermore, XGBoost emerged as the highest-performing machine-learning algorithm in these articles, with many researchers in the field beginning to use hybrid and ensemble models in their natural language processing approaches.</p>
        <p>However, there were some issues with the research study designs performed by these researchers. For example, [<xref ref-type="bibr" rid="B9">9</xref>] reviewed the commercial banking credit registry and found that using a standard logistic regression without a transformation outperformed complex ML models. Furthermore, when using the weight-of-evidence transformation, which is often performed as part of model pre-processing, the results did not improve as much as expected. This outcome, however, challenges the findings of other researchers, as it shows that the performance of logistic regression and ML algorithms is entirely dependent on the data and preprocessing steps used. Thus, research suggesting that ML algorithms outperform logistic regression models should be interpreted with caution.</p>
        <p><italic><bold>Model</bold></italic><italic><bold>Performance</bold></italic><italic><bold>and</bold></italic><italic><bold>the</bold></italic><italic><bold>Metrics</bold></italic><italic><bold>Problem</bold></italic></p>
        <p>Another issue with prior research on the performance of logistic regression and other ML algorithms is that most studies use accuracy as their primary performance metric. Because the data on credit defaults is inherently imbalanced, most loans in the dataset are non-default loans. A model that always predicts non-default loans will achieve high accuracy without having learned much about the loans. Among the most notable studies on this topic is that of [<xref ref-type="bibr" rid="B4">4</xref>], who used a more comprehensive and accurate set of metrics to assess the performance of XGBoost, LightGBM, AdaBoost, and feedforward neural network models for predicting credit card default. In the cited study, the XGBoost approach achieved an impressive 99.4% prediction accuracy. In other studies, researchers have found different results for the same XGBoost models. For instance, [<xref ref-type="bibr" rid="B7">7</xref>] found that XGBoost models achieved only 88.7% accuracy on a banking dataset, with AUCs of 80.3% and 91.3%. However, the authors used the same accuracy and AUC scores to determine that the performance of the machine-learning algorithms was not as high as suggested by other studies on the topic. Thus, these differing accuracy results highlight the potential for studies that rely solely on accuracy metrics to draw misleading conclusions about the performance of logistic regression and ML models. </p>
        <p><italic><bold>XGBoost</bold></italic></p>
        <p>XGBoost is usually a top performer for credit risk prediction because it captures nonlinear relationships and interactions and handles structured tabular data very well. The general boosting form is</p>
        <disp-formula id="FD4">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mover accent="true">
                  <mml:mi>y</mml:mi>
                  <mml:mo>^</mml:mo>
                </mml:mover>
                <mml:mi>i</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:munderover>
                <mml:mstyle displaystyle="true" mathsize="140%">
                  <mml:mo>∑</mml:mo>
                </mml:mstyle>
                <mml:mrow>
                  <mml:mi>m</mml:mi>
                  <mml:mo>=</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mi>M</mml:mi>
              </mml:munderover>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>f</mml:mi>
                <mml:mi>m</mml:mi>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>X</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>where each <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> f </mml:mi><mml:mi> m </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a decision tree added sequentially.</p>
        <p>The objective function is</p>
        <disp-formula id="FD5">
          <mml:math>
            <mml:mrow>
              <mml:mi>O</mml:mi>
              <mml:mi>b</mml:mi>
              <mml:mi>j</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:munderover>
                <mml:mstyle displaystyle="true" mathsize="140%">
                  <mml:mo>∑</mml:mo>
                </mml:mstyle>
                <mml:mrow>
                  <mml:mi>i</mml:mi>
                  <mml:mo>=</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mi>n</mml:mi>
              </mml:munderover>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>l</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>y</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:msub>
                    <mml:mover accent="true">
                      <mml:mi>y</mml:mi>
                      <mml:mo>^</mml:mo>
                    </mml:mover>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>+</mml:mo>
              <mml:munderover>
                <mml:mstyle displaystyle="true" mathsize="140%">
                  <mml:mo>∑</mml:mo>
                </mml:mstyle>
                <mml:mrow>
                  <mml:mi>m</mml:mi>
                  <mml:mo>=</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mi>M</mml:mi>
              </mml:munderover>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Ω</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>f</mml:mi>
                    <mml:mi>m</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>where <inline-formula><mml:math><mml:mrow><mml:mi> l </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> y </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mover accent="true"><mml:mi> y </mml:mi><mml:mo> ^ </mml:mo></mml:mover><mml:mi> i </mml:mi></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the prediction loss and <inline-formula><mml:math><mml:mrow><mml:mi> Ω </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> f </mml:mi><mml:mi> m </mml:mi></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the regularization penalty that controls the tree complexity.</p>
        <p><italic><bold>LightGBM</bold></italic></p>
        <p>LightGBM, built for speed and scalability, is another gradient-boosting method that is efficient on large datasets. It is especially useful when the dataset has categorical or high-dimensional features. </p>
        <p><italic><bold>CatBoost</bold></italic></p>
        <p>The mortgage dataset includes categorical variables such as Loan Purpose, Occupancy Status, Property State, and First Time Home Buyer. CatBoost handles categorical variables well without requiring as much manual encoding. This approach may outperform random forest and logistic regression when categorical features are important.</p>
      </sec>
      <sec id="sec2dot3">
        <title>2.3. Research Gaps and the Contribution of This Study</title>
        <p>There are three main conclusions from the literature. First, while there is an acknowledged technological advantage to AI credit risk models, the reliability of their results depends on the methods used to build and evaluate them. Second, while there are an increasing number of articles that use large datasets of mortgage loans, such as Freddie Mac’s dataset, to evaluate mortgage credit risk, these studies are not as thorough as those focused on general credit risk. Third, and most important, is that there is a gap between the technological findings on these models’ performance and the considerations relevant to their deployment within a banking organization. This study is intended to fill these gaps in the literature. </p>
        <p>Overall, this study aims to provide a more reliable evaluation of the performance of advanced AI-based models compared with traditional logistic regression for credit risk, using Freddie Mac’s mortgage loan dataset. By including considerations of explainability and governance requirements for AI models, this study also addresses a gap in the literature beyond performance evaluations. Thus, this study contributes to existing literature not only through its technical application of information on AI models and credit risk but also by providing recommendations on their applicability to banking organizations. </p>
        <p>Due to computational constraints, this study was limited to evaluating loans originated in the 2022 and 2023 calendar years. Thus, the analysis did not account for the long-term cycles of the loans or for differences in loan behavior across economic conditions and interest rates. While the time frame selected for this study was not representative of past periods of economic stress, it reflected the economic environment following the COVID-19 pandemic. The findings of this study, then, are specific to this economic environment, and their application elsewhere requires judgment regarding how much the economic conditions have shifted. Future studies could expand the longitudinal time frame for which Freddie Mac’s loan data was used to evaluate AI-based credit risk models.</p>
      </sec>
    </sec>
    <sec id="sec3">
      <title>3. Methodology and Analysis</title>
      <sec id="sec3dot1">
        <title>3.1. Data Source and Sample Construction</title>
        <p><bold>Table 2</bold> provides an overview of the data used, including the loan-level mortgage data from the Freddie Mac Single-Family Loan Dataset. The final dataset contains approximately 100,000 observations, evenly split between loans from the 2022 and 2023 loan cohorts. Each loan record includes variables related to the borrower’s credit score, loan-to-value ratio (LTV), debt-to-income ratio (DTI), unpaid principal balance (UPB), interest rate, occupancy of the mortgage loan, purpose of the mortgage loan, the number of borrowers of the mortgage loan, and the state of the property that is being mortgaged. The variable of interest is the default status of the mortgages, represented as a binary variable that takes the value 1 if the mortgage has defaulted (missed payments for 90 or more days) and 0 otherwise. Thus, the dataset’s features relate to borrowers’ credit quality, their income relative to their mortgage payments, mortgage segmentation, and borrowers’ leverage. Furthermore, there were no missing values for any variable in the final dataset. The default rate for mortgages in the dataset is approximately 2.43%, with 2022 mortgages at 3.02% and 2023 mortgages at 1.85%.</p>
        <p><bold>Table 2.</bold> Data overview.</p>
        <table-wrap id="tbl2">
          <label>Table 2</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Metric</bold>
                </td>
                <td>
                  <bold>Value</bold>
                </td>
              </tr>
              <tr>
                <td>Total Observation</td>
                <td>100,000</td>
              </tr>
              <tr>
                <td>2022 Observation</td>
                <td>50,000</td>
              </tr>
              <tr>
                <td>2023 Observation</td>
                <td>50,000</td>
              </tr>
              <tr>
                <td>Total Variables</td>
                <td>12</td>
              </tr>
              <tr>
                <td>Missing Variables</td>
                <td>0</td>
              </tr>
              <tr>
                <td>Overall Default</td>
                <td>2.43%</td>
              </tr>
              <tr>
                <td>2022 Default</td>
                <td>3.02%</td>
              </tr>
              <tr>
                <td>2023 Default</td>
                <td>1.85%</td>
              </tr>
              <tr>
                <td>Train set (70/30 stratified split)</td>
                <td>70,000 rows - 1704 defaults (2.43%)</td>
              </tr>
              <tr>
                <td>Test set (70/30 stratified split)</td>
                <td>30,000 rows - 730 defaults (2.43%)</td>
              </tr>
              <tr>
                <td>Random State</td>
                <td>42</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
      </sec>
      <sec id="sec3dot2">
        <title>3.2. Modeling Framework, Evaluation Metrics, and Statistical Significance</title>
        <p>3.2.1. Validation Design</p>
        <p>All of the models were trained on the same 70,000-row training dataset and then tested on the same 30,000-row dataset; the split of approximately 70% training and 30% testing data is stratified to reflect the default rate of the full 100,000-row dataset. The default rate is the same for both the training and testing datasets: 2.43% of each dataset defaults on its loan. There are 1704 defaults in the training dataset and 730 defaults in the test dataset. Therefore, the comparison between the two models is unbiased. Furthermore, an assessment of out-of-time data (2022 versus 2023 loans) was also performed for the logistic regression and random forest models.</p>
        <p>3.2.2. Coefficient Estimation and Data Preprocessing</p>
        <p>Using encoded categorical variables (Occupancy Status, First Time Homebuyer Flag, Loan Purpose, and Property State), one category from each variable was removed to reduce multicollinearity effects. All continuous variables were then preprocessed by standardizing them to have a mean of zero and a variance of one, prior to fitting the models. For these reasons, the computed probabilities from the gradient boosting machine models (XGBoost, LightGBM, CatBoost) differ from those of the logistic regression model. As a result, the Brier scores from the gradient boosting machines are not directly comparable to those from the logistic regression model. Consequently, the loss estimates from the ML models must be calibrated to reflect the true probabilities before using them to predict loan defaults.</p>
        <p>3.2.3. Logistic Regression Model Sequence (Models 1 - 5)</p>
        <p>Five logistic regression models were fitted to the data in sequence. Model 1 included all independent variables in their raw, standardized form for the logistic regression. Model 2 included only variables statistically significant at <italic>p</italic> ≤ 0.10 in Model 1. Model 3 was a model in which the continuous variables were transformed using natural logs. Model 4 included only the variables that were statistically significant in Model 3. Finally, Model 5 included interaction terms between the continuous variables, formed as combinations of variables that yielded the maximum pseudo-R-squared for the model or the lowest AIC score.</p>
        <p><italic><bold>The</bold></italic><italic><bold>Core</bold></italic><italic><bold>Credit</bold></italic><italic><bold>-Risk</bold></italic><italic><bold>Modeling</bold></italic><italic><bold>Framework</bold></italic></p>
        <p>The dependent variable is a binary default indicator:</p>
        <disp-formula id="FD6">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>Y</mml:mi>
                <mml:mi>i</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>{</mml:mo>
                <mml:mrow>
                  <mml:mtable>
                    <mml:mtr>
                      <mml:mtd>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>,</mml:mo>
                        </mml:mrow>
                      </mml:mtd>
                      <mml:mtd>
                        <mml:mrow>
                          <mml:mtext>if</mml:mtext>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>loan</mml:mtext>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mi>i</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>becomes</mml:mtext>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>90</mml:mtext>
                          <mml:mo>+</mml:mo>
                          <mml:mtext>days</mml:mtext>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>delinquent</mml:mtext>
                        </mml:mrow>
                      </mml:mtd>
                    </mml:mtr>
                    <mml:mtr>
                      <mml:mtd>
                        <mml:mrow>
                          <mml:mn>0</mml:mn>
                          <mml:mo>,</mml:mo>
                        </mml:mrow>
                      </mml:mtd>
                      <mml:mtd>
                        <mml:mrow>
                          <mml:mtext>otherwise</mml:mtext>
                        </mml:mrow>
                      </mml:mtd>
                    </mml:mtr>
                  </mml:mtable>
                </mml:mrow>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Let each loan have features</p>
        <disp-formula id="FD7">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>X</mml:mi>
                <mml:mi>i</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>C</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:mi>e</mml:mi>
                  <mml:mi>d</mml:mi>
                  <mml:mi>i</mml:mi>
                  <mml:mi>t</mml:mi>
                  <mml:mi>S</mml:mi>
                  <mml:mi>c</mml:mi>
                  <mml:mi>o</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:msub>
                    <mml:mi>e</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>L</mml:mi>
                  <mml:mi>T</mml:mi>
                  <mml:msub>
                    <mml:mi>V</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>D</mml:mi>
                  <mml:mi>T</mml:mi>
                  <mml:msub>
                    <mml:mi>I</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>U</mml:mi>
                  <mml:mi>P</mml:mi>
                  <mml:msub>
                    <mml:mi>B</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>R</mml:mi>
                  <mml:mi>a</mml:mi>
                  <mml:mi>t</mml:mi>
                  <mml:msub>
                    <mml:mi>e</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>O</mml:mi>
                  <mml:mi>c</mml:mi>
                  <mml:mi>c</mml:mi>
                  <mml:mi>u</mml:mi>
                  <mml:mi>p</mml:mi>
                  <mml:mi>a</mml:mi>
                  <mml:mi>n</mml:mi>
                  <mml:mi>c</mml:mi>
                  <mml:msub>
                    <mml:mi>y</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>P</mml:mi>
                  <mml:mi>u</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:mi>p</mml:mi>
                  <mml:mi>o</mml:mi>
                  <mml:mi>s</mml:mi>
                  <mml:msub>
                    <mml:mi>e</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>S</mml:mi>
                  <mml:mi>t</mml:mi>
                  <mml:mi>a</mml:mi>
                  <mml:mi>t</mml:mi>
                  <mml:msub>
                    <mml:mi>e</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>B</mml:mi>
                  <mml:mi>o</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:mi>o</mml:mi>
                  <mml:mi>w</mml:mi>
                  <mml:mi>e</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:msub>
                    <mml:mi>s</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The goal is to estimate</p>
        <disp-formula id="FD8">
          <mml:math>
            <mml:mrow>
              <mml:mi>P</mml:mi>
              <mml:msub>
                <mml:mi>D</mml:mi>
                <mml:mi>i</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mi>P</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>Y</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>=</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>|</mml:mo>
                  <mml:msub>
                    <mml:mi>X</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>where <inline-formula><mml:math><mml:mrow><mml:mi> P </mml:mi><mml:msub><mml:mi> D </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the predicted probability of default.</p>
        <p><italic><bold>Logistic</bold></italic><italic><bold>Regression</bold></italic></p>
        <p>Logistic regression is the typical traditional benchmark, where we define it as</p>
        <disp-formula id="FD9">
          <mml:math>
            <mml:mrow>
              <mml:mi>P</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>Y</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>=</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>|</mml:mo>
                  <mml:msub>
                    <mml:mi>X</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:msub>
                <mml:mi>p</mml:mi>
                <mml:mi>i</mml:mi>
              </mml:msub>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD10">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>p</mml:mi>
                <mml:mi>i</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>1</mml:mn>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>+</mml:mo>
                  <mml:msup>
                    <mml:mtext>e</mml:mtext>
                    <mml:mrow>
                      <mml:mo>−</mml:mo>
                      <mml:mrow>
                        <mml:mo>(</mml:mo>
                        <mml:mrow>
                          <mml:msub>
                            <mml:mi>β</mml:mi>
                            <mml:mn>0</mml:mn>
                          </mml:msub>
                          <mml:mo>+</mml:mo>
                          <mml:msub>
                            <mml:mi>β</mml:mi>
                            <mml:mn>1</mml:mn>
                          </mml:msub>
                          <mml:msub>
                            <mml:mi>X</mml:mi>
                            <mml:mrow>
                              <mml:mi>i</mml:mi>
                              <mml:mn>1</mml:mn>
                            </mml:mrow>
                          </mml:msub>
                          <mml:mo>+</mml:mo>
                          <mml:msub>
                            <mml:mi>β</mml:mi>
                            <mml:mn>2</mml:mn>
                          </mml:msub>
                          <mml:msub>
                            <mml:mi>X</mml:mi>
                            <mml:mrow>
                              <mml:mi>i</mml:mi>
                              <mml:mn>2</mml:mn>
                            </mml:mrow>
                          </mml:msub>
                          <mml:mo>+</mml:mo>
                          <mml:mo>⋯</mml:mo>
                          <mml:mo>+</mml:mo>
                          <mml:msub>
                            <mml:mi>β</mml:mi>
                            <mml:mi>k</mml:mi>
                          </mml:msub>
                          <mml:msub>
                            <mml:mi>X</mml:mi>
                            <mml:mrow>
                              <mml:mi>i</mml:mi>
                              <mml:mi>k</mml:mi>
                            </mml:mrow>
                          </mml:msub>
                        </mml:mrow>
                        <mml:mo>)</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                  </mml:msup>
                </mml:mrow>
              </mml:mfrac>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Equivalently, the log-odds ratio is</p>
        <disp-formula id="FD11">
          <mml:math>
            <mml:mrow>
              <mml:mi>log</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mfrac>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>p</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:msub>
                        <mml:mi>p</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                  </mml:mfrac>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:msub>
                <mml:mi>β</mml:mi>
                <mml:mn>0</mml:mn>
              </mml:msub>
              <mml:mo>+</mml:mo>
              <mml:msub>
                <mml:mi>β</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:msub>
                <mml:mi>X</mml:mi>
                <mml:mrow>
                  <mml:mi>i</mml:mi>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
              </mml:msub>
              <mml:mo>+</mml:mo>
              <mml:msub>
                <mml:mi>β</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:msub>
                <mml:mi>X</mml:mi>
                <mml:mrow>
                  <mml:mi>i</mml:mi>
                  <mml:mn>2</mml:mn>
                </mml:mrow>
              </mml:msub>
              <mml:mo>+</mml:mo>
              <mml:mo>⋯</mml:mo>
              <mml:mo>+</mml:mo>
              <mml:msub>
                <mml:mi>β</mml:mi>
                <mml:mi>k</mml:mi>
              </mml:msub>
              <mml:msub>
                <mml:mi>X</mml:mi>
                <mml:mrow>
                  <mml:mi>i</mml:mi>
                  <mml:mi>k</mml:mi>
                </mml:mrow>
              </mml:msub>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Logistic regression assumes a linear relationship between the predictors and the log-odds of default, which makes it transparent and easy to understand. However, it may miss nonlinear patterns in mortgage risk. A maximum likelihood function is used to solve for <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> p </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> such that</p>
        <disp-formula id="FD12">
          <mml:math>
            <mml:mrow>
              <mml:mi>L</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mi>β</mml:mi>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:munderover>
                  <mml:mo>∏</mml:mo>
                  <mml:mrow>
                    <mml:mi>i</mml:mi>
                    <mml:mo>=</mml:mo>
                    <mml:mn>1</mml:mn>
                  </mml:mrow>
                  <mml:mi>n</mml:mi>
                </mml:munderover>
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mi>p</mml:mi>
                    <mml:mi>i</mml:mi>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>Y</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                  </mml:msubsup>
                  <mml:msup>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>(</mml:mo>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>−</mml:mo>
                          <mml:msub>
                            <mml:mi>p</mml:mi>
                            <mml:mi>i</mml:mi>
                          </mml:msub>
                        </mml:mrow>
                        <mml:mo>)</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:msub>
                        <mml:mi>Y</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                  </mml:msup>
                </mml:mrow>
              </mml:mstyle>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Moreover, the log-likelihood is:</p>
        <disp-formula id="FD13">
          <mml:math>
            <mml:mrow>
              <mml:mi>ℓ</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mi>β</mml:mi>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:munderover>
                <mml:mstyle mathsize="140%" displaystyle="true">
                  <mml:mo>∑</mml:mo>
                </mml:mstyle>
                <mml:mrow>
                  <mml:mi>i</mml:mi>
                  <mml:mo>=</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mi>n</mml:mi>
              </mml:munderover>
              <mml:mrow>
                <mml:mo>[</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>Y</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mi>log</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>p</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>+</mml:mo>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:msub>
                        <mml:mi>Y</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mi>log</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:msub>
                        <mml:mi>p</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>]</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p><italic><bold>Modifications</bold></italic><italic><bold>of</bold></italic><italic><bold>Logistic</bold></italic><italic><bold>Regression</bold></italic><italic><bold>Models</bold></italic></p>
        <p>We also tested other methods of regularized logistic regression, such as Ridge, LASSO, and Elastic Net, as these methods maintain interpretability while offering greater coefficient stability.</p>
        <p><italic><bold>Ridge</bold></italic><italic><bold>Logistic</bold></italic><italic><bold>Regression</bold></italic></p>
        <disp-formula id="FD14">
          <mml:math>
            <mml:mrow>
              <mml:munder>
                <mml:mrow>
                  <mml:mi>min</mml:mi>
                </mml:mrow>
                <mml:mi>β</mml:mi>
              </mml:munder>
              <mml:mrow>
                <mml:mo>[</mml:mo>
                <mml:mrow>
                  <mml:mo>−</mml:mo>
                  <mml:mi>ℓ</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>β</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>+</mml:mo>
                  <mml:mi>λ</mml:mi>
                  <mml:munderover>
                    <mml:mstyle mathsize="140%" displaystyle="true">
                      <mml:mo>∑</mml:mo>
                    </mml:mstyle>
                    <mml:mrow>
                      <mml:mi>j</mml:mi>
                      <mml:mo>=</mml:mo>
                      <mml:mn>1</mml:mn>
                    </mml:mrow>
                    <mml:mi>k</mml:mi>
                  </mml:munderover>
                  <mml:mtext>
                     
                  </mml:mtext>
                  <mml:msubsup>
                    <mml:mi>β</mml:mi>
                    <mml:mi>j</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msubsup>
                </mml:mrow>
                <mml:mo>]</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Ridge-based regressions are useful when the predictors are highly correlated with each other, for example, interest rate, loan purpose, and refinance activity.</p>
        <p><italic><bold>LASSO</bold></italic><italic><bold>Logistic</bold></italic><italic><bold>Regression</bold></italic></p>
        <disp-formula id="FD15">
          <mml:math>
            <mml:mrow>
              <mml:munder>
                <mml:mrow>
                  <mml:mi>min</mml:mi>
                </mml:mrow>
                <mml:mi>β</mml:mi>
              </mml:munder>
              <mml:mrow>
                <mml:mo>[</mml:mo>
                <mml:mrow>
                  <mml:mo>−</mml:mo>
                  <mml:mi>ℓ</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>β</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>+</mml:mo>
                  <mml:mi>λ</mml:mi>
                  <mml:munderover>
                    <mml:mstyle mathsize="140%" displaystyle="true">
                      <mml:mo>∑</mml:mo>
                    </mml:mstyle>
                    <mml:mrow>
                      <mml:mi>j</mml:mi>
                      <mml:mo>=</mml:mo>
                      <mml:mn>1</mml:mn>
                    </mml:mrow>
                    <mml:mi>k</mml:mi>
                  </mml:munderover>
                  <mml:mrow>
                    <mml:mo>|</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>β</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>|</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>]</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The LASSO approach performs variable selection by shrinking the coefficients of less important variables to zero.</p>
        <p><italic><bold>Elastic</bold></italic><italic><bold>Net</bold></italic><italic><bold>Logistic</bold></italic><italic><bold>Regression</bold></italic></p>
        <disp-formula id="FD16">
          <mml:math>
            <mml:mrow>
              <mml:munder>
                <mml:mrow>
                  <mml:mi>min</mml:mi>
                </mml:mrow>
                <mml:mi>β</mml:mi>
              </mml:munder>
              <mml:mrow>
                <mml:mo>[</mml:mo>
                <mml:mrow>
                  <mml:mo>−</mml:mo>
                  <mml:mi>ℓ</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>β</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>+</mml:mo>
                  <mml:mi>λ</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mi>α</mml:mi>
                      <mml:munderover>
                        <mml:mstyle mathsize="140%" displaystyle="true">
                          <mml:mo>∑</mml:mo>
                        </mml:mstyle>
                        <mml:mrow>
                          <mml:mi>j</mml:mi>
                          <mml:mo>=</mml:mo>
                          <mml:mn>1</mml:mn>
                        </mml:mrow>
                        <mml:mi>k</mml:mi>
                      </mml:munderover>
                      <mml:mrow>
                        <mml:mo>|</mml:mo>
                        <mml:mrow>
                          <mml:msub>
                            <mml:mi>β</mml:mi>
                            <mml:mi>j</mml:mi>
                          </mml:msub>
                        </mml:mrow>
                        <mml:mo>|</mml:mo>
                      </mml:mrow>
                      <mml:mo>+</mml:mo>
                      <mml:mrow>
                        <mml:mo>(</mml:mo>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>−</mml:mo>
                          <mml:mi>α</mml:mi>
                        </mml:mrow>
                        <mml:mo>)</mml:mo>
                      </mml:mrow>
                      <mml:munderover>
                        <mml:mstyle mathsize="140%" displaystyle="true">
                          <mml:mo>∑</mml:mo>
                        </mml:mstyle>
                        <mml:mrow>
                          <mml:mi>j</mml:mi>
                          <mml:mo>=</mml:mo>
                          <mml:mn>1</mml:mn>
                        </mml:mrow>
                        <mml:mi>k</mml:mi>
                      </mml:munderover>
                      <mml:mtext>
                         
                      </mml:mtext>
                      <mml:msubsup>
                        <mml:mi>β</mml:mi>
                        <mml:mi>j</mml:mi>
                        <mml:mn>2</mml:mn>
                      </mml:msubsup>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>]</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Elastic Net combines the methods of Ridge and LASSO. Elastic Net is another model that could be applied to this problem, as its results would be explainable to regulators and would meet Basel banking requirements.</p>
        <p><italic><bold>ROC</bold></italic><italic><bold>-AUC</bold></italic><italic><bold>and</bold></italic><italic><bold>Precision-Recall</bold></italic></p>
        <p>We use ROC-AUC calculations as a measurement of accuracy. Accuracy itself can be calculated using the following equation, where the variables represent the number of true positives (<italic>TP</italic>), false positives (<italic>FP</italic>), true negatives (<italic>TN</italic>), and false negatives (<italic>FN</italic>):</p>
        <disp-formula id="FD17">
          <mml:math>
            <mml:mrow>
              <mml:mi>P</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>c</mml:mi>
              <mml:mi>i</mml:mi>
              <mml:mi>s</mml:mi>
              <mml:mi>i</mml:mi>
              <mml:mi>o</mml:mi>
              <mml:mi>n</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mi>T</mml:mi>
                  <mml:mi>P</mml:mi>
                </mml:mrow>
                <mml:mrow>
                  <mml:mi>T</mml:mi>
                  <mml:mi>P</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>F</mml:mi>
                  <mml:mi>P</mml:mi>
                </mml:mrow>
              </mml:mfrac>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD18">
          <mml:math>
            <mml:mrow>
              <mml:mi>R</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>c</mml:mi>
              <mml:mi>a</mml:mi>
              <mml:mi>l</mml:mi>
              <mml:mi>l</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mi>T</mml:mi>
                  <mml:mi>P</mml:mi>
                </mml:mrow>
                <mml:mrow>
                  <mml:mi>T</mml:mi>
                  <mml:mi>P</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>F</mml:mi>
                  <mml:mi>N</mml:mi>
                </mml:mrow>
              </mml:mfrac>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD19">
          <mml:math>
            <mml:mrow>
              <mml:mi>F</mml:mi>
              <mml:mn>1</mml:mn>
              <mml:mo>=</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mo>×</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mi>P</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:mi>e</mml:mi>
                  <mml:mi>c</mml:mi>
                  <mml:mi>i</mml:mi>
                  <mml:mi>s</mml:mi>
                  <mml:mi>i</mml:mi>
                  <mml:mi>o</mml:mi>
                  <mml:mi>n</mml:mi>
                  <mml:mo>×</mml:mo>
                  <mml:mi>R</mml:mi>
                  <mml:mi>e</mml:mi>
                  <mml:mi>c</mml:mi>
                  <mml:mi>a</mml:mi>
                  <mml:mi>l</mml:mi>
                  <mml:mi>l</mml:mi>
                </mml:mrow>
                <mml:mrow>
                  <mml:mi>P</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:mi>e</mml:mi>
                  <mml:mi>c</mml:mi>
                  <mml:mi>i</mml:mi>
                  <mml:mi>s</mml:mi>
                  <mml:mi>i</mml:mi>
                  <mml:mi>o</mml:mi>
                  <mml:mi>n</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>R</mml:mi>
                  <mml:mi>e</mml:mi>
                  <mml:mi>c</mml:mi>
                  <mml:mi>a</mml:mi>
                  <mml:mi>l</mml:mi>
                  <mml:mi>l</mml:mi>
                </mml:mrow>
              </mml:mfrac>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD20">
          <mml:math>
            <mml:mrow>
              <mml:mi>T</mml:mi>
              <mml:mi>P</mml:mi>
              <mml:mi>R</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mi>T</mml:mi>
                  <mml:mi>P</mml:mi>
                </mml:mrow>
                <mml:mrow>
                  <mml:mi>T</mml:mi>
                  <mml:mi>P</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>F</mml:mi>
                  <mml:mi>N</mml:mi>
                </mml:mrow>
              </mml:mfrac>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD21">
          <mml:math>
            <mml:mrow>
              <mml:mi>F</mml:mi>
              <mml:mi>P</mml:mi>
              <mml:mi>R</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mi>F</mml:mi>
                  <mml:mi>P</mml:mi>
                </mml:mrow>
                <mml:mrow>
                  <mml:mi>F</mml:mi>
                  <mml:mi>P</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>T</mml:mi>
                  <mml:mi>N</mml:mi>
                </mml:mrow>
              </mml:mfrac>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The ROC curve plots</p>
        <disp-formula id="FD22">
          <mml:math>
            <mml:mrow>
              <mml:mi>T</mml:mi>
              <mml:mi>P</mml:mi>
              <mml:mi>R</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mi>τ</mml:mi>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>against</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>F</mml:mi>
              <mml:mi>P</mml:mi>
              <mml:mi>R</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mi>τ</mml:mi>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>across different thresholds <inline-formula><mml:math><mml:mi> τ </mml:mi></mml:math></inline-formula> .</p>
        <p>The Precision-Recall curve plots</p>
        <disp-formula id="FD23">
          <mml:math>
            <mml:mrow>
              <mml:mi>P</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>c</mml:mi>
              <mml:mi>i</mml:mi>
              <mml:mi>s</mml:mi>
              <mml:mi>i</mml:mi>
              <mml:mi>o</mml:mi>
              <mml:mi>n</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mi>τ</mml:mi>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>against</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>R</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>c</mml:mi>
              <mml:mi>a</mml:mi>
              <mml:mi>l</mml:mi>
              <mml:mi>l</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mi>τ</mml:mi>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>This is especially important because mortgage default is rare. Precision-Recall AUC may be more informative than ROC-AUC when the default rate is only 2% - 3%.</p>
        <p><italic><bold>Population</bold></italic><italic><bold>Stability</bold></italic><italic><bold>Index</bold></italic></p>
        <p>The Population Stability Index (PSI) splits the distribution of a feature <inline-formula><mml:math><mml:mi> X </mml:mi></mml:math></inline-formula> , into bins. Let</p>
        <disp-formula id="FD24">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>A</mml:mi>
                <mml:mi>j</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mtext>proportion</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>of</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>observations</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>in</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>bin</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>j</mml:mi>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>in</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>the</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>training</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>year</mml:mtext>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD25">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>E</mml:mi>
                <mml:mi>j</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mtext>proportion</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>of</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>observations</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>in</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>bin</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>j</mml:mi>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>in</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>the</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>validation</mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>year</mml:mtext>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Then</p>
        <disp-formula id="FD26">
          <mml:math>
            <mml:mrow>
              <mml:mi>P</mml:mi>
              <mml:mi>S</mml:mi>
              <mml:mi>I</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:munderover>
                <mml:mstyle mathsize="140%" displaystyle="true">
                  <mml:mo>∑</mml:mo>
                </mml:mstyle>
                <mml:mrow>
                  <mml:mi>j</mml:mi>
                  <mml:mo>=</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mi>J</mml:mi>
              </mml:munderover>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>E</mml:mi>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                  <mml:mo>−</mml:mo>
                  <mml:msub>
                    <mml:mi>A</mml:mi>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mi>ln</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mfrac>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>E</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>A</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                  </mml:mfrac>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Typical interpretations include a little shift where</p>
        <disp-formula id="FD27">
          <mml:math>
            <mml:mrow>
              <mml:mi>P</mml:mi>
              <mml:mi>S</mml:mi>
              <mml:mi>I</mml:mi>
              <mml:mo>&lt;</mml:mo>
              <mml:mn>0.10</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>a moderate shift where</p>
        <disp-formula id="FD28">
          <mml:math>
            <mml:mrow>
              <mml:mn>0.10</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>P</mml:mi>
              <mml:mi>S</mml:mi>
              <mml:mi>I</mml:mi>
              <mml:mo>&lt;</mml:mo>
              <mml:mn>0.25</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>and a major shift where</p>
        <disp-formula id="FD29">
          <mml:math>
            <mml:mrow>
              <mml:mi>P</mml:mi>
              <mml:mi>S</mml:mi>
              <mml:mi>I</mml:mi>
              <mml:mo>≥</mml:mo>
              <mml:mn>0.25</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Our analysis indicates an interest-rate PSI above 3.0, which is a very large distribution shift.</p>
        <p><italic><bold>Generalized</bold></italic><italic><bold>Additive</bold></italic><italic><bold>Model</bold></italic><bold>(</bold><italic><bold>GAM</bold></italic><bold>)</bold><italic><bold>on</bold></italic><italic><bold>Logistic</bold></italic><italic><bold>Regression</bold></italic></p>
        <p>To further improve the competitiveness of our standard logistic regression with ML, we also tested interactions among the independent variables. For example,</p>
        <disp-formula id="FD30">
          <mml:math>
            <mml:mtable>
              <mml:mtr>
                <mml:mtd>
                  <mml:mi>log</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mfrac>
                        <mml:mrow>
                          <mml:msub>
                            <mml:mi>p</mml:mi>
                            <mml:mi>i</mml:mi>
                          </mml:msub>
                        </mml:mrow>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>−</mml:mo>
                          <mml:msub>
                            <mml:mi>p</mml:mi>
                            <mml:mi>i</mml:mi>
                          </mml:msub>
                        </mml:mrow>
                      </mml:mfrac>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>=</mml:mo>
                  <mml:msub>
                    <mml:mi>β</mml:mi>
                    <mml:mn>0</mml:mn>
                  </mml:msub>
                  <mml:mo>+</mml:mo>
                  <mml:msub>
                    <mml:mi>β</mml:mi>
                    <mml:mn>1</mml:mn>
                  </mml:msub>
                  <mml:mi>C</mml:mi>
                  <mml:msub>
                    <mml:mi>S</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>+</mml:mo>
                  <mml:msub>
                    <mml:mi>β</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msub>
                  <mml:mi>L</mml:mi>
                  <mml:mi>T</mml:mi>
                  <mml:msub>
                    <mml:mi>V</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>+</mml:mo>
                  <mml:msub>
                    <mml:mi>β</mml:mi>
                    <mml:mn>3</mml:mn>
                  </mml:msub>
                  <mml:mi>D</mml:mi>
                  <mml:mi>T</mml:mi>
                  <mml:msub>
                    <mml:mi>I</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>+</mml:mo>
                  <mml:msub>
                    <mml:mi>β</mml:mi>
                    <mml:mn>4</mml:mn>
                  </mml:msub>
                  <mml:msub>
                    <mml:mi>R</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>+</mml:mo>
                  <mml:msub>
                    <mml:mi>β</mml:mi>
                    <mml:mn>5</mml:mn>
                  </mml:msub>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mi>C</mml:mi>
                      <mml:msub>
                        <mml:mi>S</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                      <mml:mo>×</mml:mo>
                      <mml:mi>L</mml:mi>
                      <mml:mi>T</mml:mi>
                      <mml:msub>
                        <mml:mi>V</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mtd>
              </mml:mtr>
              <mml:mtr>
                <mml:mtd>
                  <mml:mtext>
                     
                  </mml:mtext>
                  <mml:mtext>
                     
                  </mml:mtext>
                  <mml:mo>+</mml:mo>
                  <mml:msub>
                    <mml:mi>β</mml:mi>
                    <mml:mn>6</mml:mn>
                  </mml:msub>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mi>L</mml:mi>
                      <mml:mi>T</mml:mi>
                      <mml:msub>
                        <mml:mi>V</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                      <mml:mo>×</mml:mo>
                      <mml:mi>D</mml:mi>
                      <mml:mi>T</mml:mi>
                      <mml:msub>
                        <mml:mi>I</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>+</mml:mo>
                  <mml:msub>
                    <mml:mi>ε</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mtd>
              </mml:mtr>
            </mml:mtable>
          </mml:math>
        </disp-formula>
        <p>Other useful interactions that were tested include</p>
        <disp-formula id="FD31">
          <mml:math>
            <mml:mrow>
              <mml:mi>C</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>d</mml:mi>
              <mml:mi>i</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mtext>
              </mml:mtext>
              <mml:mi>S</mml:mi>
              <mml:mi>c</mml:mi>
              <mml:mi>o</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mtext>
              </mml:mtext>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>C</mml:mi>
                  <mml:mi>S</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>×</mml:mo>
              <mml:mi>L</mml:mi>
              <mml:mi>T</mml:mi>
              <mml:mi>V</mml:mi>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD32">
          <mml:math>
            <mml:mrow>
              <mml:mi>L</mml:mi>
              <mml:mi>T</mml:mi>
              <mml:mi>V</mml:mi>
              <mml:mo>×</mml:mo>
              <mml:mi>D</mml:mi>
              <mml:mi>T</mml:mi>
              <mml:mi>I</mml:mi>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD33">
          <mml:math>
            <mml:mrow>
              <mml:mi>I</mml:mi>
              <mml:mi>n</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>s</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>R</mml:mi>
              <mml:mi>a</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mo>×</mml:mo>
              <mml:mi>L</mml:mi>
              <mml:mi>o</mml:mi>
              <mml:mi>a</mml:mi>
              <mml:mi>n</mml:mi>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>P</mml:mi>
              <mml:mi>u</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mi>p</mml:mi>
              <mml:mi>o</mml:mi>
              <mml:mi>s</mml:mi>
              <mml:mi>e</mml:mi>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD34">
          <mml:math>
            <mml:mrow>
              <mml:mi>F</mml:mi>
              <mml:mi>i</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mi>s</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>T</mml:mi>
              <mml:mi>i</mml:mi>
              <mml:mi>m</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mi>o</mml:mi>
              <mml:mi>m</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>b</mml:mi>
              <mml:mi>u</mml:mi>
              <mml:mi>y</mml:mi>
              <mml:mi>e</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mo>×</mml:mo>
              <mml:mi>L</mml:mi>
              <mml:mi>T</mml:mi>
              <mml:mi>V</mml:mi>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD35">
          <mml:math>
            <mml:mrow>
              <mml:mi>O</mml:mi>
              <mml:mi>c</mml:mi>
              <mml:mi>c</mml:mi>
              <mml:mi>u</mml:mi>
              <mml:mi>p</mml:mi>
              <mml:mi>a</mml:mi>
              <mml:mi>n</mml:mi>
              <mml:mi>c</mml:mi>
              <mml:mi>y</mml:mi>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>S</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mi>a</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mi>u</mml:mi>
              <mml:mi>s</mml:mi>
              <mml:mo>×</mml:mo>
              <mml:mi>L</mml:mi>
              <mml:mi>o</mml:mi>
              <mml:mi>a</mml:mi>
              <mml:mi>n</mml:mi>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>P</mml:mi>
              <mml:mi>u</mml:mi>
              <mml:mi>r</mml:mi>
              <mml:mi>p</mml:mi>
              <mml:mi>o</mml:mi>
              <mml:mi>s</mml:mi>
              <mml:mi>e</mml:mi>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>This interaction helps to address the linearity limitation of logistic regression. Furthermore, rather than testing the effects of the variables in their current forms, we also tested the spline-transformed versions of each of those variables:</p>
        <disp-formula id="FD36">
          <mml:math>
            <mml:mrow>
              <mml:mi>log</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mfrac>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>p</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:msub>
                        <mml:mi>p</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                  </mml:mfrac>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:msub>
                <mml:mi>β</mml:mi>
                <mml:mn>0</mml:mn>
              </mml:msub>
              <mml:mo>+</mml:mo>
              <mml:msub>
                <mml:mi>f</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>C</mml:mi>
                  <mml:msub>
                    <mml:mi>S</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>+</mml:mo>
              <mml:msub>
                <mml:mi>f</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>L</mml:mi>
                  <mml:mi>T</mml:mi>
                  <mml:msub>
                    <mml:mi>V</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>+</mml:mo>
              <mml:msub>
                <mml:mi>f</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>D</mml:mi>
                  <mml:mi>T</mml:mi>
                  <mml:msub>
                    <mml:mi>I</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>+</mml:mo>
              <mml:msub>
                <mml:mi>f</mml:mi>
                <mml:mn>4</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>R</mml:mi>
                  <mml:mi>a</mml:mi>
                  <mml:mi>t</mml:mi>
                  <mml:msub>
                    <mml:mi>e</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>+</mml:mo>
              <mml:msub>
                <mml:mi>ε</mml:mi>
                <mml:mi>i</mml:mi>
              </mml:msub>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>where each <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> f </mml:mi><mml:mi> j </mml:mi></mml:msub><mml:mrow><mml:mo> ( </mml:mo><mml:mo> ⋅ </mml:mo><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is a nonlinear spline function. The advantage of using GAMs is that they can capture nonlinear relationships among variables while still providing interpretable results for study readers.</p>
        <p>The diagrams compare logistic regression against random forest models. The dashed line represents the performance of random classification. The shapes of the curves are similar, indicating temporal stability of the models, and the differences in AUC values reflect the models’ relative performance in discriminating between the classes.</p>
        <p>Performance was measured using ROC-AUC, Precision-Recall AUC, F1 score, and Brier score. Calibration was also evaluated using the expected calibration error and the calibration slope. The statistical significance of the difference in ROC-AUC was also tested.</p>
        <p>For ML calibration, XGBoost, LightGBM, and CatBoost use class-weighted training, which affects their raw probability outputs. Their ECE values (0.34 - 0.35) and Brier values (0.8 - 0.19) indicate that they are not comparable to the calibration measures of logistic regression without post hoc calibration. </p>
        <p>3.2.4. Advanced Machine Learning Models (Models 10 - 12)</p>
        <p>All advanced ML models (XGBoost, LightGBM, and CatBoost, which support categorical features) are gradient boosting ensemble methods. All were trained on the same 70,000-row training set and evaluated on the same 30,000-row test set, as well as all logistic regression models, and were tested at a threshold of 0.10. </p>
      </sec>
    </sec>
    <sec id="sec4">
      <title>4. Analytical Results</title>
      <sec id="sec4dot1">
        <title>4.1. Exploratory Data Analysis</title>
        <p>Mortgage default was relatively uncommon in the dataset, with only 2.43% of the loans defaulting (<bold>Table 3</bold>). Credit score was the strongest factor predicting default, followed by loan-to-value (LTV) and debt-to-income (DTI) ratio (<bold>Table 4</bold>). The number of borrowers, property state, loan purpose, and the year the loan was obtained also influenced the default risk, indicating that mortgage risk performance varies with loan features, location, borrower characteristics, and the year the loan was obtained. </p>
        <p><bold>Table 3.</bold> Distribution of dependent variables (Default).</p>
        <table-wrap id="tbl3">
          <label>Table 3</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Default</bold>
                  <bold>Status</bold>
                </td>
                <td>
                  <bold>Count</bold>
                </td>
                <td>
                  <bold>Percentage</bold>
                </td>
              </tr>
              <tr>
                <td>Non-Default (0)</td>
                <td>97,566</td>
                <td>97.57%</td>
              </tr>
              <tr>
                <td>Default (1)</td>
                <td>2434</td>
                <td>2.43%</td>
              </tr>
              <tr>
                <td>Total</td>
                <td>100,000</td>
                <td>100%</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p><bold>Table 4.</bold> Top variables associated with default.</p>
        <table-wrap id="tbl4">
          <label>Table 4</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Variable</bold>
                </td>
                <td>
                  <bold>Association</bold>
                  <bold>Statistic</bold>
                </td>
                <td>
                  <bold>Method</bold>
                </td>
              </tr>
              <tr>
                <td>Credit Score</td>
                <td>0.1495</td>
                <td>Absolute Pearson Correlation</td>
              </tr>
              <tr>
                <td>Loan Purpose</td>
                <td>0.0581</td>
                <td>Cramér’s V</td>
              </tr>
              <tr>
                <td>Number of Borrowers</td>
                <td>0.0468</td>
                <td>Absolute Pearson Correlation</td>
              </tr>
              <tr>
                <td>Property State</td>
                <td>0.0433</td>
                <td>Cramér’s V</td>
              </tr>
              <tr>
                <td>Year</td>
                <td>0.0380</td>
                <td>Absolute Pearson Correlation</td>
              </tr>
              <tr>
                <td>Original DTI</td>
                <td>0.0360</td>
                <td>Absolute Pearson Correlation</td>
              </tr>
              <tr>
                <td>Occupancy Status</td>
                <td>0.0304</td>
                <td>Cramér’s V</td>
              </tr>
              <tr>
                <td>Original LTV</td>
                <td>0.0222</td>
                <td>Absolute Pearson Correlation</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
      </sec>
      <sec id="sec4dot2">
        <title>4.2. Analysis and Results of Logistic Regression (Models 1 - 5)</title>
        <p>All the logistic regression models were sequentially estimated on 70,000-row training sets and 30,000-row test sets. As shown in <bold>Tables 5-9</bold>, credit scores had the largest negative coefficient among all variables, indicating that higher credit quality reduces the probability of default. The year the loan was obtained, DTI, LTV, loan purpose, number of borrowers, interest rate, and UPB also provide meaningful signals. </p>
        <p><bold>Table 5.</bold> Logistic regression of all variables (Model 1).</p>
        <table-wrap id="tbl5">
          <label>Table 5</label>
          <table>
            <tbody>
              <tr>
                <td>Variable</td>
                <td>Coefficient</td>
                <td>SE</td>
                <td>Z-score</td>
                <td>
                  <italic>p</italic>
                  -value
                </td>
                <td>
                  Sig(
                  <italic>p</italic>
                  ≤ 0.10)
                </td>
              </tr>
              <tr>
                <td>Constant</td>
                <td>−4.537</td>
                <td>0.632</td>
                <td>−7.178</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Credit Score Z</td>
                <td>−0.924</td>
                <td>0.023</td>
                <td>−40.742</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Original LTV Z</td>
                <td>0.480</td>
                <td>0.033</td>
                <td>14.368</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Original DTI Z</td>
                <td>0.060</td>
                <td>0.012</td>
                <td>5.013</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Original UPB Z</td>
                <td>0.138</td>
                <td>0.026</td>
                <td>5.228</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Original Interest Rate Z</td>
                <td>0.083</td>
                <td>0.028</td>
                <td>2.955</td>
                <td>0.003</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Number of Borrowers Z</td>
                <td>−0.451</td>
                <td>0.024</td>
                <td>−18.573</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>First Time Homebuyer Flag Y</td>
                <td>−0.093</td>
                <td>0.055</td>
                <td>−1.690</td>
                <td>0.091</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Occupancy Status P</td>
                <td>0.529</td>
                <td>0.105</td>
                <td>5.027</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Loan Purpose N</td>
                <td>−0.520</td>
                <td>0.106</td>
                <td>−4.891</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Loan Purpose P</td>
                <td>−0.494</td>
                <td>0.066</td>
                <td>−7.516</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Year</td>
                <td>−0.470</td>
                <td>0.055</td>
                <td>−8.577</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Property State WA</td>
                <td>0.064</td>
                <td>0.643</td>
                <td>0.100</td>
                <td>0.920</td>
                <td>No</td>
              </tr>
              <tr>
                <td>Property State WI</td>
                <td>−0.119</td>
                <td>0.655</td>
                <td>−0.182</td>
                <td>0.856</td>
                <td>No</td>
              </tr>
              <tr>
                <td>Property State WY</td>
                <td>−0.143</td>
                <td>0.953</td>
                <td>−0.150</td>
                <td>0.881</td>
                <td>No</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p><bold>Table 6.</bold> Logistic regression of significant variables only <italic>p</italic> ≤ 0.10 (Model 2).</p>
        <table-wrap id="tbl6">
          <label>Table 6</label>
          <table>
            <tbody>
              <tr>
                <td>Variable</td>
                <td>Coefficient</td>
                <td>SE</td>
                <td>Z-score</td>
                <td>
                  <italic>p</italic>
                  -value
                </td>
                <td>CILower</td>
                <td>CIUpper</td>
              </tr>
              <tr>
                <td>Constant</td>
                <td>−4.121</td>
                <td>0.112</td>
                <td>−36.720</td>
                <td>0.000</td>
                <td>−4.341</td>
                <td>−3.901</td>
              </tr>
              <tr>
                <td>Credit Score Z</td>
                <td>−0.925</td>
                <td>0.023</td>
                <td>−41.090</td>
                <td>0.000</td>
                <td>−0.969</td>
                <td>−0.881</td>
              </tr>
              <tr>
                <td>Original LTV Z</td>
                <td>0.439</td>
                <td>0.032</td>
                <td>13.532</td>
                <td>0.000</td>
                <td>0.376</td>
                <td>0.503</td>
              </tr>
              <tr>
                <td>Original DTI Z</td>
                <td>0.064</td>
                <td>0.012</td>
                <td>5.122</td>
                <td>0.000</td>
                <td>0.039</td>
                <td>0.088</td>
              </tr>
              <tr>
                <td>Original UPB Z</td>
                <td>0.200</td>
                <td>0.023</td>
                <td>8.740</td>
                <td>0.000</td>
                <td>0.155</td>
                <td>0.244</td>
              </tr>
              <tr>
                <td>Original Interest Rate Z</td>
                <td>0.083</td>
                <td>0.028</td>
                <td>3.004</td>
                <td>0.003</td>
                <td>0.029</td>
                <td>0.137</td>
              </tr>
              <tr>
                <td>Number of Borrowers Z</td>
                <td>−0.451</td>
                <td>0.024</td>
                <td>−18.425</td>
                <td>0.000</td>
                <td>−0.499</td>
                <td>−0.403</td>
              </tr>
              <tr>
                <td>First Time Homebuyer Flag Y</td>
                <td>−0.093</td>
                <td>0.055</td>
                <td>−1.689</td>
                <td>0.091</td>
                <td>−0.200</td>
                <td>0.015</td>
              </tr>
              <tr>
                <td>Occupancy Status P</td>
                <td>0.529</td>
                <td>0.105</td>
                <td>5.028</td>
                <td>0.000</td>
                <td>−0.200</td>
                <td>0.735</td>
              </tr>
              <tr>
                <td>Loan Purpose N</td>
                <td>−0.520</td>
                <td>0.106</td>
                <td>−4.891</td>
                <td>0.000</td>
                <td>−0.729</td>
                <td>−0.312</td>
              </tr>
              <tr>
                <td>Loan Purpose P</td>
                <td>−0.494</td>
                <td>0.066</td>
                <td>−7.517</td>
                <td>0.000</td>
                <td>−0.622</td>
                <td>−0.365</td>
              </tr>
              <tr>
                <td>Year</td>
                <td>−0.467</td>
                <td>0.055</td>
                <td>−8.536</td>
                <td>0.000</td>
                <td>−0.574</td>
                <td>−0.360</td>
              </tr>
              <tr>
                <td>Property State GU</td>
                <td>2.392</td>
                <td>1.119</td>
                <td>2.138</td>
                <td>0.033</td>
                <td>0.199</td>
                <td>4.585</td>
              </tr>
              <tr>
                <td>Property State HI</td>
                <td>1.115</td>
                <td>0.313</td>
                <td>3.564</td>
                <td>0.000</td>
                <td>0.502</td>
                <td>1.727</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p><bold>Table 7.</bold> LN transformed all variables (Model 3).</p>
        <table-wrap id="tbl7">
          <label>Table 7</label>
          <table>
            <tbody>
              <tr>
                <td>Variable</td>
                <td>Coefficient</td>
                <td>SE</td>
                <td>Z-score</td>
                <td>
                  <italic>p</italic>
                  -value
                </td>
                <td>
                  Sig(
                  <italic>p</italic>
                  ≤ 0.10)
                </td>
              </tr>
              <tr>
                <td>Constant</td>
                <td>−1631</td>
                <td>841.016</td>
                <td>−0.002</td>
                <td>0.998</td>
                <td>NO</td>
              </tr>
              <tr>
                <td>ln(Credit Score)</td>
                <td>−14.147</td>
                <td>0.348</td>
                <td>−40.696</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>ln (Original LTV)</td>
                <td>1.516</td>
                <td>0.113</td>
                <td>13.385</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>ln(Original DTI)</td>
                <td>0.876</td>
                <td>0.098</td>
                <td>8.979</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>ln(Original UPB)</td>
                <td>0.089</td>
                <td>0.048</td>
                <td>1.860</td>
                <td>0.063</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Original Interest Rate_</td>
                <td>0.137</td>
                <td>0.114</td>
                <td>1.200</td>
                <td>0.230</td>
                <td>NO</td>
              </tr>
              <tr>
                <td>Number of Borrowers_</td>
                <td>−2.048</td>
                <td>0.113</td>
                <td>−18.114</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Occupancy Status P</td>
                <td>0.668</td>
                <td>0.148</td>
                <td>4.527</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Loan Purpose N</td>
                <td>−0.802</td>
                <td>0.153</td>
                <td>−5.253</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Loan Purpose P</td>
                <td>−0.694</td>
                <td>0.084</td>
                <td>−8.234</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Year</td>
                <td>−0.460</td>
                <td>0.056</td>
                <td>−8.256</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Property State WA</td>
                <td>0.065</td>
                <td>0.930</td>
                <td>0.070</td>
                <td>0.944</td>
                <td>No</td>
              </tr>
              <tr>
                <td>Property State WI</td>
                <td>−0.279</td>
                <td>0.947</td>
                <td>−0.294</td>
                <td>0.769</td>
                <td>No</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p><bold>Table 8.</bold> LN transformed significant variables (Model 4).</p>
        <table-wrap id="tbl8">
          <label>Table 8</label>
          <table>
            <tbody>
              <tr>
                <td>Variable</td>
                <td>Coefficient</td>
                <td>SE</td>
                <td>Z-score</td>
                <td>
                  <italic>p</italic>
                  -value
                </td>
                <td>CILower</td>
                <td>CIUpper</td>
              </tr>
              <tr>
                <td>Constant</td>
                <td>80.067</td>
                <td>2.249</td>
                <td>35.601</td>
                <td>0.000</td>
                <td>75.659</td>
                <td>84.475</td>
              </tr>
              <tr>
                <td>ln(Credit Score)</td>
                <td>−14.195</td>
                <td>0.345</td>
                <td>−41.193</td>
                <td>0.000</td>
                <td>−14.870</td>
                <td>−13.519</td>
              </tr>
              <tr>
                <td>ln(Original LTV)</td>
                <td>1.327</td>
                <td>0.107</td>
                <td>12.422</td>
                <td>0.000</td>
                <td>1.117</td>
                <td>1.536</td>
              </tr>
              <tr>
                <td>ln(Original DTI)</td>
                <td>0.932</td>
                <td>0.097</td>
                <td>9.631</td>
                <td>0.000</td>
                <td>0.742</td>
                <td>1.121</td>
              </tr>
              <tr>
                <td>ln(Original UPB)</td>
                <td>0.222</td>
                <td>0.041</td>
                <td>5.376</td>
                <td>0.000</td>
                <td>0.141</td>
                <td>0.302</td>
              </tr>
              <tr>
                <td>Original Interest Rate</td>
                <td>−0.271</td>
                <td>0.109</td>
                <td>−2.500</td>
                <td>0.012</td>
                <td>−0.484</td>
                <td>−0.059</td>
              </tr>
              <tr>
                <td>Number of Borrowers_</td>
                <td>−2.047</td>
                <td>0.114</td>
                <td>−17.919</td>
                <td>0.000</td>
                <td>−2.271</td>
                <td>−1.823</td>
              </tr>
              <tr>
                <td>Occupancy Status P</td>
                <td>0.681</td>
                <td>0.148</td>
                <td>4.611</td>
                <td>0.000</td>
                <td>0.392</td>
                <td>0.971</td>
              </tr>
              <tr>
                <td>Loan Purpose N</td>
                <td>−0.826</td>
                <td>0.153</td>
                <td>−5.394</td>
                <td>0.000</td>
                <td>−1.126</td>
                <td>−0.526</td>
              </tr>
              <tr>
                <td>Loan Purpose P</td>
                <td>−0.706</td>
                <td>0.085</td>
                <td>−8.262</td>
                <td>0.000</td>
                <td>−0.873</td>
                <td>−0.538</td>
              </tr>
              <tr>
                <td>Year</td>
                <td>−0.463</td>
                <td>0.056</td>
                <td>−8.298</td>
                <td>0.000</td>
                <td>−0.572</td>
                <td>−0.353</td>
              </tr>
              <tr>
                <td>Property State GU</td>
                <td>3.350</td>
                <td>1.772</td>
                <td>1.890</td>
                <td>0.059</td>
                <td>−0.123</td>
                <td>6.822</td>
              </tr>
              <tr>
                <td>Property State HI</td>
                <td>1.766</td>
                <td>0.448</td>
                <td>3.938</td>
                <td>0.000</td>
                <td>0.887</td>
                <td>2.645</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p><bold>Table 9.</bold> “Engineered” logistic regression with interactions (Model 5).</p>
        <table-wrap id="tbl9">
          <label>Table 9</label>
          <table>
            <tbody>
              <tr>
                <td>Variable</td>
                <td>Coefficient</td>
                <td>SE</td>
                <td>Z-score</td>
                <td>
                  <italic>p</italic>
                  -value
                </td>
                <td>
                  Sig(
                  <italic>p</italic>
                  ≤ 0.10)
                </td>
              </tr>
              <tr>
                <td>Constant</td>
                <td>−4.346</td>
                <td>0.033</td>
                <td>−130.845</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>ln(Credit Score)</td>
                <td>−0.931</td>
                <td>0.095</td>
                <td>−9.845</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>ln (Original LTV)</td>
                <td>−0.245</td>
                <td>0.109</td>
                <td>−2.238</td>
                <td>0.025</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>ln(Original DTI)</td>
                <td>0.333</td>
                <td>0.043</td>
                <td>7.805</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>ln(Original UPB)</td>
                <td>0.139</td>
                <td>0.024</td>
                <td>5.673</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Original Interest Rate_</td>
                <td>0.554</td>
                <td>0.199</td>
                <td>2.782</td>
                <td>0.005</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Number of Borrowers_</td>
                <td>−0.433</td>
                <td>0.025</td>
                <td>−17.609</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Credit Score × Original LTV</td>
                <td>0.473</td>
                <td>0.152</td>
                <td>3.109</td>
                <td>0.002</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Original DTI/Credit Score</td>
                <td>−0.309</td>
                <td>0.119</td>
                <td>−2.589</td>
                <td>0.010</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Original LTV × Original DTI</td>
                <td>0.356</td>
                <td>0.137</td>
                <td>2.594</td>
                <td>0.009</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>
                  Original Interest Rate
                  <sup>2</sup>
                </td>
                <td>−0.022</td>
                <td>0.167</td>
                <td>−0.132</td>
                <td>0.895</td>
                <td>NO</td>
              </tr>
              <tr>
                <td>Occupancy Status P</td>
                <td>0.128</td>
                <td>0.032</td>
                <td>4.039</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Loan Purpose N</td>
                <td>−0.110</td>
                <td>−0.110</td>
                <td>−4.236</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Loan Purpose P</td>
                <td>−0.221</td>
                <td>−0.221</td>
                <td>−7.706</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
              <tr>
                <td>Year</td>
                <td>−0.221</td>
                <td>−0.221</td>
                <td>−7.936</td>
                <td>0.000</td>
                <td>Yes</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p><bold>Table 10</bold> shows that Model 5, the “Engineered” model, has the best AIC and McFadden R<sup>2</sup> statistics, indicating that it has the most concise specification for the dataset. GAM (Model 9) has the best ROC-AUC statistics and the lowest Brier score. The models that utilize log-transformations of the variables have a lower AIC than the models that use the raw variables, but have similar hold-out AUC scores, indicating that the features engineered for Model 5 provide more value than the log-transformations alone.</p>
        <p><bold>Table 10.</bold> Goodness of fit results on a 70/30 split (Models 1 - 9).</p>
        <table-wrap id="tbl10">
          <label>Table 10</label>
          <table>
            <tbody>
              <tr>
                <td>Model</td>
                <td>
                  McFadden R
                  <sup>2</sup>
                </td>
                <td>AIC</td>
                <td>BIC</td>
                <td>Log-Like</td>
                <td>HoldoutAUC</td>
                <td>Brier</td>
              </tr>
              <tr>
                <td>Model 1 (Full LR)</td>
                <td>0.1200</td>
                <td>6175</td>
                <td>6723</td>
                <td>−3082.6</td>
                <td>0.7895</td>
                <td>0.0229</td>
              </tr>
              <tr>
                <td>Model 2 (Sig LR)</td>
                <td>0.1202</td>
                <td>6069</td>
                <td>6186</td>
                <td>−3028.9</td>
                <td>0.7890</td>
                <td>0.0229</td>
              </tr>
              <tr>
                <td>Model 3 (LN Full)</td>
                <td>0.1212</td>
                <td>6167</td>
                <td>6715</td>
                <td>−3077.5</td>
                <td>0.7927</td>
                <td>0.0229</td>
              </tr>
              <tr>
                <td>Model 4 (LN Sig)</td>
                <td>0.1172</td>
                <td>6086</td>
                <td>6186</td>
                <td>−3037.2</td>
                <td>0.7870</td>
                <td>0.0229</td>
              </tr>
              <tr>
                <td>Model 5 (Engineered)</td>
                <td>0.1248</td>
                <td>6047</td>
                <td>6205</td>
                <td>−3016.9</td>
                <td>0.7956</td>
                <td>0.0229</td>
              </tr>
              <tr>
                <td>Model 6 (Ridge)</td>
                <td>0.1242</td>
                <td>6048</td>
                <td>6189</td>
                <td>−3017.2</td>
                <td>0.7947</td>
                <td>0.0229</td>
              </tr>
              <tr>
                <td>Model 7 (LASSO)</td>
                <td>0.1241</td>
                <td>6048</td>
                <td>6190</td>
                <td>−3017.4</td>
                <td>0.7946</td>
                <td>0.0229</td>
              </tr>
              <tr>
                <td>Model 8 (Elastic Net)</td>
                <td>0.1241</td>
                <td>6048</td>
                <td>6190</td>
                <td>−3017.4</td>
                <td>0.7946</td>
                <td>0.0229</td>
              </tr>
              <tr>
                <td>Model 9 (GAM)</td>
                <td>0.1285</td>
                <td>6099</td>
                <td>6572</td>
                <td>−3042.5</td>
                <td>0.7971</td>
                <td>0.0228</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>The PSI analysis (<xref ref-type="fig" rid="fig1">Figure 1</xref>) helps to show the extent of the change in the distribution of each of these features between the training and validation years. The interest rate feature had a significant shift in its distribution between the two validation years (PSI &gt; 0.25). Additionally, the distribution of loan purposes showed a significant shift (PSI = 0.171). The change in the purpose of these loans is therefore the cause of the difference in the model’s performance between these two validation years.</p>
        <fig id="fig1">
          <label>Figure 1</label>
          <graphic xlink:href="https://html.scirp.org/file/2411151-rId113.jpeg?20260812045633" />
        </fig>
        <p><bold>Figure 1</bold><bold>.</bold> Distribution shift between 2022 and 2023.</p>
      </sec>
      <sec id="sec4dot3">
        <title>4.3. Precision, Recall, and Threshold Optimization Analysis</title>
        <p>At a threshold of 0.10, the logistic regression models will have fewer false positive values than the ML models. The reason is that the probabilities predicted by the logistic regression models are well calibrated. Model 2 reported that 1011 loans were potentially in default and identified 150 defaults. However, the XGBoost model caught 727 defaults using the same threshold value across 25,961 loans. This performance difference would not be acceptable without adjusting the model’s threshold. </p>
        <p><bold>Table 11</bold> compares the 12 models that were run. The key findings in the analysis include the following: </p>
        <p><bold>Table 11.</bold> All 12 models using the same 30,000-row test set.</p>
        <table-wrap id="tbl11">
          <label>Table 11</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Model</bold>
                </td>
                <td>
                  <bold>AUC</bold>
                </td>
                <td>
                  <bold>Accuracy</bold>
                </td>
                <td>
                  <bold>Precision</bold>
                </td>
                <td>
                  <bold>Recall</bold>
                </td>
                <td>
                  <bold>F1</bold>
                </td>
                <td>
                  <bold>Brier</bold>
                </td>
                <td>
                  <bold>TN</bold>
                </td>
                <td>
                  <bold>FP</bold>
                </td>
                <td>
                  <bold>FN</bold>
                </td>
                <td>
                  <bold>TP</bold>
                </td>
                <td>
                  <bold>ECE</bold>
                </td>
              </tr>
              <tr>
                <td>1: Full LR</td>
                <td>0.7895</td>
                <td>94.46%</td>
                <td>0.1217</td>
                <td>0.2055</td>
                <td>0.152</td>
                <td>0.022</td>
                <td>28,187</td>
                <td>1083</td>
                <td>580</td>
                <td>150</td>
                <td>0.001</td>
              </tr>
              <tr>
                <td>2: Sig LR</td>
                <td>0.7890</td>
                <td>94.70%</td>
                <td>0.1292</td>
                <td>0.2055</td>
                <td>0.158</td>
                <td>0.022</td>
                <td>28,259</td>
                <td>1011</td>
                <td>580</td>
                <td>150</td>
                <td>0.001</td>
              </tr>
              <tr>
                <td>3: LN Full</td>
                <td>0.7927</td>
                <td>94.92%</td>
                <td>0.1283</td>
                <td>0.1877</td>
                <td>0.152</td>
                <td>0.022</td>
                <td>28,339</td>
                <td>931</td>
                <td>593</td>
                <td>137</td>
                <td>0.002</td>
              </tr>
              <tr>
                <td>4: LN Sig</td>
                <td>0.7870</td>
                <td>94.84%</td>
                <td>0.1256</td>
                <td>0.1877</td>
                <td>0.150</td>
                <td>0.022</td>
                <td>28,316</td>
                <td>954</td>
                <td>593</td>
                <td>137</td>
                <td>0.001</td>
              </tr>
              <tr>
                <td>5: Engineered</td>
                <td>0.7956</td>
                <td>94.73%</td>
                <td>0.1250</td>
                <td>0.1945</td>
                <td>0.152</td>
                <td>0.022</td>
                <td>28,276</td>
                <td>994</td>
                <td>588</td>
                <td>142</td>
                <td>0.001</td>
              </tr>
              <tr>
                <td>6: Ridge</td>
                <td>0.7947</td>
                <td>94.71%</td>
                <td>0.1225</td>
                <td>0.1904</td>
                <td>0.149</td>
                <td>0.022</td>
                <td>28,274</td>
                <td>996</td>
                <td>591</td>
                <td>139</td>
                <td>0.001</td>
              </tr>
              <tr>
                <td>7: LASSO</td>
                <td>0.7946</td>
                <td>94.73%</td>
                <td>0.1230</td>
                <td>0.1904</td>
                <td>0.149</td>
                <td>0.022</td>
                <td>28,279</td>
                <td>991</td>
                <td>591</td>
                <td>139</td>
                <td>0.001</td>
              </tr>
              <tr>
                <td>8: Elastic Net</td>
                <td>0.7946</td>
                <td>94.73%</td>
                <td>0.1230</td>
                <td>0.1904</td>
                <td>0.149</td>
                <td>0.022</td>
                <td>28,279</td>
                <td>991</td>
                <td>591</td>
                <td>139</td>
                <td>0.001</td>
              </tr>
              <tr>
                <td>9: GAM</td>
                <td>0.7971</td>
                <td>94.52%</td>
                <td>0.1235</td>
                <td>0.2055</td>
                <td>0.154</td>
                <td>0.022</td>
                <td>28,205</td>
                <td>1065</td>
                <td>580</td>
                <td>150</td>
                <td>0.001</td>
              </tr>
              <tr>
                <td>10: XGBoost</td>
                <td>0.7967</td>
                <td>13.45%</td>
                <td>0.0272</td>
                <td>0.9959</td>
                <td>0.053</td>
                <td>0.185</td>
                <td>3309</td>
                <td>25,961</td>
                <td>3</td>
                <td>727</td>
                <td>0.346</td>
              </tr>
              <tr>
                <td>11: LightGBM</td>
                <td>0.7965</td>
                <td>16.30%</td>
                <td>0.0281</td>
                <td>0.9945</td>
                <td>0.054</td>
                <td>0.179</td>
                <td>4164</td>
                <td>25,106</td>
                <td>4</td>
                <td>726</td>
                <td>0.335</td>
              </tr>
              <tr>
                <td>12: CatBoost</td>
                <td>0.7988</td>
                <td>17.80%</td>
                <td>0.0285</td>
                <td>0.9918</td>
                <td>0.055</td>
                <td>0.183</td>
                <td>4617</td>
                <td>24,653</td>
                <td>6</td>
                <td>724</td>
                <td>0.338</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>Engineered LR (Model 5) has the lowest AIC and the highest ROC-AUC (0.7956) among LR models. GAM (Model 9) has the lowest ECE (0.3386), but its class-weighted probability outputs are not calibrated. Model 2 has the highest F1 score among all LR models (0.1586). All LR models are better calibrated than all gradient-boosting ML models. The ECE and Brier gap is approximately 20 - 500× and 8× (0.023 vs. 0.18), respectively. This means that if a bank uses CatBoost to calculate loss (EL = PD × LGD × EAD) using raw model probabilities, its loss estimation will be wildly inaccurate, which is why using post hoc calibration before any ML model is used is mandatory.</p>
        <p><xref ref-type="fig" rid="fig2">Figure 2</xref> shows that Credit Score is by far the most important variable across all ML models, consistent with the logistic regression results. Original DTI, LTV, original UPB, and the year the loan was obtained are the next critical variables. The consistency we obtained in the variable importance rankings across all twelve models provides relatively strong evidence that these are the correct underlying economic drivers of mortgage default risk in this dataset.</p>
        <fig id="fig2">
          <label>Figure 2</label>
          <graphic xlink:href="https://html.scirp.org/file/2411151-rId114.jpeg?20260812045633" />
        </fig>
        <p><bold>Figure 2</bold><bold>.</bold> Machine models (model 10 - 12).</p>
        <p><xref ref-type="fig" rid="fig3">Figure 3</xref> illustrates confusion matrices for XGBoost, LightGBM, and CatBoost at a threshold of 0.10. It shows that XGBoost detects 727 of 730 defaults (99.6% recall) but reports 25,961 false positives. LightGBM detects 726 defaults (99.5% recall), with 25,106 false positives. CatBoost detects 724 defaults (99.2% recall) and 24,653 false positives. These ML models are effective early-warning tools if the false-positive burden can be minimized; however, their operational threshold should be adjusted based on the institution’s proportional cost of missed defaults versus false alarms.</p>
        <fig id="fig3">
          <label>Figure 3</label>
          <graphic xlink:href="https://html.scirp.org/file/2411151-rId115.jpeg?20260812045633" />
        </fig>
        <p><bold>Figure 3</bold><bold>.</bold> Confusion matrices for XGBoost, LightGBM, and CatBoost at threshold 0.10.</p>
        <p>All the models performed similarly in risk ranking, with CatBoost leading, which is why it is the recommended ML model for risk ranking applications (<xref ref-type="fig" rid="fig4">Figure 4</xref>).</p>
        <fig id="fig4">
          <label>Figure 4</label>
          <graphic xlink:href="https://html.scirp.org/file/2411151-rId116.jpeg?20260812045633" />
        </fig>
        <p><bold>Figure 4</bold><bold>.</bold> ROC curve comparison for XGBoost, LightGBM, and CatBoost.</p>
      </sec>
    </sec>
    <sec id="sec5">
      <title>5. Summary and Conclusions</title>
      <p>A 30,000-row test set was evaluated on a 70/30 split with all twelve models. The findings in this research suggest that Credit Score is the strongest predictor of mortgage default rates across all 12 models tested. Number of borrowers, original LTV, original DTI, loan purpose, original interest, and the year the loan was obtained were the other key predictors.</p>
      <p>The findings are similar and relatively consistent across all family models tested. Engineered Logistic Regression (Model 5) has the best AIC (604,799) and McFadden R<sup>2</sup> (0.1248) among the logistic regression family models. GAM (Model 9) has the best ROC-AUC (0.7971), best ECE (0.000703), and best Brier score (0.02283) compared with the rest of the logistic family models, showing that nonlinear spline effects do capture additional structure beyond what linear specification can represent. Model 2, the significant logistic regression, having the highest F1 Score (0.1586) among traditional models, is the most interpretable and governance-friendly specification. </p>
      <p>CatBoost (Model 12), among all the ML models, has the highest overall ROC-AUC (0.7988), confirming it as the best model for risk ranking and early warning surveillance. However, it is important to note that its raw probability output was not calibrated with its ECE (0.3386) and Brier (0.1835), and that it requires post hoc calibration before use in expected loss estimation.</p>
      <p><bold>Key</bold><bold>Conclusions</bold></p>
      <p>1) All logistic regression models are better calibrated on raw probability outputs than all of the ML models. The ECE between these two models is within 200× to 500× of each other, and the Brier score is within approximately 8× of each other. This affects the regulatory requirements for estimating expected loss from these models.</p>
      <p>2) The gap between the performance of logistic regression and ML models is much smaller than that often reported in the literature in the context of evaluating the models on the same data. The best of each model shows a difference in AUC of only 0.0017 between the logistic regression model (GAM, AUC = 0.7971) and the ML model (CatBoost, AUC = 0.7988).</p>
      <p>3) Two models are recommended for deployment: CatBoost for early risk ranking and early warning surveillance, and GAM for expected loss estimation and regulatory reporting. </p>
      <p>4) Elastic Net has a similar result to LASSO on the dataset, confirming that for simple mortgage credit risk data with a little multicollinearity, the additional Elastic Net modeling does not lead to an additional meaningful value. </p>
      <p>5) The interest rate PSI between 2022 and 2023 of 3.121 indicates a huge shift in the distribution of interest rates. Each of the 12 models needs to be recalibrated annually or whenever the distribution of interest rates shifts.</p>
    </sec>
    <sec id="sec6">
      <title>Limitations and Future Research</title>
      <p>The study was conducted only on loans from 2022 to 2023, which reflects the post-COVID-19 pandemic interest-rate era and cannot be generalized to stress periods or longer loan cycles. It is recommended that future studies include the following considerations:</p>
      <p>Extend the dataset to incorporate longitudinal interest rate cycles.Apply some survivorship analysis to the data, like the Cox proportional hazards model, to model time to default.Use post-hoc calibrations, like the Platt scaling with isotonic regression, and standardize the beta with calibrations for the ML models. Determine whether the GAM’s strong calibration performance persists on out-of-sample vintages after 2023.</p>
    </sec>
    <sec id="sec7">
      <title>Recommended Additional Machine Learning Methods</title>
      <p><bold>Cost-Sensitive</bold><bold>Random</bold><bold>Forest</bold><bold>or</bold><bold>XGBoost</bold></p>
      <p>Instead of resampling, you can penalize mistakes on default loans more heavily. For weighted binary cross-entropy,</p>
      <disp-formula id="FD37">
        <mml:math>
          <mml:mrow>
            <mml:mi>L</mml:mi>
            <mml:mi>o</mml:mi>
            <mml:mi>s</mml:mi>
            <mml:mi>s</mml:mi>
            <mml:mo>=</mml:mo>
            <mml:mo>−</mml:mo>
            <mml:munderover>
              <mml:mstyle mathsize="140%" displaystyle="true">
                <mml:mo>∑</mml:mo>
              </mml:mstyle>
              <mml:mrow>
                <mml:mi>i</mml:mi>
                <mml:mo>=</mml:mo>
                <mml:mn>1</mml:mn>
              </mml:mrow>
              <mml:mi>n</mml:mi>
            </mml:munderover>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:msub>
                  <mml:mi>w</mml:mi>
                  <mml:mn>1</mml:mn>
                </mml:msub>
                <mml:msub>
                  <mml:mi>Y</mml:mi>
                  <mml:mi>i</mml:mi>
                </mml:msub>
                <mml:mi>log</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:msub>
                      <mml:mover accent="true">
                        <mml:mi>p</mml:mi>
                        <mml:mo>^</mml:mo>
                      </mml:mover>
                      <mml:mi>i</mml:mi>
                    </mml:msub>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>+</mml:mo>
                <mml:msub>
                  <mml:mi>w</mml:mi>
                  <mml:mn>0</mml:mn>
                </mml:msub>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>−</mml:mo>
                    <mml:msub>
                      <mml:mi>Y</mml:mi>
                      <mml:mi>i</mml:mi>
                    </mml:msub>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mi>log</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>−</mml:mo>
                    <mml:msub>
                      <mml:mover accent="true">
                        <mml:mi>p</mml:mi>
                        <mml:mo>^</mml:mo>
                      </mml:mover>
                      <mml:mi>i</mml:mi>
                    </mml:msub>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> w </mml:mi><mml:mn> 1 </mml:mn></mml:msub><mml:mo> &gt; </mml:mo><mml:msub><mml:mi> w </mml:mi><mml:mn> 0 </mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> because default cases are rarer and more costly to miss.</p>
      <p><bold>Neural</bold><bold>Network/Multilayer</bold><bold>Perceptron</bold></p>
      <p>A simple neural network can be written as</p>
      <disp-formula id="FD38">
        <mml:math>
          <mml:mrow>
            <mml:msub>
              <mml:mi>h</mml:mi>
              <mml:mi>i</mml:mi>
            </mml:msub>
            <mml:mo>=</mml:mo>
            <mml:mi>g</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:msub>
                  <mml:mi>W</mml:mi>
                  <mml:mn>1</mml:mn>
                </mml:msub>
                <mml:msub>
                  <mml:mi>X</mml:mi>
                  <mml:mi>i</mml:mi>
                </mml:msub>
                <mml:mo>+</mml:mo>
                <mml:msub>
                  <mml:mi>b</mml:mi>
                  <mml:mn>1</mml:mn>
                </mml:msub>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <disp-formula id="FD39">
        <mml:math>
          <mml:mrow>
            <mml:msub>
              <mml:mover accent="true">
                <mml:mi>p</mml:mi>
                <mml:mo>^</mml:mo>
              </mml:mover>
              <mml:mi>i</mml:mi>
            </mml:msub>
            <mml:mo>=</mml:mo>
            <mml:mi>σ</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:msub>
                  <mml:mi>W</mml:mi>
                  <mml:mn>2</mml:mn>
                </mml:msub>
                <mml:msub>
                  <mml:mi>h</mml:mi>
                  <mml:mi>i</mml:mi>
                </mml:msub>
                <mml:mo>+</mml:mo>
                <mml:msub>
                  <mml:mi>b</mml:mi>
                  <mml:mn>2</mml:mn>
                </mml:msub>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where <inline-formula><mml:math><mml:mrow><mml:mi> g </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mo> ⋅ </mml:mo><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is an activation function and <inline-formula><mml:math><mml:mrow><mml:mi> σ </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mo> ⋅ </mml:mo><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the logistic sigmoid function. A deep learning comparison is also applied to various ML models, but it may not outperform gradient boosting on tabular mortgage data.</p>
      <p><bold>Survival</bold><bold>Analysis</bold><bold>Model</bold></p>
      <p>This would be a major upgrade because mortgage default is naturally a time-to-event problem, not just a binary classification problem. Instead of asking whether the borrower defaults, survival analysis asks.</p>
      <disp-formula id="FD40">
        <mml:math>
          <mml:mrow>
            <mml:mi>P</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:msub>
                  <mml:mi>T</mml:mi>
                  <mml:mi>i</mml:mi>
                </mml:msub>
                <mml:mo>≤</mml:mo>
                <mml:mi>t</mml:mi>
                <mml:mo>|</mml:mo>
                <mml:msub>
                  <mml:mi>X</mml:mi>
                  <mml:mi>i</mml:mi>
                </mml:msub>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> T </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the time until default.</p>
      <p>A Cox proportional hazards model is</p>
      <disp-formula id="FD41">
        <mml:math>
          <mml:mrow>
            <mml:mi>h</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mi>t</mml:mi>
                <mml:mo>|</mml:mo>
                <mml:msub>
                  <mml:mi>X</mml:mi>
                  <mml:mi>i</mml:mi>
                </mml:msub>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:msub>
              <mml:mi>h</mml:mi>
              <mml:mn>0</mml:mn>
            </mml:msub>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mi>exp</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:msup>
                  <mml:mi>β</mml:mi>
                  <mml:mtext>T</mml:mtext>
                </mml:msup>
                <mml:msub>
                  <mml:mi>X</mml:mi>
                  <mml:mi>i</mml:mi>
                </mml:msub>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where: <inline-formula><mml:math><mml:mrow><mml:mi> h </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> t </mml:mi><mml:mo> | </mml:mo><mml:msub><mml:mi> X </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the hazard of default at time <inline-formula><mml:math><mml:mi> t </mml:mi></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> h </mml:mi><mml:mn> 0 </mml:mn></mml:msub><mml:mrow><mml:mo> ( </mml:mo><mml:mi> t </mml:mi><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the baseline hazard. This is important because a loan that defaults after 3 months and one that defaults after 30 months are different, but binary classification treats them the same. </p>
      <p><bold>Model</bold><bold>Calibration</bold><bold>Methods</bold></p>
      <p>Our initial finding is that random forest has poor calibration; hence, we added three calibration correction methods.</p>
      <p><bold>1)</bold><bold>Platt</bold><bold>scaling</bold></p>
      <disp-formula id="FD42">
        <mml:math>
          <mml:mrow>
            <mml:mi>P</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mi>Y</mml:mi>
                <mml:mo>=</mml:mo>
                <mml:mn>1</mml:mn>
                <mml:mo>|</mml:mo>
                <mml:mover accent="true">
                  <mml:mi>s</mml:mi>
                  <mml:mo>^</mml:mo>
                </mml:mover>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mfrac>
              <mml:mn>1</mml:mn>
              <mml:mrow>
                <mml:mn>1</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:msup>
                  <mml:mtext>e</mml:mtext>
                  <mml:mrow>
                    <mml:mo>−</mml:mo>
                    <mml:mrow>
                      <mml:mo>(</mml:mo>
                      <mml:mrow>
                        <mml:mi>a</mml:mi>
                        <mml:mover accent="true">
                          <mml:mi>s</mml:mi>
                          <mml:mo>^</mml:mo>
                        </mml:mover>
                        <mml:mo>+</mml:mo>
                        <mml:mi>b</mml:mi>
                      </mml:mrow>
                      <mml:mo>)</mml:mo>
                    </mml:mrow>
                  </mml:mrow>
                </mml:msup>
              </mml:mrow>
            </mml:mfrac>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where <inline-formula><mml:math><mml:mover accent="true"><mml:mi> s </mml:mi><mml:mo> ^ </mml:mo></mml:mover></mml:math></inline-formula> is the raw model score.</p>
      <p><bold>2)</bold><bold>Isotonic</bold><bold>regression</bold></p>
      <disp-formula id="FD43">
        <mml:math>
          <mml:mrow>
            <mml:msub>
              <mml:mover accent="true">
                <mml:mi>p</mml:mi>
                <mml:mo>^</mml:mo>
              </mml:mover>
              <mml:mrow>
                <mml:mi>c</mml:mi>
                <mml:mi>a</mml:mi>
                <mml:mi>l</mml:mi>
                <mml:mi>i</mml:mi>
                <mml:mi>b</mml:mi>
                <mml:mi>r</mml:mi>
                <mml:mi>a</mml:mi>
                <mml:mi>t</mml:mi>
                <mml:mi>e</mml:mi>
                <mml:mi>d</mml:mi>
              </mml:mrow>
            </mml:msub>
            <mml:mo>=</mml:mo>
            <mml:mi>f</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mover accent="true">
                <mml:mi>p</mml:mi>
                <mml:mo>^</mml:mo>
              </mml:mover>
              <mml:mo>)</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where <inline-formula><mml:math><mml:mi> f </mml:mi></mml:math></inline-formula> is a nondecreasing function.</p>
      <p><bold>3)</bold><bold>Beta</bold><bold>calibration</bold></p>
      <disp-formula id="FD44">
        <mml:math>
          <mml:mrow>
            <mml:mtext>logit</mml:mtext>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mi>p</mml:mi>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mi>a</mml:mi>
            <mml:mi>log</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mover accent="true">
                <mml:mi>p</mml:mi>
                <mml:mo>^</mml:mo>
              </mml:mover>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>−</mml:mo>
            <mml:mi>b</mml:mi>
            <mml:mi>log</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>1</mml:mn>
                <mml:mo>−</mml:mo>
                <mml:mover accent="true">
                  <mml:mi>p</mml:mi>
                  <mml:mo>^</mml:mo>
                </mml:mover>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>c</mml:mi>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Beta calibration can be useful when predicted probabilities are skewed. We were also able to compare the random forest results before and after calibration. </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <title>References</title>
      <ref id="B1">
        <label>1.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Addo, P. M., Guegan, D., &amp; Hassani, B. (2018). Credit Risk Analysis Using Machine and Deep Learning Models. <italic>Risks, 6,</italic> Article 38. https://doi.org/10.3390/risks6020038 <pub-id pub-id-type="doi">10.3390/risks6020038</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/risks6020038">https://doi.org/10.3390/risks6020038</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Addo, P.</string-name>
              <string-name>Guegan, D.</string-name>
              <string-name>Hassani, B.</string-name>
            </person-group>
            <year>2018</year>
            <elocation-id>38</elocation-id>
            <pub-id pub-id-type="doi">10.3390/risks6020038</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B2">
        <label>2.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Ayari, H., Guetari, P. R., &amp; Kraïem, P. N. (2025). Machine Learning Powered Financial Credit Scoring: A Systematic Literature Review. <italic>Artificial Intelligence Review, 5</italic><italic>9</italic><italic>,</italic> Article No. 13.</mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Ayari, H.</string-name>
              <string-name>Guetari, P.</string-name>
            </person-group>
            <year>2025</year>
            <elocation-id>No</elocation-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B3">
        <label>3.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Bücker, M., Szepannek, G., Gosiewska, A., &amp; Biecek, P. (2022). Transparency, Auditability, and Explainability of Machine Learning Models in Credit Scoring. <italic>Journal of the Operational Research Society, 73,</italic> 70-90. https://doi.org/10.1080/01605682.2021.1922098 <pub-id pub-id-type="doi">10.1080/01605682.2021.1922098</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1080/01605682.2021.1922098">https://doi.org/10.1080/01605682.2021.1922098</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Szepannek, G.</string-name>
              <string-name>Gosiewska, A.</string-name>
              <string-name>Biecek, P.</string-name>
              <string-name>Transparency, A</string-name>
            </person-group>
            <year>2022</year>
            <pub-id pub-id-type="doi">10.1080/01605682.2021.1922098</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B4">
        <label>4.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Chang, V., Sivakulasingam, S., Wang, H., Wong, S. T., Ganatra, M. A., &amp; Luo, J. (2024). Credit Risk Prediction Using Machine Learning and Deep Learning: A Study on Credit Card Customers. <italic>Risks, 12,</italic> Article 174. https://doi.org/10.3390/risks12110174 <pub-id pub-id-type="doi">10.3390/risks12110174</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/risks12110174">https://doi.org/10.3390/risks12110174</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Chang, V.</string-name>
              <string-name>Sivakulasingam, S.</string-name>
              <string-name>Wang, H.</string-name>
              <string-name>Wong, S.</string-name>
              <string-name>Ganatra, M.</string-name>
              <string-name>Luo, J.</string-name>
            </person-group>
            <year>2024</year>
            <elocation-id>174</elocation-id>
            <pub-id pub-id-type="doi">10.3390/risks12110174</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B5">
        <label>5.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Dumitrescu, E., Hué, S., Hurlin, C., &amp; Tokpavi, S. (2022). Machine Learning for Credit Scoring: Improving Logistic Regression with Non-Linear Decision-Tree Effects. <italic>European Journal of Operational Research, 297,</italic> 1178-1192. https://doi.org/10.1016/j.ejor.2021.06.053 <pub-id pub-id-type="doi">10.1016/j.ejor.2021.06.053</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.ejor.2021.06.053">https://doi.org/10.1016/j.ejor.2021.06.053</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Dumitrescu, E.</string-name>
              <string-name>Hurlin, C.</string-name>
              <string-name>Tokpavi, S.</string-name>
            </person-group>
            <year>2022</year>
            <pub-id pub-id-type="doi">10.1016/j.ejor.2021.06.053</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B6">
        <label>6.</label>
        <citation-alternatives>
          <mixed-citation publication-type="web">Freddie Mac (2023). Single-Family Loan-Level Dataset. https://www.freddiemac.com/research/datasets/sf-loanlevel-dataset</mixed-citation>
          <element-citation publication-type="web">
            <year>2023</year>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B7">
        <label>7.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Hossain, S., Sajal, A., Jamee, S. S., Tisha, S. A., Siddique, M. T., Obaid, M. O. et al. (2025). Comparative Analysis of Machine Learning Models for Credit Risk Prediction in Banking Systems. <italic>The American Journal of Engineering and Technology, 7,</italic> 22-33. https://doi.org/10.37547/tajet/volume07issue04-04 <pub-id pub-id-type="doi">10.37547/tajet/volume07issue04-04</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.37547/tajet/volume07issue04-04">https://doi.org/10.37547/tajet/volume07issue04-04</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Hossain, S.</string-name>
              <string-name>Sajal, A.</string-name>
              <string-name>Jamee, S.</string-name>
              <string-name>Tisha, S.</string-name>
              <string-name>Siddique, M.</string-name>
              <string-name>Obaid, M.</string-name>
            </person-group>
            <year>2025</year>
            <pub-id pub-id-type="doi">10.37547/tajet/volume07issue04-04</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B8">
        <label>8.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Lessmann, S., Baesens, B., Seow, H., &amp; Thomas, L. C. (2015). Benchmarking State-of-the-Art Classification Algorithms for Credit Scoring: An Update of Research. <italic>European Journal of Operational Re</italic><italic>search, 247,</italic> 124-136. https://doi.org/10.1016/j.ejor.2015.05.030 <pub-id pub-id-type="doi">10.1016/j.ejor.2015.05.030</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.ejor.2015.05.030">https://doi.org/10.1016/j.ejor.2015.05.030</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Lessmann, S.</string-name>
              <string-name>Baesens, B.</string-name>
              <string-name>Seow, H.</string-name>
              <string-name>Thomas, L.</string-name>
            </person-group>
            <year>2015</year>
            <pub-id pub-id-type="doi">10.1016/j.ejor.2015.05.030</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B9">
        <label>9.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Seitshiro, M. B., &amp; Govender, S. (2024). Credit Risk Prediction with and without Weights of Evidence Using Quantitative Learning Models. <italic>Cogent Economics &amp; Finance, 12,</italic> Article 2338971. https://doi.org/10.1080/23322039.2024.2338971 <pub-id pub-id-type="doi">10.1080/23322039.2024.2338971</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1080/23322039.2024.2338971">https://doi.org/10.1080/23322039.2024.2338971</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Seitshiro, M.</string-name>
              <string-name>Govender, S.</string-name>
            </person-group>
            <year>2024</year>
            <elocation-id>2338971</elocation-id>
            <pub-id pub-id-type="doi">10.1080/23322039.2024.2338971</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B10">
        <label>10.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Shi, S., Tse, R., Luo, W., D’Addona, S., &amp; Pau, G. (2022). Machine Learning-Driven Credit Risk: A Systemic Review. <italic>Neural Computing and Applications, 34,</italic> 14327-14339. https://doi.org/10.1007/s00521-022-07472-2 <pub-id pub-id-type="doi">10.1007/s00521-022-07472-2</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s00521-022-07472-2">https://doi.org/10.1007/s00521-022-07472-2</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Shi, S.</string-name>
              <string-name>Tse, R.</string-name>
              <string-name>Luo, W.</string-name>
              <string-name>Addona, S.</string-name>
              <string-name>Pau, G.</string-name>
            </person-group>
            <year>2022</year>
            <pub-id pub-id-type="doi">10.1007/s00521-022-07472-2</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
    </ref-list>
  </back>
</article>