R语言数据分析实例一:离职率分析与建模预测

Python019

R语言数据分析实例一:离职率分析与建模预测,第1张

本文分析利用IBM离职员工数据进行分析。在对离职率的影响因素进行观察的基础至上,建立模型并预测哪些员工更易离职。

一般而言,数据分析分为三个步骤:数据收集与清洗、探索性分析和建模预测。本文的数据集是IBM用于研究员工预测的 模拟数据 ,数据十分完整,无需清洗。因此,本文主要分为三个部分:

通过对IBM离职员工数据实践,本文希望发掘出影响员工流失的因素,并对利用R语言进行数据分析过程进行复习,深化对数据分析工作意义的理解。

IBM离职员工数据集共有35个变量,1470个观测个案。部分需要重点关注的变量如下:

上述变量可以分为三个部分:

载入分析包和数据集

通过描述性统计可以初步观测到:

分析结果:

基于对数据的探索性分析,员工离职有多方面因素的影响,主要有:

1.工作与生活的不平衡——加班、离家远和出差等;

2.工作投入如果不能获得相匹配的回报,员工更倾向离职;

3.优先股认购等福利是员工较为关注的回报形式;

4.年龄、任职过的公司数量的因素也会影响员工离职率;

删除需要的变量:EmployeeCount, EmployeeNumber, Over18, StandardHours

变量重新编码:JobRole, EducationFiled

分析结果表明:

随机森林所得的AUC值为0.5612,小于决策树模型。

GBM模型得到的AUC值为0.5915

对于对于随机森林和GBM的方法,AUC值小于单一决策树模型的AUC值的情况较少见,这显然说明单一的树拟合得更好或者更稳定的情况。(一般需要得到AUC值大于0.75的模型)

当结果分类变量之间的比列是1:10或者更高的时候,通常需要考虑优化模型。本例中,离职变量的比列是1:5左右,但仍然可能是合理的,因为在决策树中看到的主要问题是预测那些实际离开的人(敏感度)。

加权旨在降低少数群体中的错误,这里是离职群体。

向上采样(up-sampling)指从多数类中随机删除实例。

向下采样(down-sampling)指从少数类中复制实例。

分析结果表明:

加权调整的模型表现最好,相比较于单纯的随机森林和GBM模型,AUC值从0.5612上升至0.7803,灵敏度也达到了0.7276。据此,后续将采用加权调整后的模型进行预测。

已经训练出一个表现较好的模型。将其应用于实践时,需要注意以下几个方面:

可以观察到影响员工流失的前5个因素是:

因此,在实践中就需要注意:

本例中对工作投入高、收入低的员工进行预测。

本例分析仍有需要足够完善的地方,还可以往更多更有意义的地方探索:

t.test调用格式1:其中是一个数值型变量,x为二分变量

t.test调用格式2:其中有y1,y2为数值型变量。

例子:比较美国南方与非南方地区犯罪的监禁概率是否相同。

因此,可以拒绝南方与非南方各州犯罪具有相同监禁概率的假设。

如,年长的男性与年轻的男性失业率概率是否相同,此时,年龄与失业率是有关的,所以是非独立的。

非独立样本的t检验假定组间差异呈正态分布。

调用格式:其中y1,y2为非独立的数值向量

因此,可以拒绝不同年龄男性失业率相同的原假设。

卡方检验可以使用chisq.test()函数对二维表的行变量或者列变量进行检验。

因此,治疗与改善效果并不独立。

##############################################################

以下为在真实病例中的应用,检验两种不同的疾病与年龄,性别以及发病部位有无显著差异。

性别以及发病部位与两种病的关系用卡方独立检验:

比较年龄(单位:月)与两种病是否有相关性,用t检验