Principles and Practices of Model Risk Management (MRM)
The First Line includes business model owners, model developers, model users, and implementation or technology stakeholders involved in model creation, implementation, use, and day-to-day management.
| Model Owner | Model Developer |
|---|---|
| Owns the business purpose and intended use. | Designs and develops the model. |
| Represents users and business stakeholders. | Selects methodology, variables, assumptions, and calibration approach. |
| Ensures appropriate use and business accountability. | Performs development testing and prepares code and technical documentation. |
| Owns ongoing performance monitoring and business response. | Supports monitoring design, diagnostics, and model changes. |
| Accountable for the model as used in the business. | Accountable for technical soundness of model development. |
The three lines are not isolated silos. They form a system of checks, challenge, remediation, and assurance.
| Line | Primary role | Connection to the First Line |
|---|---|---|
| First Line | Builds, implements, uses, operates, and monitors models. | Produces the model and the evidence needed for review. |
| Second Line | Independent validation, governance, challenge, and model-risk oversight. | Assesses First-Line evidence and performs independent testing. |
| Third Line | Independent assurance over the overall MRM framework. | Assesses whether First- and Second-Line controls are working effectively. |
| Layer | Meaning | First-Line example |
|---|---|---|
| Policy | What must be done. | Material models must be validated before production use. |
| Standard | What acceptable execution looks like. | Development must include documented data tests, out-of-sample testing, and limitations. |
| Procedure | How the work is actually performed. | Run the approved data-quality checks, calibration diagnostics, monitoring process, and change workflow. |
The First Line demonstrates compliance through reproducible data, code, testing, documentation, approvals, monitoring records, and change records.
Data treatment prepares or corrects the data. Data testing asks whether the data are suitable for the intended model.
| Test / procedure | Question | MRM interpretation |
|---|---|---|
| Missing-value review | Is the dataset complete? | Missingness may bias estimation or weaken representativeness. |
| Duplicate review | Are observations unintentionally overweighted? | Duplicates can distort calibration and summary statistics. |
| Data-type checks | Are numerical, categorical, and date fields stored correctly? | Format errors can silently corrupt analysis. |
| IQR / Z-score outlier review | Which observations are unusually extreme? | Investigate before deletion or capping; an extreme observation may be economically real. |
| Winsorization | How sensitive is the model to extreme observations? | Caps extremes while retaining observations; treatment must be justified. |
| Skewness / kurtosis | Are distributions asymmetric or heavy-tailed? | May motivate transformations or robust techniques. |
| ADF stationarity test | Does a time series appear to contain a unit root? | Nonstationarity can produce unstable estimates and spurious regression. |
| Autocorrelation / Durbin-Watson | Is serial dependence left unexplained? | Residual dependence may violate regression assumptions. |
| Correlation / VIF | Do predictors duplicate one another? | High VIF indicates unstable coefficients and weak incremental information. |
A model-identification process separates models from non-model analytical tools so that true models enter the appropriate inventory, validation, monitoring, change-management, and governance processes.
This is a useful extension to the Chapter 4 study guide; it is not developed as a standalone section in the supplied Chapter 4 proof.
Taxonomy organizes models by type, purpose, or use. Tiering ranks them by risk, materiality, exposure, and complexity.
Without taxonomy and tiering, an institution cannot apply a risk-based MRM framework consistently or efficiently.
Validation is a point-in-time control. Production use is continuous. After implementation, data, customers, products, economic relationships, technology, and upstream systems can all change.
The First Line therefore develops the monitoring plan, defines model KPIs and thresholds, performs monitoring at the required cadence, investigates poor performance, initiates remediation, and reports results to stakeholders and the Second Line.
Potential mitigation actions include better data, methodology changes, recalibration, overlays, usage restrictions, enhanced monitoring, redevelopment, replacement, or retirement.
The dataset is a deliberately imperfect monthly time series covering 2018–2025. It contains 96 intended monthly observations plus one intentionally duplicated record. It resembles a simplified bank PPNR/noninterest-income forecasting problem. It is educational data, not actual bank, Federal Reserve, or CCAR data.
| Variable | Role | Economic interpretation |
|---|---|---|
date | Time index | Monthly observation date. |
unemployment_rate | Primary macro predictor | Higher unemployment is designed to weaken fee income. |
unemployment_alt | Redundant predictor | Highly correlated alternative unemployment measure inserted to demonstrate multicollinearity. |
gdp_growth | Macro predictor | Stronger growth is designed to support fee income. |
inflation | Macro predictor | Allows macro sensitivity and stationarity testing. |
treasury_10y | Rate predictor | Allows interest-rate sensitivity testing. |
market_return | Market predictor | Stronger markets are designed to support market-sensitive fee income. |
fee_income | Dependent variable / PPNR proxy | Synthetic noninterest/fee-income outcome to be forecast. |
The defects make the data-treatment tests substantive rather than ceremonial.
The target was constructed so that fee income is economically related to macro and market conditions, together with a time trend and random noise:
Fee Income
= baseline
- unemployment effect
+ GDP-growth effect
- inflation effect
+ interest-rate effect
+ market-return effect
+ time trend
+ random noise
The model is intentionally simpler than a production CCAR PPNR model. Its purpose is to let students see whether the development process can recover sensible relationships, identify redundant predictors, diagnose time-series weaknesses, and reject a specification that does not generalize well.
df.shape
df.isna().sum()
df.duplicated().sum()
df.dtypes
The raw file contains 97 rows, including one duplicate. After duplicate removal, 96 distinct monthly observations remain.
df[c] = df[c].fillna(df[c].median())
Median imputation is used for demonstration. A production model should justify the treatment according to the missingness mechanism, materiality, and intended use.
The notebook uses the IQR rule to identify unusual observations and then applies 1%/99% Winsorization to the target for the teaching exercise.
Skewness and excess kurtosis are calculated to determine whether transformations or more robust techniques might be appropriate.
The Augmented Dickey-Fuller test asks whether a series appears to contain a unit root. Autocorrelation analysis checks for time dependence. These are important because nonstationary variables may create spurious time-series relationships.
The intentionally redundant unemployment variable generates a high correlation and high VIF, illustrating how multicollinearity can destabilize coefficients.
A full OLS specification is compared with a reduced specification. AIC and BIC reward model fit but penalize unnecessary complexity.
LASSO provides a second variable-selection perspective by shrinking weak or redundant standardized coefficients toward zero.
Durbin-Watson tests residual autocorrelation. Breusch-Pagan and White tests assess whether residual variance is approximately stable.
The first 80% of observations are used for development and the last 20% are held out. This preserves time order and better represents real forecasting than a random split.
The primary specification is compared with a simpler challenger using only unemployment and GDP growth. Complexity is justified only when it produces stable incremental value.
| Finding | Approximate result | Conclusion |
|---|---|---|
| Raw observations | 97 before duplicate removal | One duplicate is intentional; 96 distinct months remain. |
| Missing values | 1 each in unemployment, GDP growth, inflation, and market return | Completeness defects are visible and treated by median imputation for demonstration. |
| Fee-income outliers | Intentional high ≈ 136.98 and low ≈ 60.50 among IQR flags | Extreme observations materially affect the target and require investigation or treatment. |
| Unemployment correlation | ≈ 0.96 | The two unemployment predictors contain largely redundant information. |
| VIF | Both unemployment measures ≈ 14 | Severe multicollinearity; retaining both requires strong justification. |
| ADF | GDP growth stationary; unemployment/inflation weak or nonstationary in the sample | The time-series specification should be revisited before production use. |
| AIC/BIC | Reduced model lower than full model | Dropping the redundant unemployment variable improves parsimony. |
| Durbin-Watson | ≈ 2.07 | No obvious first-order residual autocorrelation in the reduced OLS. |
| BP / White | High p-values | No strong evidence of heteroscedasticity in the demonstration. |
| Primary holdout | RMSE ≈ 7.57; R² ≈ -0.67 | The primary model does not generalize well. |
| Simple benchmark | RMSE ≈ 5.72; R² ≈ 0.05 | The simpler GDP/unemployment benchmark outperforms the primary model. |
Ch004_CCARDemo_Data.csv, Ch004_Data_Treatment_Model_Selection.ipynb, and this HTML file in the same folder.