Hessian Matrix最大可能性-Gauss vs.R



我正在努力解决以下问题。简而言之:两个不同的软件包(Aptech和r的高斯(以最大的外径过程产生了完全不同的Hessian矩阵。我使用的是相同的过程(BFGS(,完全相同的数据,相同的最大似然公式(这是一个非常简单的logit模型(,具有完全相同的起始值,并且令人困惑,我得到了参数和log-的相同结果。可能性。只有Hessian矩阵都是不同的程序,因此,标准错误和统计推断的估计不同。

在这个特定示例中,它看起来并没有太大偏差,但是该模型的每一个增加并发症都会增加差异,因此,如果我尝试估计我的最终模型,则两个程序都会完全取得结果。

有人知道,两个程序如何计算黑森州的方式以及选择相同结果的正确方法?

编辑:在r(高斯(代码中,向量 x ( alt (是独立变量,由两个颜色组成第一列的向量完全是一个,第二列是受试者的响应。向量 y ( itn (是因变量,由一个带有受试者响应的一列组成。该示例(R代码和数据集(已从http://www.polsci.ucsb.edu/faculty/glasgow/ps206/ps206.html中获取,就像重现和隔离问题的示例。

我已经附加了两个代码(高斯和R语法(和输出。

任何帮助将不胜感激。谢谢:(

高斯:

start={ 0.95568840 , -0.20459156 };
library maxlik,pgraph;
maxset;
_max_Algorithm = 2;
_max_Diagnostic = 1;
{betaa,f,g,cov,ret} = maxlik(XMAT,0,&ll,start);
call maxprt(betaa,f,g,cov,ret);
print _max_FinalHess;
proc ll(b,XMAT);
local exb, probo, logexb, yn, logexbn, yt, ynt, logl;
    exb = EXP(alt*b);
    //print exb;
    probo = exb./(1+exb);
    logexb = ln(probo);
    yn = 1 - itn;
    logexbn = ln(1 - probo);
    yt = itn';
    ynt = yn';
    logl = (yt*logexb + ynt*logexbn);
    print(logl);
retp(logl);
endp;

r:

startv <- c(0.95568840,-0.20459156)
logit.lf <- function(beta) {
    exb <- exp(X%*%beta) 
    prob1 <- exb/(1+exb) 
    logexb <- log(prob1)
    y0 <- 1 - y
    logexb0 <- log(1 - prob1)
    yt <- t(y)
    y0t <- t(y0)
    logl <- -(yt%*%logexb + y0t%*%logexb0)
    return(logl)
}
logitmodel <- optim(startv, logit.lf, method="BFGS", control=list(trace=TRUE, REPORT=1), hessian=TRUE)
logitmodel$hessian

高斯输出:

return code =    0
normal convergence
Mean log-likelihood       -0.591820
Number of cases     1924
Covariance matrix of the parameters computed by the following method:
Inverse of computed Hessian
Parameters    Estimates     Std. err.  Est./s.e.  Prob.    Gradient
------------------------------------------------------------------
P01              2.1038        0.2857    7.363   0.0000      0.0000
P02             -0.9984        0.2365   -4.221   0.0000      0.0000

高斯黑森州:

0.20133256       0.23932571 
0.23932571       0.29377761 

r输出:

initial  value 1153.210839 
iter   2 value 1148.015749
iter   3 value 1141.420328
iter   4 value 1138.668174
iter   5 value 1138.662148
iter   5 value 1138.662137
iter   5 value 1138.662137
final  value 1138.662137 
converged
          Coeff.  Std. Err.          z       p value
[1,]  2.10379869 0.28570765  7.3634665 1.7919000e-13
[2,] -0.99837955 0.23651060 -4.2212889 2.4290942e-05

r Hessian:

          [,1]      [,2]
[1,] 387.34106 460.45379
[2,] 460.45379 565.24412

它们的缩放方式不同。高斯的数字大约是R号的1924倍。

我认为高斯将数字保持在较小的数字稳定性范围内。

相关内容

  • 没有找到相关文章

最新更新