楼主: 默默的泓锡
4192 4

[问答] R语言报错missing value where TRUE/FALSE needed [推广有奖]

  • 0关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0001
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
1
精华
0
在线时间
16 小时
注册时间
2018-1-21
最后登录
2021-12-7

楼主
默默的泓锡 发表于 2021-12-7 23:10:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
救救孩子
```{r}
theta.est <- .04
kappa.est <- .5
sigma.est <- .02
parameters.est <- c(theta.est, kappa.est, sigma.est)

library(stats4)
bound.lower <-parameters.est * .1 # set the lower bound for the method "L-BFGS-B"
bound.upper <-parameters.est * 2 # set the upper bound for the method "L-BFGS-B"
est.mle<-mle(likelihood.CIR, start= list(theta=theta.est, kappa=kappa.est, sigma=sigma.est), method="L-BFGS-B", lower=bound.lower, upper= bound.upper, fixed=list(rt=rt))
summary(est.mle)
```

请问标红行为什么会Error in if (!all(lower[isfixed] <= fixed[isfixed] & fixed[isfixed] <=  :
  missing value where TRUE/FALSE needed报这个错
待估函数likelihood.CIR是能运行成功的,参数为theta, kappa, sigma, rt,rt为61*1000数组没有0值




不成熟的猜想,是lower=bound.lower, upper= bound.upper, fixed=list(rt=rt)这里的问题吗,具体什么问题咱也不敢说,请大佬救救。

二维码

扫码加我 拉你入群

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

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

关键词:missing NEEDED value Where SSIN MLE 统计 精算

沙发
719812133 学生认证  发表于 2021-12-8 10:14:33
有可能你自己套数计算待估函数likelihood.CIR时是不会报错的,但是mle函数是对这个目标函数在进行优化求解,在这个寻优过程中,有些参数估计值算法套进去后可能导致你likelihood.CIR里设定设定的这些个判断条件里准备用来判断的对象出现缺失,所以程序报错提示你没有值可以来进行条件判断。你可以再检查下你的lower和upper这两个部分,还有lower[isfixed]和fixed[isfixed]方括号里的isfixed也可以检查下。你可以自己在likelihood.CIR函数里写一个print,这样每一次寻优都会把你当下想检查的值的取值给输出出来,可以方便你锁定在最后报错停止处,你想检查的对象的取值。

藤椅
Jaye.Lee 学生认证  发表于 2023-6-20 22:27:03
请问这个问题您最后怎么解决的呀?我现在遇到了同样的问题

板凳
zyq9999 在职认证  发表于 2023-6-28 08:25:18
换到版本3.4.1,我在4.1.1下就是跑不通,3.4.1可以

报纸
jingsuao6 发表于 2023-8-19 10:44:13
zyq9999 发表于 2023-6-28 08:25
换到版本3.4.1,我在4.1.1下就是跑不通,3.4.1可以
Thanks~ 也解决了我的问题

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-4 06:17