Joffy Zhong:咨询顾问 | 写作爱好者 | 数据分析 | 互联网创业者 R语言中文社区专栏作者
知乎ID:https://www.zhihu.com/people/joffy/posts
往期回顾:

背景介绍
大家好,我是乔飞
我曾为一些中小企业做过管理咨询,其中部分模块涉及到人力资源,这也是我在工作过程中比较感兴趣去研究的领域,包括人才的成长与管理等,此次分析是基于一个有意思的数据集,去探索企业员工流失的影响因素,如果你有合适的员工数据集,可以延用此文的分析思路。
本次分析的数据集来自IBM数据科学家创建的虚构的员工流失数据(你可以在这里拿到数据:SAMPLE DATA: HR Employee Attrition and Performance)
员工流失是困扰企业的众多关键问题之一,在这次分析中,我将努力开展以下工作内容:
对一些重要的变量进行快速可视化及探索性分析,特别是与基础信息、收入、晋升、满意度、绩效和工作与生活平衡等相关的变量(西方文化讲究Work-life Balance)
分析导致员工流失的因素,并探索各个变量的影响程度
通过有效的算法构建模型,用于预测员工是否要辞职
最终目标是使用分析的过程和结果,有助于在利用真实数据集进行建模预测分析的时候减少员工流失,辅助人力资源团队进行关键的干预工作,让管理层指导哪些因素影响了“留人”,反过来促进企业做好“选人”“育人”“用人”。
结论和建议:
员工离开背后的主要原因很可能是投入与回报的失衡;加班,工作的投入带来的回报是否不匹配,检查公司是否有有效的加班政策。
在某种程度上,工作与生活的不平衡也是造成员工离开的原因,检查员工背后认为自身工作与生活不平衡的原因也许是一个有效的手段;例如加班,离家远的情况重复出现,是否有的远程工作的支持。
高薪也许不是关键的保障,在探索分析的结果显示,拥有员工优先认股权,是员工更为关注的另一个报酬形式。
年龄和任职过的公司等因素似乎与离职率高有较大的关系,这给人力资源部门的同事提供了识人方面的有效信息;当然这仅仅是虚构数据集的结果,分析请以公司真实数据,往往有公司就是有吸引年轻人的文化。
最后,如果能得到公司员工的一个新数据集,就可以根据建立好的模型计算概率并查看哪些员工确实容易离开
整个过程是一次较简单的探索分析和建模的过程,如果你感兴趣可以自行建模或者在此基础上优化,欢迎与我交流。
数据集
该数据集由1470行/数据点和35列/属性组成,部分变量描述的理解上会存在一定的文化差异。
重点关注的变量说明:
探索性数据分析
#加载需要的包
library(ggplot2)
library(grid)
library(gridExtra)
library(plyr)
library(rpart)
library(rpart.plot)
library(randomForest)
library(caret)
library(gbm)
library(survival)
library(pROC)
library(DMwR)
library(scales)
#加载数据
Attr.df <- read.csv("HR-Employee-Attrition.csv",header = TRUE)
str(Attr.df)
#查看描述统计信息
summary(Attr.df)
输出结果:
从描述统计信息看:
企业员工不流失与流失的比例约为 5:1
企业员工平均年龄约为36岁
企业员工平均收入约为6500美元,中值为4919美元,中值更能反映企业薪资水平
探索基础信息Gender,Age,Department,JobLevel,Education等变量与员工流失的关系
g1 <- ggplot(Attr.df, aes(x = Age, fill = Attrition)) +
geom_density(alpha = 0.7)
g2 <- ggplot(Attr.df, aes(x = NumCompaniesWorked, fill = Attrition)) +
geom_density(alpha = 0.7)
g3 <- ggplot(Attr.df, aes(x = YearsAtCompany, fill = Attrition)) +
geom_density(alpha = 0.7)
g4 <- ggplot(Attr.df, aes(x = TotalWorkingYears, fill = Attrition)) +
geom_density(alpha = 0.7)
grid.arrange(g1, g2, g3, g4, ncol = 2, nrow = 2)
流失员工的特征:
年龄较低的流失率较高,主要集中在小于30岁的员工
在任职超过5家公司的员工群体中,该类员工的离职率高
在公司工作时间短的员工流失率高,年数小于4年的较为集中
工龄低的员工流失率高,集中在工龄小于7年左右的员工
其可能的原因在于年轻的员工更倾向于多尝试,且对未来目标相对迷茫,高流失率也意味着此类员工难以在短期形成对企业价值观的长期认同;当然此处无法有定论知道IBM真实的原因,因为年轻员工也需要大平台的机会,不能排除上司文化或者不公平对待等因素,毋庸置疑需要再深入分析,人力资源将重点关注于年轻的员工将会有好的发现。
g5 <- ggplot(Attr.df, aes(x= Gender,fill = Attrition)) +
geom_bar(position = "fill") +
labs(y="Percentage") + scale_y_continuous(labels=percent)