鉴于我正在通过for循环强制使Hessian为8x8,为什么我会得到它是2x1的错误?
运行8x8 Hessian以在nx8回归数据集上生成maxLik。得到一个错误,即Hessian是2x1而不是8x8,即使这是在 Hessian [i,j]< - 中强制执行的。
x <- independent.variable.matrix.nby8
param <- c(1,1,1,1,1,1,1,1)
Hessian <- matrix(ncol=8,nrow=8)
hess.lik <- function(param) {
loglambd <- x%*%param
lambd <- exp(loglambd)
for (i in 1:8){
for (j in 1:8){
moment <- x[,i]*x[,j]
return(dim(moment))
Hessian[i,j] <- -sum(moment%*%lambd)
}
}
}
主要的qn是,即使部分不是正确的维度(可能),Hessian [i,j&lt; - -sum(vector)应该形成一个标量,通过{i,j}在1:8中循环应该强制8x8。为什么这不起作用?