在R中的Optim()中获得标准错误

时间:2018-12-06 21:27:05

标签: r optimization mle standard-error

我正在使用最大似然估计,并且在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))))

基于这个原因,我想问一下:为我的问题获取标准错误的最佳方法是什么?这样做的合适方法是什么?预先感谢。

0 个答案:

没有答案