Page 1 of 1

CKLS Model for Interest Rates

Posted: Wed Feb 16, 2011 3:36 pm
by TomDoan
Note: a replication with the original data set and parameterization are now available at:

http://www.estima.com/forum/viewtopic.php?f=8&t=997

The following uses various GMM procedures to estimate interest rate model with discrete time data.

Code: Select all

*
* Estimation of CKLS model for interest rates.
* Reference: Chan, Karolyi, Longstaff and Sanders(1992), "Comparison of
* Models of the Short-Term Interest Rate" Journal of Finance, vol 47, no
* 3, 1209-1227.
*
* (This is not the original data set, or data range).
*
open data tbills.xls
calendar(m) 1946:1
data(format=xls,org=columns) 1946:01 2011:01 tb3ms
*
set y1 = tb3ms*.01
set dy = y1-y1{1}
*
nonlin alpha beta gamma sigmasq
frml eps = y1{-1}-(1+beta)*y1-alpha
frml variance = eps(t)^2-sigmasq*y1^(2*gamma)
*
* Just identified model
*
instruments constant y1
nlsystem(instruments) / eps variance
*
* Overidentified model
*
* With nozudep
*
instruments constant y1{0 1}
nlsystem(instruments) / eps variance
*
* Same thing, but correcting the covariance matrix and J-statistic
*
instruments constant y1{0 1}
nlsystem(instruments,robusterrors) / eps variance
*
* With ZUDEP
*
instruments constant y1{0 1}
nlsystem(instruments,zudep) / eps variance
Data file:
tbills.xls
(28.59 KiB) Downloaded 854 times

Re: CKLS Model for Interest Rates

Posted: Wed Feb 23, 2011 4:15 am
by Tony
Dear Tom,

I have been reading on how to forecast based on NLLS models or GMM from the user guide. It was told that we need to group before do any forecasting. But I still cannot understand it. Can you kindly show to us step by step how to do it using the CKLS model as example.

Re: CKLS Model for Interest Rates

Posted: Wed Feb 23, 2011 9:39 am
by TomDoan
The CKLS model is basically just a one lag autoregression; it's written in a different form in order to estimate it along with the variance equation by GMM. In order to forecast, you just need to create an equation which has the same content.

frml eps = y1{-1}-(1+beta)*y1-alpha

Re-dating this to make current (rather than future) y1 as the dependent variable gives:

Code: Select all

equation(coeffs=||1+beta,alpha||) y1eq y1
# y1{1} constant
You can then forecast that by itself with something as simple as UFORECAST.