R语言 单因素(含多个水平的)Logistic回归函数

单因素Logistic回归分析

转载请注明出处。

最近在做的东西涉及多个变量进行logistic回归,结果要求输出OR值,OR95%可信区间和P值,编写了相关函数。
函数名:logistic_sig
函数参数及输入含义

  1. var_y 结果变量名,需要加引号
  2. varlist 需要分析的变量名列表,以 c(“a”,“b”)这种形式
  3. 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)
}

输出结果形式
在这里插入图片描述

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值