lrm(formula = dead ~ birth + lowph + pltct + bwt + vent + black +
data = tmp, x = T, y = T)
white,
Pr(>|Z|)
Coef S.E. Wald Z 38.3815 11.0303 3.48 0.0005
Intercept -0.1201 0.0914 -1.31 0.1890
birth -4.1451 1.1881 -3.49 0.0005
lowph -0.0017 0.0019 -0.91 0.3644
pltct -0.0031 0.0006 -5.14 <0.0001
bwt =1 2.7526 0.7436 3.70 0.0002
vent1.1974 0.8448 1.42 0.1564
black 0.8597 0.8655 0.99 0.3206
white
## 新的
lrm(formula = dead == 1 ~ birth + lowph + pltct + bwt + vent + race, data = tmp)
Pr(>|Z|)
Coef S.E. Wald Z 39.5788 11.0070 3.60 0.0003
Intercept -0.1201 0.0914 -1.31 0.1890
birth -4.1451 1.1881 -3.49 0.0005
lowph -0.0017 0.0019 -0.91 0.3644
pltct -0.0031 0.0006 -5.14 <0.0001
bwt =1 2.7526 0.7436 3.70 0.0002
vent=other -1.1974 0.8448 -1.42 0.1564
race=white -0.3377 0.2953 -1.14 0.2529 race
9 列线图的本质
9.1 列线图与模型的关系
前面我们展示了绘制逻辑回归和cox回归列线图的多种方法,不知道大家有没有考虑过,其他模型可以绘制列线图吗?例如lasso回归、随机森林等(不行哈,理论可行,实际不行)。这就涉及到列线图到底是怎么绘制出来的。
对于一个含有多个自变量和1个因变量的逻辑回归来说,回归方程可以写成类似 y=a + b1x1 + b2x2 + b3x3 这种形式,其中b是回归系数。列线图就是把回归方程用图形的方式展现出来,线段的长短(分数)根据回归系数计算。
9.2 列线图分数的计算方法
以下面这个列线图为例:
上面这个列线图是一个逻辑回归的,它的逻辑回归的结果是这样的:
在最下面列出了每个自变量的回归系数,我们首先把回归系数绝对值最大的设置为100分,在这个例子中是lowph
,它的回归系数绝对值是4.1451,也就是对应的是100分,然后其他自变量都是根据lowph
进行转换,即可算出其他自变量对应的得分!
然后根据这个表达式得到的列线图的结果是这样的:
nom1: 21.93145
Points per unit of linear predictor: 0.04559661
Linear predictor units per point
birth Points81.5 16
82.0 14
82.5 13
83.0 12
83.5 11
84.0 9
84.5 8
85.0 7
85.5 5
86.0 4
86.5 3
87.0 1
87.5 0
lowph Points6.5 100
6.6 91
6.7 82
6.8 73
6.9 64
7.0 55
7.1 45
7.2 36
7.3 27
7.4 18
7.5 9
7.6 0
pltct Points0 22
50 20
100 18
150 17
200 15
250 13
300 11
350 9
400 7
450 6
500 4
550 2
600 0
bwt Points400 76
500 69
600 62
700 55
800 48
900 41
1000 34
1100 27
1200 21
1300 14
1400 7
1500 0
vent Points0 0
1 60
race Points26
black 0
other 19
white
Total Points Dead53 0.001
104 0.010
157 0.100
181 0.250
205 0.500
229 0.750
253 0.900
上面的 Linear predictor units per point: 0.04559661 意思是每一个小刻度代表的分数是0.04559661分,这实际上是最大回归系数的1/100(这里应该是4.1451/100=0.041451,实际上会有偏差!)。
9.2.1 分类变量分数的计算
以vent
为例,vent=1的时候,它的回归系数是2.7526,那么它对应的分数应该是 2.7526/0.04559661 * 100 ≈ 60,上面得到的结果是60分,一样的!black
应该是 1.1974/0.04559661 * 100 ≈ 26,也和我们算的差不多!
这就是分类变量分数的计算。
9.2.2 连续性变量分数的计算
连续性自变量需要考虑取值范围,它的解释应该是每增加一个单位,因变量变化多少,对于pltct
来说,系数是-0.0017,就是每增加1各单位,因变量减少0.0017。
pltct
是600,对应的分数是0分,那么如果是100,对应的分数就是 (600-100)* (0.0017/0.04559661) ≈ 18。
这就是连续性变量分数的计算。
了解了列线图的分数计算方法,即使没有R语言,你也可以通过手动计算算出来,这样你可以自己画图!(理论上可行,但实际上很难,至少我还没见到过…)