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

Python013

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个因素是:

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

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

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

一般与统计学相关的建模,R语言就肯定有人用。例如时间序列arima,多元时间序列VAR, VEC,ETS, ESM等等。因为R是统计学家设计的开源代码。

另外机器学习的模型也有,例如SVM,随机森林,神经网络,R都可以做一些。

当然,简单的线性规划,R也可以做。

大家都知道,不管是什么学科,在学习的时候都会有一种学习方法和规律的,掌握好这个规律和方法,并且循序渐进的学习,就能够渐渐精通这个学科。而现在数据分析行业十分火热,大家都争相了解数据分析,有的朋友从网上了解到数据分析需要学习很多的东西,但是不知道怎么制定学习规划,同时不知道数据分析学习侧重什么,一般来说,数据分析需要学习统计学和sql,同时还需要学习一些计算机语言、数据可视化以及数据挖掘,只有搞好了数据分析中的侧重点才能够节省更多时间学习数据分析,下面就由小编为大家解答一下数据分析需要学的东西侧重点是什么。希望能够给大家带来参考价值。

首先说的是统计学个sql,这两个属于数据分析师的必备技能。任何一个数据分析师必须要掌握这两个技能,而统计学是往业务方面发展的,sql是往技术方面发展的,这两个技能可以根据自己想要发展的方向进行重点学习,当然,这些技能都是要学扎实的。不过sql是一定要会的,不管是运营、产品经理、互联网行业一定要学会sql,就目前而言,任何一个知名的互联网公司的产品经理都会sql。

然后说计算机语言,数据分析使用的语言只有两种,就是Python和R语言,并非是C语言或者Java语言。Python的基本语法一定要掌握好,学会使用Python爬虫获得数据,这样能够做好数据挖掘。而r语言就是为了统计而产生的语言,通过掌握r语言的基础语法和数据建模来对数据进行统计,从而方便数据分析的进一步分析工作。

接着说数据可视化,在前面我们提到了Python和r语言,掌握了其中的基础,我们还需要学习数据可视化这个技能,数据可视化就是将数据分析结果用很简单的方式呈现出来,数据可视化的目的就是能够让客户或者普通人能够看懂这数据的分析结果。而数据可视化这个不是比较重要,所以大家在学习的时候抓住要点进行学习即可。

最后要说的就是数据挖掘,所谓数据挖掘就是去寻找数据、挖掘数据,从大量的数据中学会寻找出自己需要的数据,这样才能够为数据分析做好前提准备。所以我们在学习数据挖掘的时候一定要注重基本功,这样才能成为一个出色的数据挖掘师。

以上的所有内容就是对于数据分析学习侧重点。大家在学习数据分析技能的时候需要规划好自己的时间,这样才能够学好数据分析,同时大家在学习数据分析的时候一定要根据自己的未来期望职业方向学习,这样才能节省自己的时间。