我正在尝试优化权重(w_opt)的函数“ fun”,但出现以下错误:
Error in optim(par = par, fn = fun, method = "L-BFGS-B", lower = lb, upper = ub) :
L-BFGS-B needs finite values of 'fn'
任何帮助将不胜感激。 这是我的代码:
# matrix of 6 vectors of size 500x6
dens_fore <- cbind(garch_1, garch_2, garch_3, gjr_1, gjr_2, gjr_3)
w_eq -> 1/6
n_spec -> 6
par <- rep(w_eq, n_spec)
lb <- rep(0, n_spec)
# Objective function
fun <- function(w_opt, dat = dens_fore){
w_1 <- w_opt[1]
w_2 <- w_opt[2]
w_3 <- w_opt[3]
w_4 <- w_opt[4]
w_5 <- w_opt[5]
w_6 <- w_opt[6]
cumsum(log(sum(dat[,1]*w_1, dat[,2]*w_2, dat[,3]*w_3,
dat[,4]*w_4, dat[,5]*w_5, dat[,6]*w_6)))
}
optim_fun <- optim(par = par,
fn = fun,
method = "L-BFGS-B",
lower = lb,
upper = Inf)
PS:我需要为dens_fore矩阵的所有500行找到500组最佳权重(此矩阵没有无限值)