单因素Logistic回归分析
转载请注明出处。
最近在做的东西涉及多个变量进行logistic回归,结果要求输出OR值,OR95%可信区间和P值,编写了相关函数。
函数名:logistic_sig
函数参数及输入含义
- var_y 结果变量名,需要加引号
- varlist 需要分析的变量名列表,以 c(“a”,“b”)这种形式
- data 数据集名
函数代码
logistic_sig <- function(var_y,varlist,data){ ##多因素logistic回归
in_formula <- as.formula(paste(var_y,"~",varlist))
p <- glm(in_formula,family=binomial(link=logit),data=data)
coeff <- summary(p)$coefficients
beta <- coeff[,1]
LCI <- coeff[,1] -coeff[,2]*1.96
UCI <- coeff[,1] +coeff[,2]*1.96
OR <- round(exp(beta),2)
OR_LCI <-round(exp(LCI),2)
OR_UCI <- round(exp(UCI),2)
p_value <- round(coeff[,4],3)
name <- var
data_var <- data.frame(OR,OR_LCI,OR_UCI,p_value)
data_var <- data_var[-1,]
return(data_var)
}
代码使用案例
var <-c("sex","age","BMI")
data_log <- logistic_sig("AE",var[1],data1)
for (i in 2:length(var)) {
data_cur <- logistic_sig("AE",var[i],data1)
data_log <- rbind(data_log,data_cur)
}
输出结果形式