2013-04-15 2 views
1

Я хочу оценить параметры CIR модели, хотя ML в R. Это выглядит следующим:оценка модели CIR через ОМП

др = (theta1-theta2 * г) + theta3 * SQRT (г) * дШ.

Этот метод реализуется в sde packege, который сопровождает книгу Iacus «Цена опциона и оценка финансовых моделей с R».

Там, в примере (ch 5), выполняется оценка ставок и вычисляются коэффициенты theta1-3. Теперь я хочу сделать то же самое, но с моим набором данных (X2).

library(quantmod) 

library(sde) 
library(Ecdat) 
data(Irates) 
X1=Irates[,"r1"] 
getSymbols(Symbols="DTB4WK",src="FRED") 
X2=interpNA(coredata(DTB4WK)) 
X2[X2<0]=0 

X=X2 
CIR.logistic = function(theta1, theta2,theta3) { 
    n=length(X) 
    dt=deltat(X) 
    cat(theta1," ",theta2, " ",theta3," \n") 
    return(-sum(dcCIR(x=X[2:n],Dt=dt,x0=X[1:(n-1)], theta=c(theta1,theta2,theta3),log=TRUE))) 
} 
mle(CIR.logistic,start=list(theta1=0.1, theta2=0.1,theta3=0.1),method='L-BFGS-B', 
    lower=c(0.01,0.01,0.01),upper=c(1,1,1)) 

Я был бы очень признателен за любую помощь!

ответ

1

В модели CIR скорость почти наверняка отлична от нуля: удаления отрицательных значений недостаточно.

# Also remove zeroes (if there are many of them, it is probably not a good idea) 
X[ X <= 0 ] <- .1 

# Then, you code works 
mle(CIR.logistic, 
    start = list(theta1=0.1, theta2=0.1, theta3=0.1), 
    method = 'L-BFGS-B', 
    lower = c(0.01,0.01,0.01), 
    upper = c(1,1,1)) 
+0

Спасибо за ответ! но с данными, которые я хочу использовать для оценки CIR (X2), поведение оценок является более странным. если один изменяет верхние границы, оценки также меняются. Но с X1 они остаются стабильными. Каков способ, который используется на практике для оценок CIR или CKLS? Спасибо –

+0

Если вы посмотрите на данные, вы увидите два очень разных режима: вы должны ожидать (ненадежные оценки и) нестабильность, если вы измените период оценки. Вы должны отделить до- и посткризисные периоды. Кроме того, решение находится на границе области, определенной вашими ограничениями, и, похоже, сходится к '(бесконечность, бесконечность, 0)', если вы их расслабляете: если это сохраняется после сокращения периода оценки, данные нельзя смоделировать по модели CIR, и вы должны попробовать другую модель. –

+0

действительно, это кризисное время дает столько нарушений. Я разделил данные на две (до- и послекризисные), а также исключил часть большого движения вниз, а затем оценка аналогична, когда вы занимаете разные окна 400-600-1000 obs-ns. Благодаря! –

Смежные вопросы