R 计算Hessian(最大似然)的尺寸误差

R 计算Hessian(最大似然)的尺寸误差,r,matrix,hessian-matrix,R,Matrix,Hessian Matrix,鉴于我正在通过for循环强制Hessian成为8x8,为什么我会得到错误,认为它是2x1 在nx8回归器数据集上运行8x8 Hessian以生成maxLik。得到Hessian是2x1而不是8x8的错误,即使这是在Hessian[i,j]中强制的,也可以使问题重现。代码需要定义x和param。如果您收到的错误是抱怨您的hessian是2x1,可能是因为您正在执行返回(dim(moment))-您的hess的返回值。lik函数将只是时刻的维度,在运行完两个嵌套的for循环之后,当您可能想要返回He

鉴于我正在通过for循环强制Hessian成为8x8,为什么我会得到错误,认为它是2x1


在nx8回归器数据集上运行8x8 Hessian以生成maxLik。得到Hessian是2x1而不是8x8的错误,即使这是在Hessian[i,j]中强制的,也可以使问题重现。代码需要定义
x
param
。如果您收到的错误是抱怨您的hessian是
2x1
,可能是因为您正在执行
返回(dim(moment))
-您的
hess的返回值。lik
函数将只是
时刻的维度,在运行完两个嵌套的for循环之后,当您可能想要返回
Hessian
时。您是对的,Marius,这应该是print(dim(moment))
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)
    } 
  }
}