全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3302 3
2012-03-20
比如对数似然函数为:
loglik=fn(a,b)
加上约束     0<a<1,0<b<0.5  的约束条件之后,用类似maxLik或者别的包怎么写啊?这属于非线性约束吧,非线性约束的包有哪些?请各位朋友帮帮我,非常感谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-3-20 22:48:21
y=rnorm(1000, mean = 0, sd = 1.2)

normal.lik1<-function(theta,y){
mu<-theta[1]
sigma2<-theta[2]
n<-length(y)
logl<- -.5*n*log(2*pi) -.5*n*log(sigma2) -(1/(2*sigma2))*sum((y-mu)**2)
return(-logl)
}

optim(c(0,1),normal.lik1,method="BFGS",y=y)
$par
[1] -0.01019272  1.47463370

$value
[1] 1613.034

$counts
function gradient
      18        6

$convergence
[1] 0

$message
NULL


#box-constrained optimisation
optim(c(0,1),normal.lik1,method="L-BFGS-B",y=y,lower=c(-Inf,0),upper=c(Inf,Inf))
$par
[1] -0.01020554  1.47430926

$value
[1] 1613.034

$counts
function gradient
      10       10

$convergence
[1] 0

$message
[1] "CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH"




二维码

扫码加我 拉你入群

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

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

2012-3-20 23:16:01
epoh 发表于 2012-3-20 22:48
y=rnorm(1000, mean = 0, sd = 1.2)

normal.lik1
非常感谢您
二维码

扫码加我 拉你入群

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

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

2012-8-13 15:49:29
epoh 发表于 2012-3-20 22:48
y=rnorm(1000, mean = 0, sd = 1.2)

normal.lik1
epoh老师,lower和upper是可以设定单个参数的上下限,但是如果要设定a+b<1的话应该怎么设定呢?
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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