我希望能够查看由 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 值呢?
我花了很长时间才弄明白这一点,但我注意到很多其他类似的问题没有正确答案,所以我想回答这个问题。
你用:
library(coxme)
print(model)
Run Code Online (Sandbox Code Playgroud)
我还注意到很多关于如何从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)