标签: maximization

为什么R中的optimx没有给出这个简单的非参数似然最大化的正确解?

optimx()是否提供了错误的解决方案,或者我错过了一个简单的观点?谢谢!

我试图最大化一个非常简单的可能性.在参数上未指定F的分布的意义上,这是非参数似然性.相反,对于每个观察到的xi,f(xi)=pi因此log(Likelihood)=Sum(log(f(xi)))=Sum(log(pi)).

我试图最大化的函数是:sum(log(pi))+lamda(sum(pi-1)) where sum(pi)=1(即这是一个约束最大化问题,可以使用拉格朗日乘数来解决).

这个问题的答案是数据点的数量pi=1/n在哪里n.但是,optimx似乎没有给出这个解决方案.有没有人有任何想法.如果n=2,我正在最大化的功能是log(p1)+log(p2)+lamda(p1+p2-1).

这是我的代码和R的输出:

n=2
log.like=function(p)
{
  lamda=p[n+1]
  ll=0
  for(i in 1:n){
    temp = log(p[i])+lamda*p[i]-lamda/(n)
    ll=ll+temp
  }
  return(-ll)
}


mle = optimx(c(0.48,.52,-1.5),
             log.like,
             lower=c(rep(0.1,2),-3),
             upper=c(rep(.9,2),-1),
             method = "L-BFGS-B")

> mle
             par  fvalues   method fns grs itns conv  KKT1 KKT2 xtimes
1 0.9, 0.9, -1.0 1.010721 L-BFGS-B   8   8 NULL    0 FALSE   NA      0
Run Code Online (Sandbox Code Playgroud)

等式的解决方案n=2p1=p2=1/2lamda=-2.但是,使用optimx时我没有得到这个.任何的想法?

optimization r maximization

9
推荐指数
1
解决办法
5709
查看次数

求解R中的微分方程组

我在R中有一个简单的通量模型.它归结为两个微分方程,模拟模型中的两个状态变量,我们称之为AB.它们被计算为四分量通量flux1-flux4,5个参数p1-p5和第六个参数的简单差分方程of_interest,其可以取0-1之间的值.

parameters<- c(p1=0.028, p2=0.3, p3=0.5, p4=0.0002, p5=0.001, of_interest=0.1) 
state     <- c(A=28, B=1.4)

model<-function(t,state,parameters){
  with(as.list(c(state,parameters)),{
  #fluxes
  flux1  = (1-of_interest) * p1*(B / (p2 + B))*p3
  flux2  = p4* A          #microbial death
  flux3  = of_interest * p1*(B / (p2 + B))*p3 
  flux4  = p5* B      

  #differential equations of component fluxes
  dAdt<- flux1 - flux2
  dBdt<- flux3 - flux4
  list(c(dAdt,dBdt))
  })
Run Code Online (Sandbox Code Playgroud)

我想编写一个函数来取的导数dAdt相对于of_interest,派生方程设置为0,然后重新排列并求解的值of_interest.这将是of_interest最大化函数的参数的值dAdt.

到目前为止,我已经能够在稳定状态下解决模型,跨越可能的值 …

optimization r calculus differential-equations maximization

7
推荐指数
1
解决办法
1452
查看次数