使用texreg获取lme4对象的标准错误

时间:2014-07-18 19:27:49

标签: r lme4 texreg

我一直在使用梦幻般的包texreg从lme4模型生成高质量的HTML表。不幸的是,默认情况下,texreg在lme4的模型系数下创建置信区间而不是标准误差(参见JSS paper的第17页)。

举个例子:

library(lme4)
library(texreg)
screenreg(lmer(Reaction ~ Days + (Days|Subject), sleepstudy))

产生

Computing profile confidence intervals ...
Computing confidence intervals at a confidence level of 0.95. Use argument "method = 'boot'" for bootstrapped CIs.

===============================================
                               Model 1         
-----------------------------------------------
(Intercept)                     251.41 *       
                               [237.68; 265.13]
Days                             10.47 *       
                               [  7.36;  13.58]
-----------------------------------------------
AIC                            1755.63         
BIC                            1774.79         
Log Likelihood                 -871.81         
Deviance                       1743.63         
Num. obs.                       180            
Num. groups: Subject             18            
Variance: Subject.(Intercept)   612.09         
Variance: Subject.Days           35.07         
Variance: Residual              654.94         
===============================================
* 0 outside the confidence interval

我更愿意看到这样的事情:

Computing profile confidence intervals ...
Computing confidence intervals at a confidence level of 0.95. Use argument "method = 'boot'" for bootstrapped CIs.

===============================================
                               Model 1         
-----------------------------------------------
(Intercept)                     251.41 *       
                                (24.74)
Days                             10.47 *       
                                 (5.92)
-----------------------------------------------
[output truncated for clarity]

有没有办法克服这种行为?据我所知,使用ci.force = FALSE选项并不起作用。

我坚持使用texreg,而不是像{stargazer一样one of the other packages,因为texreg允许我将系数分组为有意义的组。

提前感谢您的帮助!

(更新:编辑以包含示例)

2 个答案:

答案 0 :(得分:2)

使用naive=TRUE接近你想要的......

library(lme4); library(texreg)
fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
screenreg(fm1,naive=TRUE)

## ==========================================
##                                Model 1    
## ------------------------------------------
## (Intercept)                     251.41 ***
##                                  (6.82)   
## Days                             10.47 ***
##                                  (1.55)   
## ------------------------------------------
## [etc.]

我不知道你从哪里获得了24.94,5.92的价值?

sqrt(diag(vcov(fm1)))
## [1] 6.824556 1.545789

cc <- confint(fm1,which="beta_")
apply(cc,1,diff)/3.84
## (Intercept)        Days 
##    7.14813     1.61908

基于缩放轮廓置信区间的隐含标准误差略宽,但差别不大。

我不知道怎么做很容易就是根据轮廓置信区间获得显着性测试/星星,同时仍然在表格中得到标准误差。根据{{​​1}}中的ci.test条目,

  • 打印CI时,如果置信区间不包含零,?texreg会打印星。
  • 当打印SE时,它会根据p值的大小打印标准数量的星星

答案 1 :(得分:1)

您也可以尝试将'include.ci'参数设置为FALSE

model <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
texreg(model, include.ci = FALSE)