R语言和医学统计学(8):logistic回归

本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文。

医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。

文章目录

前言

这是R语言和医学统计学的第8篇内容。

主要是用R语言复现课本中的例子。我使用的课本是孙振球主编的《医学统计学》第4版,封面如下:

在这里插入图片描述

logistic回归

使用课本例16-2的数据,直接读取:

df16_2 <- foreign::read.spss("E:/各科资料/医学统计学/研究生课程/12 Logistic Regression18-9/12 Logistic Regression18-9/例16-02冠心病.sav", 
                             to.data.frame = T,
                             reencode  = "utf-8")
## re-encoding from utf-8

str(df16_2)
## 'data.frame':	54 obs. of  10 variables:
##  $ 序号: num  1 2 3 4 5 6 7 8 9 10 ...
##  $ x1  : Factor w/ 4 levels "<45","45~","55~",..: 3 2 2 2 3 3 2 3 2 1 ...
##  $ x2  : Factor w/ 2 levels "无","有": 2 1 2 1 1 1 1 1 1 1 ...
##  $ x3  : Factor w/ 2 levels "无","有": 1 2 1 1 1 2 2 2 1 1 ...
##  $ x4  : Factor w/ 2 levels "不吸","吸": 2 2 2 2 2 2 1 2 1 2 ...
##  $ x5  : Factor w/ 2 levels "无","有": 1 1 1 1 1 1 1 2 1 1 ...
##  $ x6  : Factor w/ 2 levels "低","高": 1 1 1 1 2 1 1 1 1 1 ...
##  $ x7  : Factor w/ 3 levels "<24","24~","26~": 1 1 1 1 1 2 1 1 1 1 ...
##  $ x8  : Factor w/ 2 levels "否","是": 2 1 1 1 2 2 1 1 2 1 ...
##  $ y   : Factor w/ 2 levels "对照","病例": 1 1 1 1 1 1 1 1 1 1 ...
##  - attr(*, "variable.labels")= Named chr [1:10] "" "年龄(岁)" "高血压史" "高血压家族史" ...
##   ..- attr(*, "names")= chr [1:10] "序号" "x1" "x2" "x3" ...
##  - attr(*, "codepage")= int 65001

数据一共10列,第1列是编号,第2-9列是自变量,第10列是因变量。

image-20220124205233335

数据结构见上图,只截取了一部分。

进行logistic回归(逐步回归):

f <- glm(y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8, data = df16_2, family = binomial())

f1 <- step(f, direction = "forward")
## Start:  AIC=64.03
## y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8

summary(f1)
## 
## Call:
## glm(formula = y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8, family = binomial(), 
##     data = df16_2)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.1727  -0.4719  -0.1409   0.5315   2.5914  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -5.46026    2.07370  -2.633  0.00846 **
## x145~        0.85285    1.54399   0.552  0.58070   
## x155~        0.47754    1.59320   0.300  0.76438   
## x165~        3.44227    2.10985   1.632  0.10278   
## x2有         1.14905    0.93176   1.233  0.21750   
## x3有         1.66039    1.16857   1.421  0.15535   
## x4吸         0.85994    1.32437   0.649  0.51613   
## x5有         0.73600    0.97088   0.758  0.44840   
## x6高         3.92067    1.57004   2.497  0.01252 * 
## x724~       -0.03467    1.13363  -0.031  0.97560   
## x726~       -0.38230    1.61710  -0.236  0.81311   
## x8是         2.46322    1.10484   2.229  0.02578 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 74.786  on 53  degrees of freedom
## Residual deviance: 40.028  on 42  degrees of freedom
## AIC: 64.028
## 
## Number of Fisher Scoring iterations: 6

因为实际采用的方法略有不同,结果和课本也不完全一样,不过并不影响结果。

本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文。

医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值