【问题标题】:optim() and solving a diagonal matrix (fitting argument error) in Roptim() 并解决 R 中的对角矩阵(拟合参数错误)
【发布时间】:2013-03-15 03:19:19
【问题描述】:

我正在尝试在以下问题中找到解决方案:

再现性的任意值:

AZ2k <- seq(1:14) 
noAZ2k <- matrix(seq(1:25), 14, 50)
par <- rep(0.02 , 50)


vw <- function(w)
{

    t(AZ2k - noAZ2k %*% par)%*%w%*%(AZ2k - noAZ2k %*% par ) 

}


vweights <- optim(diag(1,14), vw, gr = NULL,
  method = c("L-BFGS-B"),
  lower = 0, upper = 10000,control = list( factr = 1e4, maxit = 1000, pgtol = .01 ), 
  hessian = FALSE)

当我输入时

t(AZ2k - noAZ2k %*% par)%*%diag(1,14)%*%(AZ2k - noAZ2k %*% par )

我得到了一个结果,但是当我尝试运行优化时,它说这些值不合适,这让我感到惊讶。

我可能遗漏了一些非常明显的东西,但我就是找不到哪里出错了,除非 optim 只是使用错误的函数,但我无法找到合适的替代方法。

【问题讨论】:

    标签: r optimization matrix diagonal


    【解决方案1】:

    您的 w 参数被转换为 vector ,因此您需要将其强制转换为具有正确尺寸的矩阵:

    vw <- function(w){
        w <- matrix(w,nrow=14,ncol=14,byrow=T)
        t(AZ2k - noAZ2k %*% par)%*%w%*%(AZ2k - noAZ2k %*% par ) 
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-16
      • 2017-05-24
      • 2018-08-10
      • 2019-05-07
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多