错误于optim(start, f, method = method, hessian = TRUE, ...) :
L-BFGS-B不能有'fn'的无限值
是虾米意思?下面是代码。似然函数没问题,是参照ypchen推荐的simulaiton and inference of SDE里Vasicek模型的。只是把dt改了和数据文件和初值改了。
如果用nlminb估计,倒是有结果,就是返回的是初值....
哪位熟悉的帮忙解释下吧。。。
<br />
attach(z)<br />
names(z) #返回rate<br />
dcOU <- function (x, t, x0 , theta , log = FALSE ){<br />
Ex <- theta [1] / theta [2]+( x0 - theta [1] / theta [2]) * exp (- theta [2] *t)<br />
Vx <- theta [3]^2 *(1- exp (-2* theta [2] *t))/(2* theta [2])<br />
dnorm (x, mean =Ex , sd = sqrt (Vx), log = log )<br />
}<br />
OU.lik <- function ( theta1 , theta2 , theta3 ){<br />
n <- length (X)<br />
-sum ( dcOU (X [2: n], 1/365, X [1:(n -1)] , c( theta1 , theta2 , theta3 ), log = TRUE ))<br />
}<br />
X=rate/100<br />
mle (OU.lik , start = list ( theta1 =1, theta2 =0.5 , theta3 =1) ,method ="L-BFGS-B", lower =c(-Inf ,0 ,0))<br />
</p>