【问题标题】:Matlab fminunc calculate standard errors MLEMatlab fminunc计算标准误差MLE
【发布时间】:2013-07-18 13:39:33
【问题描述】:
我在尝试从 fminunc 计算估计的标准误差时遇到问题。我的估计技术是最大似然估计。我尝试了以下两种方法,都失败了:
来自 fminunc 结果的 Hessian 矩阵是不可逆的,所以我无法从 Hessian 矩阵中得到标准误差。
所以我转而使用 OPG(outer-product-of-gradient) 方法来获取标准误差。但是,我提供的梯度未能通过导数检查。
有人知道我是否有其他方法可以获得标准错误?您的帮助将不胜感激!
【问题讨论】:
标签:
matlab
standard-error
hessian-matrix
【解决方案2】:
上面提到的链接引用了 BHHH 算法的使用,该算法使用分数的外积来近似 Hessian。这具有始终可逆的优点,但缺点是仅适用于明确指定的模型,接近事实且渐近(听起来您可能会担心)。
要使用此算法,您需要有似然贡献的向量,称为 grad(即 N x K,其中 N = #observations 和 K = #parameters)。那么你的标准错误是
se = sqrt(diag(grad'*grad))*N; % should be K by K
使用与 OLS 的比较或你有一个封闭形式的东西来测试它们。