我想估计GARCH模型的一个变型模型的参数。用Optim函数进行极大似然估计,会报错“L-BFGS-B needs finite values of 'fn'”,我自己通过browser(),发现其中第二个参数取负值时会出现inf值,但是我明明设置了下界lower的。不知道咋办了,求助大神们!!
这是我的代码:
r_t = Garch_data$return
rate = Garch_data$rf
T = nrow(Garch_data)
sigma2_t = matrix(rep(NA,T*1),nrow=T)
z_t = matrix(rep(NA,T*1),nrow=T)
sigma2_t[1] = r_t[1]^2
loglike = function(param){
lamda = param[1]
omiga = param[2]
b = param[3]
a =param[4]
c = param[5]
z_t[1] = (r_t[1]-rate[1]-(lamda-0.5)*sigma2_t[1])/sqrt(sigma2_t[1])
term = log(sigma2_t[1]) + z_t[1]^2
for (t in 2:T){
sigma2_t[t] = omiga + b*sigma2_t[t-1] + a*(z_t[t-1]-c*sqrt(sigma2_t[t-1]))^2
z_t[t] = (r_t[t]-rate[1]-(lamda-0.5)*sigma2_t[t])/sqrt(sigma2_t[t])
term = term + log(sigma2_t[t]) + z_t[t]^2
}
smallest = -1/2*term
return(-smallest)
}
x = c(1,0.01,0.1,0.1)
result = optim(x,loglike,method = "L-BFGS-B",lower=c(0,0.001,0.001,0.001),hessian = T)
下面是报错信息:


雷达卡






京公网安备 11010802022788号







