我已经编写了一个函数,用于返回(X'X)^-1的行列式。我需要在我创建的函数上使用优化函数,以便为X矩阵提供最佳值。我在使用优化函数时遇到了问题,但我的函数本身运行良好。
fr <- function(x,nc,nr) {
Xd <- matrix(c(rep(1,nr),x),nrow=nr,ncol=nc) #### Design matrix
det(solve((t(Xd)%*%Xd))) #### det(FIM)
}
我已经尝试将x作为向量和矩阵使用;
x <-
matrix(c(0.1,0.2,0.3,0.2,0.1,0,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2),nro w = 10, ncol = 2)
x <- c(0.1,0.2,0.3,0.2,0.1,0,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2)
这是我尝试使用optim实现的一些变体,但都没有成功;
optim((x, 3, 10), fr)
optim(fn = fr, par = c(x=x, nc=3, nr=10))
optim(c(x,3,10), fr)
我遇到不同的错误,有时是在optim函数中x后面加了逗号,有时是在.Internal函数中缺失了nrow参数。
x
乘以某个数A
,那么fr(x,3,10)
将会被乘以A^-4
。如果你选择足够大的A
,目标可以被缩小到任意程度。你可能对x
有一些约束条件,但这些条件在问题中被省略了。 - Vincent Zoonekynd