如何从R中的glm模型中检索相关矩阵

wen

我正在使用nlme软件包中的gls函数。您可以复制并粘贴以下代码以重现我的分析。

library(nlme)  # Needed for gls function

# Read in wide format
tlc = read.table("http://www.hsph.harvard.edu/fitzmaur/ala2e/tlc.dat",header=FALSE)
names(tlc) = c("id","trt","y0","y1","y4","y6")
tlc$trt = factor(tlc$trt, levels=c("P","A"), labels=c("Placebo","Succimer"))

# Convert to long format
tlc.long = reshape(tlc, idvar="id", varying=c("y0","y1","y4","y6"), v.names="y", timevar="time", direction="long")

# Create week numerical variable
tlc.long$week = tlc.long$time-1
tlc.long$week[tlc.long$week==2] = 4
tlc.long$week[tlc.long$week==3] = 6

tlc.long$week.f = factor(tlc.long$week, levels=c(0,1,4,6))

真正的分析从这里开始:

# Including group main effect assuming unstructured covariance:
mod1 = gls(y ~ trt*week.f, corr=corSymm(, form= ~ time | id), 
       weights = varIdent(form = ~1 | time), method = "REML", data=tlc.long)
summary(mod1)

在summary(mod1)中,以下结果部分对我来说很重要,我很乐意检索它们。

Correlation Structure: General
 Formula: ~time | id 
 Parameter estimate(s):
 Correlation: 
  1     2     3    
2 0.571            
3 0.570 0.775      
4 0.577 0.582 0.581
Variance function:
 Structure: Different standard deviations per stratum
 Formula: ~1 | time 
 Parameter estimates:
       1        2        3        4 
1.000000 1.325880 1.370442 1.524813 

我能得到的最接近的方法是使用以下方法。

temp = mod1$modelStruct$varStruct
Variance function structure of class varIdent representing
       1        2        3        4 
1.000000 1.325880 1.370442 1.524813 

但是,无论您存储的是什么临时文件,我都无法获得这五个数字。我尝试了as.numeric(temp)和unclass(temp),但是它们都不起作用。我无法将五个数字作为一个干净的数值向量。

提前致谢!

莱迪(Randy Lai)

mod1$modelStruct$varStruct在R控制台中运行时,R首先检查它的类

> class(mod1$modelStruct$varStruct)
[1] "varIdent" "varFunc" 

然后调度相应的print功能。在这种情况下,它是nlme:::print.varFunc即,实际运行的命令是nlme:::print.varFunc(mod1$modelStruct$varStruct)

如果运行nlme:::print.varFunc,则可以看到它的功能主体

function (x, ...) 
{
    if (length(aux <- coef(x, uncons = FALSE, allCoef = TRUE)) > 
        0) {
        cat("Variance function structure of class", class(x)[1], 
            "representing\n")
        print(aux, ...)
    }
    else {
        cat("Variance function structure of class", class(x)[1], 
            "with no parameters, or uninitialized\n")
    }
    invisible(x)
}
<bytecode: 0x7ff4bf688df0>
<environment: namespace:nlme>

它所做的是评估coef并打印它,而未评估的结果将x不可见地返回。

因此,为了获得cor / var,您需要

coef(mod1$modelStruct$corStruct, uncons = FALSE, allCoef = TRUE)
coef(mod1$modelStruct$varStruct, uncons = FALSE, allCoef = TRUE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何找到R中相关矩阵的p值?

来自分类Dev

如何使用相关矩阵作为R中princomp()的输入

来自分类Dev

在R中创建相关矩阵

来自分类Dev

熊猫:如何从相关矩阵中删除自相关

来自分类Dev

如何在R中的相关矩阵列表上进行矩阵计算

来自分类Dev

如何在R中读取相关矩阵并形成散点图矩阵

来自分类Dev

如何在R中读取相关矩阵并形成散点图矩阵

来自分类Dev

从R中的相关矩阵返回值

来自分类Dev

在R中的相关矩阵上应用阈值

来自分类Dev

用时间序列估计R中的相关矩阵?

来自分类Dev

将相关矩阵转换为 R 中的数据帧

来自分类Dev

去除相关矩阵中的NA

来自分类Dev

去除相关矩阵中的NA

来自分类Dev

R中的相关矩阵相关显示为“?” 在网格中

来自分类Dev

如何从R和SAS中的两对列获取相关矩阵?对角线为零

来自分类Dev

在R中,如何使用ggplot倾斜显示在相关矩阵的某些图块上的标签的一部分

来自分类Dev

在R中具有意义的多色相关矩阵

来自分类Dev

建立一个函数来计算R中的相关矩阵

来自分类Dev

给定权重、波动率和相关矩阵,计算 R 中的投资组合方差

来自分类Dev

从相关矩阵值中查找行/列名称

来自分类Dev

在Matlab中互相关矩阵的每对列

来自分类Dev

文本文件中的相关矩阵

来自分类Dev

在python中可视化巨大的相关矩阵

来自分类Dev

R与鱼类丰度的相关矩阵

来自分类Dev

如何计算MxN相关矩阵

来自分类Dev

分组相关矩阵

来自分类Dev

分组相关矩阵

来自分类Dev

R GGally :: ggpairs,相关矩阵图,如何自定义诊断

来自分类Dev

R-如何基于相关矩阵而不是原始数据进行回归?