我如何优化 R 中的 MyMaximum-LikeliHood 函数

问题描述

R 中的估计器。因此我需要从最大似然函数中获得最大值。我的评分函数

LL <- function(theta){
  b0 <- theta[1]
  b1 <- theta[2]
  b2 <- theta[3]
  b3 <- theta[4]
  SigmaV <- theta[5]
  Gamma <- theta[6]
  res <- Y - b0 - b1 * X1 - b2 * X2 - b3*X3
  score <- 0
  for(i in 1:x){
    score <- score + log((2/(sqrt(SigmaV^2+Gamma^2))) * dnorm(res[i]/sqrt(SigmaV^2+Gamma^2))*pnorm((-res[i]/sqrt(SigmaV^2+Gamma^2))*(Gamma/SigmaV)))
  }
  score
}

因此它是对 SFA 模型的优化。

我尝试了很多选项(optim、mle2 和其他一些选项)。最好的方法之一是使用优化:

FitfürnormalenFall <- optim(c(1,1,0.2,0.3),LL,method = "BFGS",control=list(fnscale=-1))

但是起始值是随机的。我只是选择值。实际值是

a0 <- 0.9
a1 <- 0.6
a2 <- 0.5
a3 <- 1
sigmaV <- 0.25
gamma <- 0.3

但是我没有用这种算法接近值。哪个是我可以使用的优化方法,或者什么是好的起始值和其他优化指令,以便我接近真实值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...