R海拾遗——批量回归

2022-03-04 13:49:39 浏览数 (2)

概述

检索批量代码,用于初步探索,批量操作,逻辑回归是一个非常经典的算法,但是R给出的回归并不是一个需要的模式,通常情况下,我们只是需要它的OR值和95%可信区间,因此有必要将这部分纳入到函数中,进行批量操作,凑够字数。

例子

代码语言:javascript复制
glm_re <- function(gs, data) {
    re<-glm(as.formula(gs),data=data,family=binomial())
    or <- exp(coef(re))[2]
    zhixin<- exp(confint(re))
    or_low <- zhixin[2,1]
    or_high <- zhixin[2,2]
    result <- data.frame(or,or_low,or_high)
    return(result)
}

data为纳入的数据集 gs:为需要检索的公式,建议通过循环来进行书写,如下,忘记了,那个被我取代了,哈哈哈,循环的找不到了。

代码语言:javascript复制
# 其中sufi为公式的后半部分
make_gs <- function(sufi) {
    gs_ <- c(
        paste0("y1",sufi),
        paste0("y2",sufi),
        paste0("y3",sufi),
        paste0("y4",sufi),
        paste0("y5",sufi),
        paste0("y6",sufi)
    )
return(gs_)
}

合并多个回归结果

代码语言:javascript复制
log_re <- function(gs_,data) {
    r1 <- glm_re(gs_[1], data)
    r2 <- glm_re(gs_[2], data)
    r3 <- glm_re(gs_[3], data)
    r4 <- glm_re(gs_[4], data)
    r5 <- glm_re(gs_[5], data)
    r6 <- glm_re(gs_[6], data)
    result3 <- rbind(r1,r2,r3,r4,r5,r6)
return(result3)
}

summary

主要还是回归返回OR值和置信区间,后面的由于循环写公式的内容丢失,所以看起来还是不太方便。

love&peace

0 人点赞