如何从coxme包中的lmekin对象中提取p值

时间:2017-05-01 13:53:57

标签: r

我希望能够查看coxme包生成的lmekin对象的p值。

例如

model= lmekin(formula = height ~ score + sex + age + (1 | IID), data = phenotype_df, varlist = kinship_matrix)

我试过了:

summary(model)
coef(summary(model))
summary(model$coefficient$fixed)
fixef(model)/ sqrt(diag(vcov(model)) #(Calculates Z-scores but not p-values)

但这些都行不通。那么如何查看这个线性混合模型的p值呢?

2 个答案:

答案 0 :(得分:3)

我花了很多时间去寻找这个问题,但是我注意到很多其他类似的问题没有正确答案,所以我想回答这个问题。

您使用:

library(coxme)
print(model)
  • 请注意,事先加载coxme包很重要,否则它将无效。

我还注意到很多关于如何从lmekin对象中提取p值,或者如何从coxme对象中提取p值的帖子。我写了这个函数,它基于coxme:::print.coxme函数代码(直接在R中查看代码类型coxme:::print.coxme)。 print动态计算p值 - 此函数允许提取p值并将其保存到对象。

请注意,mod是您的模型,例如。 mod <- lmekin(y~x+a+b) 使用print(mod)仔细检查表是否匹配。

extract_coxme_table <- function (mod){
    beta <- mod$coefficients$fixed
    nvar <- length(beta)
    nfrail <- nrow(mod$var) - nvar
    se <- sqrt(diag(mod$var)[nfrail + 1:nvar])
    z<- round(beta/se, 2)
    p<- signif(1 - pchisq((beta/se)^2, 1), 2)
    table=data.frame(cbind(beta,se,z,p))
    return(table)
}

答案 1 :(得分:0)

之所以到达这个主题,是因为我只是为coxme对象寻找相同的东西。 IcedCoffee的功能可以进行微调:

    extract_coxme_table <- function (mod){
        beta <- mod$coefficients #$fixed is not needed
        nvar <- length(beta)
        nfrail <- nrow(mod$var) - nvar
        se <- sqrt(diag(mod$var)[nfrail + 1:nvar])
        z<- round(beta/se, 2)
        p<- signif(1 - pchisq((beta/se)^2, 1), 2)
        table=data.frame(cbind(beta,se,z,p))
        return(table)
    }