如何抑制LME中的相关表?

时间:2013-05-13 09:11:28

标签: r output correlation mixed-models

在R:

的nlme包中的lme()函数的标准示例中
fm2 <- lme(distance ~ age + Sex, data = Orthodont, random = ~ 1)
summary(fm2)

出现了相关表:

Correlation: 
          (Intr) age   
age       -0.813       
SexFemale -0.372  0.000

如果涉及许多因子组合,这可能是巨大的。

有没有办法在摘要命令中抑制输出?我知道我可以使用

   print(fm2, cor=F) 

但这并没有显示通常输出的其余部分,例如没有p值计算。

3 个答案:

答案 0 :(得分:3)

查看nlme:::print.summary.lme我没有看到抑制关联矩阵打印的方法(尽管您可以创建该函数的黑客版本,删除ifif (nrow(x$tTable)>1)开始的子句。 。)

或许能够打印只是固定效果参数的摘要会对您有用吗?

 printCoefmat(summary(fm2)$tTable)

答案 1 :(得分:2)

或者,更简洁,summary(fm2)$tTable

答案 2 :(得分:2)

我最近在安装具有大量固定效果的模型时遇到了同样的问题,并且相关表非常庞大且输出真的很混乱。查看print.summary.lme()(未导出,因此您必须使用nlme:::print.summary.lme)显示该部分来自以下行:

if (nrow(x$tTable) > 1) {
    corr <- x$corFixed
    class(corr) <- "correlation"
    print(corr, title = " Correlation:", ...)
}
正如本已经指出的那样。我们也可以使用一个简单的技巧,用我们自己的nlme:::print.correlation方法取代print(这实际上是打印相关矩阵)而不是重写/替换整个函数。 correlation。这可以通过以下方式完成:

assignInNamespace("print.correlation", function(x, title) return(), ns="nlme")

现在省略相关矩阵,但是你得到剩余的输出。