R 寻找带循环的optim函数的参数估计?

R 寻找带循环的optim函数的参数估计?,r,model-fitting,R,Model Fitting,我想用optim函数计算模型的参数。我尝试使用最符合逻辑的值作为参数估计,但不幸的是,它们不起作用,因为optim函数无法与我给出的初始参数估计一起工作。 我想也许我可以写一个循环来测试参数估计的不同组合,并存储这些组合(或者仅仅是第一个组合),从而得到optim$convergence==0 然而,我没有成功地编写这样一个循环。所以我想知道是否有人能帮我解决这个问题。或者知道解决问题的更好方法 我的代码如下所示 FN <- function(par, x, k, N){ a1 <

我想用optim函数计算模型的参数。我尝试使用最符合逻辑的值作为参数估计,但不幸的是,它们不起作用,因为optim函数无法与我给出的初始参数估计一起工作。 我想也许我可以写一个循环来测试参数估计的不同组合,并存储这些组合(或者仅仅是第一个组合),从而得到optim$convergence==0

然而,我没有成功地编写这样一个循环。所以我想知道是否有人能帮我解决这个问题。或者知道解决问题的更好方法

我的代码如下所示

FN <- function(par, x, k, N){
  a1 <- par[1]
  aa <- par[2]
  b1 <- par[3]
  bb <- par[4]
  a2 <- par[5]
  aa2 <- par[6]
  b2 <- par[7]
  bb2 <- par[8]
  p <- cbind ((a1+aa*(Data$FDS=="low")) + ((b1+bb*(Data$FDS=="low")) * x),
              
              1 - (((a2+aa2*(Data$FDS=="low")) * (x ^ 2))/(((b2+bb2*(Data$FDS=="low")) ^ 2) + (x ^ 2))))[cbind(1:length(Data$Location_2), Data$Location_2)]
  zprob1 <- par [9]
  zprob2 <- par [10]
  nll <- -sum(dzibinom(x = k, prob = p, size = N, 
                       zprob = c(zprob1,zprob2)[Data$Location_2], log = T))
  return(nll)
}

opt1 <- optim(par = c(a1 = 0.38 , aa = 0.0001, b1 = 0.04, bb = 0, a2 = 0.61, aa2 = 0.0001, b2 = 1.6, bb2=0.00001, zprob1 = 0.93, zprob2 = 0.89), 
              x = Data$Day, k = Data$k,
              N = Data$N, fn = FN, hessian = TRUE)

opt2 
FN我们有机会吗?有机会吗?