2014-09-29 41 views
1

我无法弄清楚如何从logistf()回归模型中提取标准错误“sd(coef)”信息。这些模型类logistf和数据可以提取这样的手册指出的:从logistf中提取数据R

以下通用方法可用于logistf`s输出对象:打印,汇总,COEF,vcov,confint,方差分析,extractAIC ,add1,drop1,个人资料,条款,nobs。

但是,标准错误并不存在。se(coef)的str(summary(fit))中没有对象,我没有看到源代码。

任何帮助,将不胜感激!

logistf(formula = newdata[, i] ~ newdata[, j], data = newdata, 
    firth = TRUE) 
Model fitted by Penalized ML 
Confidence intervals and p-values by Profile Likelihood 

         coef se(coef) lower 0.95 upper 0.95  Chisq p 
(Intercept) -4.110874e+00 0.8276236 -6.283919 -2.824075   Inf 0 
newdata[, j] 1.691332e-08 1.6689839 -4.993849 2.957865 3.552714e-15 1 

Likelihood ratio test=3.552714e-15 on 1 df, p=1, n=122 

回答

2

确实sd(fit)不起作用,我不确定这通常适用于其他模型类。

但是,假设logistf模型对象在fit中,协方差矩阵可通过vcov(fit)获得。然后,你可以简单地通过计算主对角线协方差矩阵的平方根得到se(coef)列:sqrt(diag(vcov(fit)))

data(sex2) 
fit<-logistf(case ~ age+oc+vic+vicl+vis+dia, data=sex2) 

> fit 
logistf(formula = case ~ age + oc + vic + vicl + vis + dia, data = sex2) 
Model fitted by Penalized ML 
Confidence intervals and p-values by Profile Likelihood 

        coef se(coef) lower 0.95 upper 0.95  Chisq   p 
(Intercept) 0.12025404 0.4855415 -0.8185574 1.07315110 0.06286298 8.020268e-01 
age   -1.10598130 0.4236601 -1.9737884 -0.30742658 7.50773092 6.143472e-03 
oc   -0.06881673 0.4437934 -0.9414360 0.78920202 0.02467044 8.751911e-01 
vic   2.26887464 0.5484160 1.2730233 3.43543174 22.93139022 1.678877e-06 
vicl  -2.11140816 0.5430824 -3.2608608 -1.11773667 19.10407252 1.237805e-05 
vis   -0.78831694 0.4173676 -1.6080879 0.01518319 3.69740975 5.449701e-02 
dia   3.09601263 1.6750089 0.7745730 8.03029352 7.89693139 4.951873e-03 

Likelihood ratio test=49.09064 on 6 df, p=7.15089e-09, n=239 

> diag(vcov(fit)) 
[1] 0.2357506 0.1794879 0.1969526 0.3007601 0.2949384 0.1741957 2.8056550 

> sqrt(diag(vcov(fit))) 
[1] 0.4855415 0.4236601 0.4437934 0.5484160 0.5430824 0.4173676 1.6750089 
+0

完美工作和很好的解释。非常感谢! – Lel 2014-09-30 02:29:40