在R中,给定带有hessian矩阵的optim输出,如何使用hessian矩阵计算参数置信区间?

机器算法验证 r 最大似然
2022-02-14 09:32:08

给定带有 hessian 矩阵的 optim 输出,如何使用 hessian 矩阵计算参数置信区间?

fit<-optim(..., hessian=T)

hessian<-fit$hessian

我对最大似然分析的背景最感兴趣,但很想知道该方法是否可以扩展。

1个回答

如果您要最大化似然性,则估计的协方差矩阵(渐近地)是 Hessian 的负数的逆矩阵。标准误差是协方差的对角元素的平方根(来自网络上的其他地方!,来自 Thomas Lumley 教授和 Spencer Graves,Eng.)。

对于 95% 的置信区间

fit<-optim(pars,li_func,control=list("fnscale"=-1),hessian=TRUE,...)
fisher_info<-solve(-fit$hessian)
prop_sigma<-sqrt(diag(fisher_info))
prop_sigma<-diag(prop_sigma)
upper<-fit$par+1.96*prop_sigma
lower<-fit$par-1.96*prop_sigma
interval<-data.frame(value=fit$par, upper=upper, lower=lower)

注意:

  • 如果您正在最大化日志(可能性),那么粗麻布的 NEGATIVE 是“观察到的信息”(例如这里)。
  • 如果您最小化“偏差”= (-2)*log(likelihood),那么粗麻布的一半就是观察到的信息。
  • 万一您要最大化似然性本身,则需要将粗麻布的负数除以获得观察到的信息的似然性。

由于使用了优化例程,请参阅此内容以了解更多限制。