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

Ice*_*fee 2 r

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

例如。

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

我试过:

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

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

Ice*_*fee 5

我花了很长时间才弄明白这一点,但我注意到很多其他类似的问题没有正确答案,所以我想回答这个问题。

你用:

library(coxme)
print(model)
Run Code Online (Sandbox Code Playgroud)
  • 请注意,预先加载 coxme 包很重要,否则它将无法工作。

我还注意到很多关于如何从lmekin对象中提取 p 值,或者一般如何从 coxme 对象中提取 p 值的帖子。我写了这个函数,它是基于coxme:::print.coxme函数代码的(查看代码类型coxme:::print.coxme直接进入R)。 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)
}
Run Code Online (Sandbox Code Playgroud)