并在R中求解对角矩阵(拟合参数误差)



我想找到以下问题的解决方案:

再现性的任意值:

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 )

我得到一个结果,但是当我尝试运行优化时,它说值不适合,这对我来说是令人惊讶的。

我可能错过了一些完全明显的东西,但我只是找不到我错了,除非优化只是错误的函数使用,但我不能找出适当的替代方案。

您的w参数被转换为一个向量,因此您需要将其强制转换为具有正确维度的矩阵:

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

最新更新