我使用rms
包绘制诺模图来表示我的模型fit
的逻辑回归。
我的数据结构是
'data.frame': 12763 obs. of 11 variables:`
`$ Outcome : int 1 1 1 1 1 1 3 1 1 1 ...`
`$ Grade : Factor w/ 3 levels "1","2","3": 2 2 2 2 3 2 2 1 2 1 ...`
`$ CF : Factor w/ 2 levels "10","20": 1 1 1 2 1 1 1 1 1 1 ...`
`$ HF : Factor w/ 4 levels "1","2","3","4": 3 1 1 2 1 1 1 1 3 1 ...`
ddist<-datadist(data)
options(datadist='ddist')
fit<-lrm(Outcome~Grade+CF+HF, x=TRUE, y=TRUE, data=data)
模型返回:
> fit
Logistic Regression Model
lrm(formula = Outcome ~ Grade + CF + HF, data = data, x = TRUE,
y = TRUE)
Model Likelihood Discrimination Rank Discrim.
Ratio Test Indexes Indexes
Obs 12763 LR chi2 3720.22 R2 0.480 C 0.878
1 11185 d.f. 6 g 1.764 Dxy 0.757
3 1578 Pr(> chi2) <0.0001 gr 5.834 gamma 0.853
max |deriv| 2e-08 gp 0.166 tau-a 0.164
Brier 0.065
Coef S.E. Wald Z Pr(>|Z|)
Intercept -0.1894 0.0528 -3.59 0.0003
Grade=2 -2.5917 0.0740 -35.02 <0.0001
Grade=3 -4.1537 0.1385 -29.98 <0.0001
CF=20 2.9472 0.0981 30.03 <0.0001
HF=2 -1.1445 0.1494 -7.66 <0.0001
HF=3 -1.0875 0.1771 -6.14 <0.0001
HF=4 -0.0019 0.1931 -0.01 0.9920
>
我打印诺模图,并为每个级别的预测器获得以下几点:
> nom<-nomogram(fit)
> print(nom)
Points per unit of linear predictor: 24.07491
Linear predictor units per point : 0.04153701
Grade Points
1 100
2 38
3 0
CF Points
10 0
20 71
HF Points
1 28
2 0
3 1
4 28
>
我的第一个问题是关于分配Grade
的点值。
如果我从我的模型fit
中的Beta系数手动绘制这个列线图,我将确定我的最高B系数-4.1537(等级= 3)和下一个最高B系数2.9472(CF = 20)。
然后将两者分开得到一个点值: 2.9472 / 4.1537 = 0.71。 71是点值等于CF 20.这与列线图上的点匹配。
要计算下一个点值,我选择第三个最高B系数,-2.5917(等级= 2)。
-2.5917 / -4.154 = 0.624。诺模图分配38到Grade = 2而不是63.我不明白这个值是多少是38,我确定我错过了什么。
我的第二个问题是总点数计算为220.如果我选择具有最高可能点的预测值 - 等级1 + CF 20+ HF 4 - (或100 + 71 + 28),我的总点数将为199当没有等于220点的值组合时,为什么总点数比例会变为220?
感谢您的帮助。我很感激你的时间。