校准曲线图表示的是预测值和实际值的差距,作为预测模型的重要部分,目前很多函数能绘制校准曲线。

一般分为两种,一种是通过Hosmer-Lemeshow检验,把P值分为10等分,求出每等分的预测值和实际值的差距

R语言中预测模型的AUC曲线图的解读 r语言calibration曲线_数据


R语言中预测模型的AUC曲线图的解读 r语言calibration曲线_R语言中预测模型的AUC曲线图的解读_02


既往我们已经介绍了使用R语言手动绘制logistic回归预测模型校准曲线(Calibration curve),今天我们来演示stata手动绘制logistic回归预测模型校准曲线(Calibration curve)校准曲线,手动绘制的好处在于加深你对绘图的理解,而且能个性化的进一步处理图形。第一种绘图本质就是我们的折线图,既往我们已经介绍了怎么使用stata绘制折线图,只要求出相关数据就可以了。

我们先导入数据,继续使用我们的早产数据

R语言中预测模型的AUC曲线图的解读 r语言calibration曲线_回归_03


这是一个关于早产低体重儿的数据(公众号回复:早产数据,可以获得该数据),低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产低体重儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数,bwt 新生儿体重数值。

我们先把字符转成数字变量

g race1 =1
replace race1 =2 if race =="black"
replace race1 =3 if race =="other"
g smoke1 =1
replace smoke1 =0 if smoke =="nonsmoker"

转换好以后就可以建立模型了,怎么建立logistic回归模型,请看我既往的stata文章,这里就直接上代码了

logistic low age i.race1 i.smoke1 lwt ptl i.ht i.ui ftv

R语言中预测模型的AUC曲线图的解读 r语言calibration曲线_回归_04


生成预测概率

predict pr,pr

R语言中预测模型的AUC曲线图的解读 r语言calibration曲线_r语言_05


先对pr进行排序

sort pr

排序后把pr分成10个等分组

egen group=cut( pr ), group(10)

R语言中预测模型的AUC曲线图的解读 r语言calibration曲线_数据挖掘_06


算出每个等分组的pr平均值

egen meanpr=mean( pr ),by(group)

R语言中预测模型的AUC曲线图的解读 r语言calibration曲线_r语言_07


继续算出每个等分组的low值

egen meany=mean( low ),by(group)

然后绘图就可以了

scatter meanpr meany

R语言中预测模型的AUC曲线图的解读 r语言calibration曲线_数据挖掘_08


还可以做进一步修改,下回继续聊。