如何解决如何重复单变量回归并提取 P 值?
我正在使用 lapply
对一个因变量一次一个自变量执行多个 glm
回归。但我不确定如何一次提取 P 值。
我的数据集中有 200 个特征,但下面的代码只给了我特征#1 的 P 值。如何获得 200 个特征的所有 P 值的矩阵?
valName<- as.data.frame(colnames(repeatData))
featureName<-valName[3,]
lapply(featureName,function(var) {
formula <- as.formula(paste("outcome ~",var))
fit.logist <- glm(formula,data = repeatData,family = binomial)
summary(fit.logist)
Pvalue<-coef(summary(fit.logist))[,'Pr(>|z|)']
})
解决方法
我
我稍微简化了你的代码; (1) used reformulate()
(不是真的不同,只是更漂亮) (2) 只返回焦点变量的 p 值(不是截距 p 值)。 (如果您省略 2,您将得到一个具有截距和焦点变量 p 值的 2 行矩阵。)
我的示例使用内置 mtcars
数据集,并添加了(假)二项式响应。
repeatData <- data.frame(outcome=rbinom(nrow(mtcars),size=1,prob=0.5),mtcars)
ff <- function(var) {
formula <- reformulate(var,response="outcome")
fit.logist <- glm(formula,data = repeatData,family = binomial)
coef(summary(fit.logist))[2,'Pr(>|z|)']
}
## skip first column (response variable).
sapply(names(repeatData)[-1],ff)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。