R Optimization Function Test

(This article was first published on Quantitative Finance Collector, and kindly contributed to R-bloggers)

Using Kalman Filter for CIR interest rate model parameter estimation was introduced at my previously post Kalman Filter finance, soon after that I got a few comments saying the final results are unstable and highly depend on the initial values, that's true, local vs global minimum is never ending.

This post is therefore a sample test of the optimization functions in R as I started to move from Matlab to R recently, and R allows us to choose the method we'd like to use for minimization.
Purpose: to estimate the parameters for Vasicek interest rate model;
Function to be minimized: similar as in Kalman Filter finance, where a CIR model is used instead;
Number of Parameters: 8
Data: two years time series of 3 month, 6 month, 1 year and 5 year US interest rate;
R function to be tested: nlm, optim(Nelder-Mead), optim(BFGS), optim(SANN), nlminb, optim (L-BFGS-B)

The true values are listed in the paper "estimating and testing exponential-affine term structure models by kalman filter", abs.tol and rel.tol are set to be 1e-6 wherever possible, derivative is not given and unconstrained optimization is prefered
R optimization function performance

I intentionally set the starting values far away from the true ones in order to see which one is able to find closest answers, obviously nlminb outperforms all others and returns almost the true values, I change the starting values randomly and still, nlminb is the best and all R functions finish within seconds.

Check several alternative R optimization packages if you are not satisfied.



Tags - , ,
Read the full post at R Optimization Function Test.

To leave a comment for the author, please follow the link and comment on his blog: Quantitative Finance Collector.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.