3

我正在使用一个调用包lmer函数lme4数千次的脚本(不用担心,稍后会执行多重比较的相关更正),并且希望在单个调用期间尽可能多地节省时间。

我想从拟合模型中提取 t 值,最快(计算时间)的方法是什么?我尝试使用summary(model),但它似乎比调用lmer自身花费(更多)更长的时间。是否可以在不使用的情况下从获得的模型中获取 t 值summary()

4

1 回答 1

5

回答这个问题的最好方法是查看代码lme4:::summary.merMod以找出如何获得所需的部分。这应该这样做:

library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
t.stat <- function(x) fixef(x)/sqrt(diag(vcov(x)))
t.stat(fm1)
##    (Intercept)        Days 
##     36.838311    6.771485 
coef(summary(fm1))[,"t value"]  ## identical

根据您的数千次调用中的共同特征,lmer可能还有其他提高计算效率的机会:参见例如?refit?modular

(查看 的代码lme4:::summary.merMod并没有发现任何明显耗时的内容:我会对分析结果感兴趣,这些结果说明这些计算中什么是缓慢的。)

于 2014-05-11T23:37:00.993 回答