我正在使用最大似然估计,并且在optim()
中使用R
函数,其方式类似于以下方式:
optim(c(phi,phi2, lambda), objf, method = "L-BFGS-B", lower = c(-1.5, -1.5, 0), upper = c(1.5, 1.5, 1), model = model_gaussian)
(其中objf
是估算参数的函数)
现在,我想获取我估计的参数的标准误差(以便计算t统计量)。但是,显然,由于此优化是受约束的最大似然估计(由于“ L-BFGS-B”),我无法使用Hessian矩阵来获取标准误差,因为它在数学上是不正确的,因此这意味着我不能将hessian=TRUE
添加到optim
行。
例如,如果我使用BFGS
(不受限制/约束)而不是L-BFGS-B
方法,则查找标准错误非常简单:
opt <- optim(c(phi,phi2, lambda), objf, method = "L-BFGS-B", lower = c(-1.5, -1.5, 0), upper = c(1.5, 1.5, 1), model = model_gaussian, hessian = TRUE)
standarderrors <- sqrt(abs(diag(solve(-opt$hessian))))
基于这个原因,我想问一下:为我的问题获取标准错误的最佳方法是什么?这样做的合适方法是什么?预先感谢。