用ROC曲线检验模型?无需代码,用SPSS也能绘制出好看的ROC曲线哦!
用ROC曲线检验模型?无需代码,用SPSS也能绘制出好看的ROC曲线哦!
ROC简介
ROC曲线的全称是Receiver Operating Characteristic Curve(受试者工作特征)。
ROC曲线是用来检验模型的预测能力的常用方式。
ROC的常用指标是AUC,全称是area under the curve(曲线下面积)。
AUC越大,表明模型的预测能力越好。
一般而言:
- AUC=1:模型能够完美区分正负样本
- 0.85≤AUC≤0.95:预测效果优秀
- 0.7≤AUC≤0.85:预测效果良好
- 0.5≤AUC≤0.7:有一定的预测能力,但效果较低
- AUC=0.5:预测能力与随机猜测无异
- AUC<0.5:预测能力比随机猜测还差
我们常做的横断面研究,常常需要分析一些自变量对某一个因变量的关系,这时候可以用上ROC曲线。以下是一个简单的举例。
示例说明
- 数据
自变量:人口学特征如性别、年龄、婚姻、学历、体重指数等分类变量
因变量:是否患有焦虑症(二分类变量)
- 分析目的
① 自变量与因变量的关系(某一个自变量与因变量的关系)
② 多个自变量构建出的模型对焦虑症的预测能力
分析思路
可先通过单因素和多因素的logistic回归判断哪些自变量对因变量是有影响,有统计学意义的,也就是P<0.05。再将有统计学意义的变量构建出一个模型,这个模型来预测焦虑症。那么我们就可以通过绘制ROC曲线来判断模型的预测能力。
数据分析
此处省略利用SPSS进行logistic分析的过程。假设得出的结果是多因素logistic回归结果显示性别、年龄、婚姻、学历、体重指数都与焦虑症正向相关。
SPSS建立模型
分析→回归→二元logistic
将变量放入相应的变量框
在“保存”中选中“概率”,点击继续
变量列表会多出一列,就是预测概率,可以理解为预测值,这个预测值将会用来与实际值比较,绘制ROC曲线
SPSS绘制ROC曲线
分析→ROC曲线(不同SPSS版本这个功能位置不同,有的在“分类”模块里面)
将“预测概率”放入检验变量,将“焦虑症”(实际值)放入状态变量
“状态变量值”一般指的是阳性的变量值,这里的数据有焦虑症用1表示,无焦虑症用0表示。所以这里的状态变量值为1。“显示”可以勾选前三个
在SPSS的输出中,看曲线和曲线下面积值
区域下面积就是AUC值,是要得出的数据
这个AUC值还可以,模型预测能力良好
双击图像可以唤出图像编辑器对横纵坐标、颜色等进行编辑
根据需要编辑图表大小,填充与边框,变量
单击一次可以变成可输入的文本框,转成英文标题
双击轴标题可以改变字号,颜色等
怎么保存编辑好的图呢?
在“编辑”下面点击“复制图表”,可以把图表粘贴到word中保存下来
这样ROC曲线就画好咯
当需要在一张图中绘制多条ROC曲线时,就可以用R语言绘制,下期再更新。