R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为1:https://developer.aliyun.com/article/1501202
R语言逻辑回归模型分析汽车购买行为
数据描述
用R语言做logistic regression,建模及分析报告,得出结论,数据有一些小问题, 现已改正重发:改成以“是否有汽车购买意愿(1买0不买)”为因变量,以其他的一些 项目为自变量,来建模分析,目的是研究哪些变量对用户的汽车购买行为的影响较为 显著。
问题描述
我们尝试并预测个人是否可以根据数据中可用的人口统计学变量使用逻辑回归预测是否有汽车购买意愿(1买0不买)。 在这个过程中,我们将:
1.导入数据
2.检查类别偏差
3.创建训练和测试样本
4.建立logit模型并预测测试数据
5.模型诊断
数据描述分析
查看部分数据
对数据进行描述统计分析:
从上面的结果中我们可以看到每个变量的最大最小值中位数和分位数等等。
检查类偏差
理想情况下,Y变量中事件和非事件的比例大致相同。所以,我们首先检查因变量是否有汽车购买意愿中的类的比例。
显然,不同购买意愿.人群比例 有偏差 。所以我们必须以大致相等的比例对观测值进行抽样,以获得更好的模型。
建模分析
创建训练和试验样本
解决类别偏差问题的一个方法是以相等的比例绘制训练数据(开发样本)的0和1。在这样做的时候,我们将把其余的inputData不包含在testData 中。
构建Logit模型和预测
全变量模型
从全变量模型的结果来看,可以发现得到的模型变量并不显著,因此需要重新建模
筛选出显著的变量:
逐步回归筛选后模型
从上面的回归结果中,我们可以看到公共汽.电.车车辆数.辆.,公交客运总量.万人次. ,私人汽车保有量.辆.,地铁长度 ,日最高温度.F.的最大值 ,摩托车数量 对是否有汽车购买意愿有重要的影响。从中同时可以看到公交客运总量.万人次. ,私人汽车保有量.辆.,地铁长度 , 日最高温度.F.的最大值和是否有汽车购买意愿存在正相关的关系。
确定模型的最优预测概率截止值
默认的截止预测概率分数为0.5或训练数据中1和0的比值。 但有时,调整概率截止值可以提高开发和验证样本的准确性。InformationValue :: optimalCutoff功能提供了找到最佳截止值以提高1,0,1和0的预测的方法,并减少错误分类错误。 可以计算最小化上述模型的错误分类错误的最优分数。
misClassError(testData$是否有汽车购买意愿.1买0不买., predicted, threshold = optCutOff)
ROC
ROC曲线指受试者工作特征曲线 / 接收器操作特性曲线(receiver operating characteristic curve), 是反映敏感性和特异性连续变量的综合指标,是用构图法揭示敏感性和特异性的相互关系,它通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性,再以敏感性为纵坐标、(1-特异性)为横坐标绘制成曲线,曲线下面积越大,诊断准确性越高。在ROC曲线上,最靠近坐标图左上方的点为敏感性和特异性均较高的临界值。
上述型号的ROC曲线面积为61%,相当不错。
一致性
简单来说,在1-0 的所有组合中,一致性是预测对的百分比 ,一致性越高,模型的质量越好。
上述的61%的一致性确实是一个很好的模型。
特异性和敏感性
敏感度(或真正正率)是模型正确预测的1(实际)的百分比,而特异性是0(实际)正确预测的百分比。特异性也可以计算为1-假阳性率。
specificity(testData$是否有汽车购买意愿.1买0不买., predicted, threshold = optCutOff)
以上数字是在不用于训练模型的验证样本上计算的。所以测试数据的真实检测率为99%是好的。