我希望能够查看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值呢?
答案 0 :(得分:3)
我花了很多时间去寻找这个问题,但是我注意到很多其他类似的问题没有正确答案,所以我想回答这个问题。
您使用:
library(coxme)
print(model)
我还注意到很多关于如何从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)
}