全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4833 8
2018-01-12
我想估计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)



下面是报错信息:




附件列表
微信截图_20180112164134.png

原图尺寸 30.76 KB

代码及报错信息

代码及报错信息

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-1-12 16:42:28
第一次用这个论坛,不知道发帖格式是否正确,求大家帮助啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-12 17:29:35
发现其中第二个参数取负值时会出现inf值,但是我明明设置了下界lower的
没看错的话,需要优化的函数有5个参数,初始值和lower bounds都只给了4个。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-14 13:21:09
zhouhao211314 发表于 2018-1-12 17:29
没看错的话,需要优化的函数有5个参数,初始值和lower bounds都只给了4个。
哎呀,我贴错图片了。四个参数是我在查找bug时做的一种尝试。原始的代码和错误是下面这张图。第二个参数我设置了下界为0.001,但是却取到-0.001,而且这时我的程序报错了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-14 13:22:41
zhouhao211314 发表于 2018-1-12 17:29
没看错的话,需要优化的函数有5个参数,初始值和lower bounds都只给了4个。
VVv.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-6-14 19:10:57
欲宇内 发表于 2018-1-12 16:42
第一次用这个论坛,不知道发帖格式是否正确,求大家帮助啊
你好!请问你这个问题最后怎么解决的?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群