Finance Club, IIT Roorkee: Open Projects 2026
Project: Stochastic Interest Rate Modelling and
Prediction
Implementing, Calibrating, and Extending the Cox-Ingersoll-Ross Model on
Real Yield Curve Data
Project Type: Single-Person Project Duration: 2 Weeks Eligibility: Open to all students
Support: Mentorship by Finance Club members
1 Core Problem Statement
How can a stochastic short-rate model be implemented, calibrated against noisy historical yield
data, and extended to reconstruct an entire yield curve from a single observable input—and
where do such models succeed or fail when confronted with real market dynamics?
2 Project Overview
Interest rates are the fundamental building blocks of the global financial system. They dictate the
pricing of bonds, the valuation of derivatives, and the risk management strategies of institutional
portfolios. Yet interest rates are not static; they evolve over time in a complex, seemingly
random manner that resists simple forecasting. To capture this evolution, quantitative analysts
rely on advanced mathematical frameworks rooted in stochastic calculus.
In this project, you will dive into the world of short-rate modelling. Your primary objective is
to implement, calibrate, and improve upon the Cox-Ingersoll-Ross (CIR) model. Unlike simpler
models, the CIR framework uses a mean-reverting square-root diffusion process to ensure that
interest rates remain strictly positive—a crucial characteristic for real-world macroeconomic
modelling. You will build this model from the ground up, estimate its parameters from historical
market data, project the yield curve, and critically analyse its mathematical and practical
limitations.
3 Background and Introduction
The CIR model, introduced by Cox, Ingersoll, and Ross in 1985, describes the evolution of the
instantaneous short rate rt via the stochastic differential equation:
√
drt = κ(θ − rt ) dt + σ rt dWt
where κ > 0 is the speed of mean reversion, θ > 0 is the long-run mean, σ > 0 is the volatility
coefficient, and Wt is a standard Brownian motion. The square-root diffusion ensures that rates
cannot become negative provided the Feller condition 2κθ ≥ σ 2 is satisfied.
From the short rate, the model derives a closed-form bond pricing formula. The price at
time t of a zero-coupon bond maturing at T is given by:
P (t, T ) = A(t, T ) e−B(t,T ) rt
where A(t, T ) and B(t, T ) are deterministic functions of the model parameters and time to
maturity τ = T − t. The continuously compounded yield for maturity τ is then:
ln P (t, T ) B(t, T ) rt − ln A(t, T )
y(t, τ ) = − =
τ τ
This closed-form tractability is what makes the CIR model both practically useful and a natural
starting point for extensions.
While foundational, the base CIR model carries well-documented limitations. It cannot
perfectly fit an arbitrary initial term structure, struggles to capture sudden market shocks, and
constrains the yield curve to shapes that a single factor can produce. These limitations motivate
the advanced extensions you will explore.
4 The Dataset
You will be provided with a historical dataset containing daily bond yields.
• The Underlying Asset: The specific market, geographical region, or asset class from
which these yields are derived will remain undisclosed. Your model must rely purely on
the mathematical relationships within the data, without macroeconomic bias.
• Maturities: The dataset includes yield data across 9 specific maturity tenors: 3 Months,
6 Months, 9 Months, 1 Year, 2 Years, 5 Years, 10 Years, 20 Years, and 30 Years.
• Data Quality: The provided CSV files will not be clean. You will encounter missing
values, outliers, formatting inconsistencies, and non-trading day anomalies. Robust data
preprocessing is a mandatory first step.
• Splitting: You will receive both a Training Dataset and a Full Test Dataset to facilitate
out-of-sample backtesting.
Dataset Link: Google Drive
5 Core Objectives & Workflow
Your project submission must chronologically address the following milestones.
5.1 A. Data Engineering and Preprocessing
Clean the daily time-series data. Handle missing values appropriately—for example through inter-
polation or forward-filling—detect and normalise outliers, and ensure the data is mathematically
viable for time-series calibration.
5.2 B. Base CIR Model Implementation & Calibration
Implement the mathematical framework to simulate and calibrate the CIR process. You are
free to use any calibration methodology you deem appropriate to find the optimal parameters
(κ, θ, σ). Common approaches include Ordinary Least Squares (OLS), Maximum Likelihood
Estimation (MLE), Generalised Method of Moments (GMM), or advanced techniques such as
Kalman Filtering. You must justify your chosen method.
5.3 C. The Prediction Challenge: Yield Curve Construction
This is the core test of your model’s predictive power. When generating your predicted yield
curve (6M through 30Y) for any given day in the test period, your prediction algorithm is only
permitted to ingest the 3-Month (3M) yield for that day as a proxy for the instantaneous
short rate rt . You will use your calibrated parameters and this 3M rate to theoretically reconstruct
the entire yield curve and compare it against the held-out actuals in the test set.
2
5.4 D. Model Improvement & Extensions
The base CIR model, while foundational, has well-documented limitations. You are required to
research, implement, and backtest at least one advanced extension. Potential avenues include:
• Two-Factor CIR Models: Introducing a second stochastic factor to capture different
variations in the yield curve such as level versus slope. The Longstaff-Schwartz (1992)
model is a canonical reference.
• Jump-Diffusion Processes: Incorporating Poisson jump processes into the SDE to
account for sudden macroeconomic shocks or central bank policy announcements, following
the framework of Duffie, Pan, and Singleton (2000).
• Time-Dependent Parameters (CIR++): Allowing parameters to be deterministic
functions of time, as developed by Brigo and Mercurio, so that the initial yield curve is
fitted exactly.
5.5 E. Critical Analysis
Identify and articulate the practical and theoretical limitations of both your base model and
your extended model. Discuss the implications of your mathematical assumptions in a real-world
trading or risk-management scenario.
6 Key Questions the Project Must Answer
6.1 Model mechanics and calibration
• How sensitive is the calibrated yield curve to the choice of calibration methodology?
• Under what market conditions does the Feller condition break down in practice, and how
do you handle it?
• What does the mean-reversion speed κ imply about the persistence of interest rate shocks
in your data?
6.2 Prediction and out-of-sample performance
• How accurately can the 3M rate alone reconstruct the full yield curve, and which maturities
are hardest to fit?
• Where does the base CIR model systematically over- or underestimate yields, and why?
• Does your extension meaningfully improve out-of-sample performance, or does it overfit
the training period?
6.3 Extensions and modelling choices
• What mathematical structure justifies your chosen extension over the alternatives?
• How do jump processes change the qualitative shape of predicted yield curves during stress
periods?
• What are the additional estimation challenges introduced by a two-factor or time-dependent
model?
3
7 Deliverables & Formatting Requirements
This project requires the submission of a single Google Colab Notebook. No separate PDF
reports, slide decks, or local Python scripts will be accepted.
Requirement Description
Code Execution The notebook must run fully from top to bottom without
errors, fetching and processing data, calibrating models, and
outputting all evaluation metrics.
Markdown as Report Markdown cells integrated between code blocks must explain
the stochastic calculus, justify calibration choices, detail
extensions, and outline limitations.
Code Quality Write Pythonic, modular, and readable code using functions
and classes where appropriate, with clear inline comments
on complex mathematical steps.
Access Set the Google Colab link sharing to “Anyone with the link
can view”.
8 Evaluation Criteria
Only submissions meeting both of the following criteria will be verified by the Finance Club.
1. Predictive Accuracy (Out-of-Sample R2 ): The out-of-sample R2 score achieved on
the test dataset when reconstructing the yield curve from the 3M rate must be greater
than 0.85.
2. Readability and Code Quality: Code must be Pythonic, modular, and well-commented,
using functions and classes where appropriate with clear inline comments explaining complex
mathematical transformations.
If you have any queries regarding the problem statement, please reach out to the Finance Club.
Good luck!