全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件
3177 11
2022-03-06
大佬们,求教R语言,使用optim函数找最小值时可以设置某一待估参数(多个待估参数)为非负整数吗?
比如这个例子,如果我想x1取任意值,x2只取非负整数,应该在哪加什么啊?
obj <- function(x){
        x1 <- x[1]
        x2 <- x[2]
        y <- x1^2+x2^2-5
}
optim(par = c(0,0),fn=obj)

先谢谢了,本人小白,如果可以,麻烦说清楚一些,再次感谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2022-3-6 19:40:51
在optim函数中使用lbfgsb算法就能实现。
二维码

扫码加我 拉你入群

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

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

2022-3-6 20:55:27
1258225671 发表于 2022-3-6 19:40
在optim函数中使用lbfgsb算法就能实现。
感谢,但是我还是不懂,是这样吗?
obj <- function(x){
     x1 <- x[1]
     x2 <- x[2]
     y <- x1^2+x2^2-5
}
optim(par = c(0,0),fn=obj,method = "L-BFGS-B")
但是,对于x2的非负整数约束加在哪呢?怎么加呢?可以麻烦您多指点下吗?万分感谢!小白真的不懂
二维码

扫码加我 拉你入群

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

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

2022-3-6 21:02:55
实际上是混合整数问题,不妨先试试在函数内部进行转换(x2 <- floor(abs(x[2])))
二维码

扫码加我 拉你入群

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

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

2022-3-6 21:12:20
Aixir 发表于 2022-3-6 20:55
感谢,但是我还是不懂,是这样吗?
obj
非负数可以用lbfgsb,但非负整数就没办法了,optim解决不了你的问题
二维码

扫码加我 拉你入群

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

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

2022-3-6 21:20:45
正直者之死 发表于 2022-3-6 21:02
实际上是混合整数问题,不妨先试试在函数内部进行转换(x2
感谢回复,请问是这个样子吗?
obj <- function(x){
     x1 <- x[1]
     x2 <- floor(abs(x[2]))
     y <- x1^2+x2^2-5
}
optim(par = c(-4,3),fn=obj)
可是结果里的x2不是非负整数啊?不是很懂,能不能请您多指点下,万分感谢!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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