【2023BI数据分析大赛】员工离职分析和预测
一、选手简介
1、选手介绍
Hi,大家好~我在帆软社区叫“猫狗双全”,目前就职一家智能终端厂商的中国区域,主要生产和销售手机、PC、平板等电子消费品,通过线上线下、自营他营等多元化的渠道,为中国区的消费者提供优质的商品、体验、服务。现阶段主要从事渠道、营销的信息化IT系统建设,帮助公司内部的销售和营销人员、外部的供应商、合作伙伴能高效地协同工作,也涉及数字化运营产品建设辅助决策
日常喜欢撸猫撸狗,家里一只9岁贵宾小狗、1只英短1只布偶猫咪,喜欢游泳、徒步,一般周末徒步一天+游泳3小时,北京丰台的小伙伴可以做下搭子😊
2、参赛初衷
因为公司有购买FineReport和FineBI,接触产品有3年多了,但相比开发同学,我亲身实践的比较少,只了解产品大概可以达到什么样的效果,希望能通过比赛提升自己的动(赚)手(钱)能力。再者也希望能跳出日常的确定性需求,提升自己界定问题、分析问题、解决问题的能力。最后希望能多向优秀的小伙伴们学习,数据分析案例库的作品都好棒👍
二、作品介绍
1、业务背景
本次采用的是github上的CASE,里面讲有家XYZ公司从事医药制造和销售行业,规模为1470名员工,主要是研发、销售、HR,据统计去年大约有16%的员工离开公司。
管理层认为,这种程度的员工流失对公司不利,一是导致项目推迟,影响公司的收入,同时也降低了在合作伙伴和客户的信任感;二是需要维持大量的人力资源处理离职、招聘新员工、培训新员工,同时新员工也存在无法胜任工作的问题。
XYZ公司人力资源主管找到咨询顾问,希望能帮助公司减少流失率,假设自己就是负责该项目,需要对离职现状、问题、解决措施进行分析和呈现,进而帮助XYZ公司减少员工离职率。
2、分析问题
本报告分析的问题主要有:XYZ公司整体的离职率是多少?哪类员工离职率相比平均水平较高?为什么此类员工的离职率高?建议XYZ公司采取什么样的举措?
3、数据来源
https://github.com/IBM/employee-attrition-aif360/blob/master/data/emp_attrition.csv
4、分析思路
现状分析:基于5W2H框架,分析高离职率员工的特征
根因分析:先定性后定量,先基于相关性分析找到影响离职的核心要素,再定量分析各要素的详细情况
提出建议:基于人货场的思路提出建议,并基于决策树预测员工离职的倾向性
5、数据处理
5.1 数据发现
字段名称
字段中文含义
字段类型/内容
Age
年龄
连续型数值
Attrition
是否离职
二分类文本,Yes/No
BusinessTravel
出差频率
有序分类文本,Travel_Frequently/Travel_Rarely/Non-Travel
Department
部门
无序分类文本,Sales/Research & Development/Human Resources
DistanceFromHome
公司离家距离
连续型数值
Education
学历
无序分类数值,1/2/3/4/5,分别代表Below College/College/Bachelor/Master/Doctor
EducationField
教育背景
无序分类文本,Life Sciences/Marketing/…
EmployeeNumber
员工ID
连续型数值,1/2/3/…
Gender
性别
二分类文本,Male/Female
JobLevel
职位级别
无序分类数值,1/2/3/4/5,分别代表助理/初级/中级/高级/主管
JobRole
岗位
无序分类问题,Healthcare Representative/Sales Executive/…
MaritalStatus
婚姻状态
无序分类文本,Single/Married/Divorced
MonthlyIncome
月收入
连续型数值
NumCompaniesWorked
工作过的公司个数
有序分类数值,1/2/3/4/…
Over18
是否满18岁
二分类文本,Y/N
OverTime
是否加班
二分类文本,Yes/No
PercentSalaryHike
最近一次加薪百分比
连续型数值
StandardHours
标准工作时长
有序分类数值,8
StockOptionLevel
股票期权等级
有序分类数值,0/1/2/3
TotalWorkingYears
总工作年数
连续型数值,0/1/2/3/4/…
TrainingTimesLastYear
去年培训次数
连续型数值,0/1/2/3/4/…
YearsAtCompany
司龄
连续型数值,0/1/2/3/4/…
YearsInCurrentRole
当前岗位工作年数
连续型数值,0/1/2/3/4/…
YearsSinceLastPromotion
自上次加薪的年数
连续型数值,0/1/2/3/4/…
YearsWithCurrManager
和当前主管共事年数
连续型数值,0/1/2/3/4/…
JobInvolvement
工作参与度
有序分类数值,1/2/3/4,分别代表Low/Medium/High/Very High
PerformanceRating
绩效评价
有序分类数值,1/2/3/4,分别代笔Low/Good/Excellent/Outstanding
JobSatisfaction
工作满意度
有序分类数值,1/2/3/4,分别代表Low/Medium/High/Very High
RelationshipSatisfaction
工作关系满意度
有序分类数值,1/2/3/4,分别代表Low/Medium/High/Very High
EnvironmentSatisfaction
工作环境满意度
有序分类数值,1/2/3/4,分别代表Low/Medium/High/Very High
WorkLifeBalance
工作生活平衡度
有序分类数值,1/2/3/4,分别代表Bad/Good/Better/Best
5.2 指标口径
指标名称
统计口径
总员工数
统计周期内,员工ID的去重个数
在职员工数
统计周期内,是否离职为“No”的员工ID去重个数
离职员工数
统计周期内,是否离职为“Yes”的员工ID去重个数
离职率
离职员工数/员工数
5.3 将字段名称修改为中文
5.4 对包含数值代号的字段进行转义:含学历、职位级别、工作满意度、工作关系满意度、工作环境满意度、工作生活平衡度、工作参与度、绩效评价
5.5 英文枚举职字段进行转义
5.6 离职相关因素分析:相关性分析最常见的是皮尔逊Pearson相关性分析和斯皮尔曼Spearman相关性分析,Pearson要求数据集是连续型变量,并且符合正态分布,而Spearman相关系数没有这个要求,本案例中存在二分类/有序分类/无序分类等非连续型变量,因此采用Spearman相关性分析。相关性分析主要通过Python完成,具体代码见附件“离职相关性分析”,然后将相关系数结果导入到FineBI进行分析和可视化
5.7 离职倾向性预测:此问题为基于有限的因变量(即通过相关性分析得到的高相关性变量)预测员工是否离职,属于二分类预测问题,基于决策树算法进行学习和预测,具体代码见附件“离职倾向性预测”。从预测准确度看,训练数据集的预测准确度为88%,测试数据集的预测准确度为83%。仍然有很大的提升空间,有待优化。
6、可视化报告
6.1 架构:从整体到部分,从部分再到具体。报告开始把背景、问题、课题、思路讲清楚,让受众对本报告的目标和结构有个认识。具体每个部分先说结论,再讲论据,再用数据具体量化论据
6.2 布局:符合日常的阅读习惯,从上到下、从左到右。元素之间关系明确,通过序号将结论和图表关联起来
6.3 风格:字体、颜色、大小统一化,整体采用优设标题黑、深蓝色底、配色方案选择适合深色背景的蓝色配色方案。同时,为了使词云(用于可视化离职人员画像)的视觉风格和整体保持一致,对于词云的背景、字体、颜色也做了调整
6.4 内容:突出主题,通过标题说明要表达什么;图表恰当,如看离职的人员结构用饼图,对比不同司龄的离职率和在职率用百分比堆积图、看离职和非离职人员的满意度分布用箱线图
7、分析结论
7.1 哪类员工离职率高
通过各维度的分析,离职员工画像为:研发和销售部门的基层岗位、入职时间短(3年以内)、级别低(助理级别)、年龄小(18-23岁)、工作经历少(3年以内)、和当前主管共事时间短(1年内)、工作满意度和环境满意度低
离职员工来源:离职237人主要集中在研发和销售部门,占总离职人数的95%;离职人员主要集中在基层岗位,其中实验室技术员、销售经理、研究员、销售代表占总离职人数的84%
各部门离职率:总体离职率16%,销售部门和人力资源部门资源的离职率显著高于平均水平,分别为21%、19%,研发部门的离职率较低为14%
各司龄区间离职率:司龄3年以内离职率最高,为30%,随着司龄逐渐变大,基本呈下降趋势
职位级别离职率:助理级别离职率最高,为26%,其次是中级级别,为15%
各出差频率的离职率:经常出差的员工离职率最高,为25%
各年龄区间离职率:18-23岁的员工离职率最高,男性18-23岁离职率为41%,女性18-23岁离职率为56%;对于男性来说,未婚者相比已婚者的离职率普遍更高
各工作年数(所有工作经历)区间离职率:总工作年数3年以内离职率最高,为44%,随工作年数逐渐变大,基本呈下降趋势
按与现任主管共事年数区间的离职率:共事在1年内离职率最高,为32%,随着年数增多,基本呈下降趋势
通过比对平均值和分布,离职员工的工作满意度和工作环境满意度相比未离职员工低,其他指标指标差异不大
7.2 为什么员工离职率高
基于和离职相关性最高的top5因素为:加班、月收入、总工作年数、司龄、职级,而月收入和总工作年数、司龄、职级的相关性非常高,因此主要围绕加班和月收入为主线展开分析
加班导致工作压力大,进而离职:五个基层岗位人群(销售代表、实验室技术员、人力资源岗位、销售经理、研究员)的加班率为24%-33%,此部分加班人群的离职率显著高于非加班人群的离职率,但加班人群和非加班人群的收入几乎无差异。以销售代表为例,加班人群的流失率为67%,非加班人群的流失率为29%,加班人群的平均月收入约为2500+,非加班人群的平均月收入约为2600+
月收入较公司平均水平差距大,虽有加薪,但仍无法挽留住基层员工:四个基层岗位人群(销售代表、研究员、实验室技术员、HR)占公司总员工的49%,但平均月收入为2626-4623,仍远低于公司平均水平的6503,此四个岗位的离职率较高。以销售代表为例,平均月收入为2626,但离职率为40%
月收入与项目投入、绩效未挂钩,无法激发积极性,向上通道窄:月收入与项目参与度、绩效评级的相关性很低,说明对项目付出多、绩效优异的员工拿到更高薪酬的可能性低。而月收入与总工作年数、司龄存在显著的关系,年轻员工的薪酬待遇普遍比老员工低。以上两个因素导致年轻员工的向上通道窄,无法激发工作积极性,进而导致离职
7.3 如何降低离职率
通过对离职人群画像和离职原因的分析,代入一位名为Alex员工,可以想象如下场景:Alex是一位21岁的未婚男性,入职XYZ公司的销售代表岗位刚满1年,在去年的重点新药销售项目中频繁去医院客户城市出差、加班加点终于在年底取得了较好的成绩,主管对Alex的年度项目参与度和绩效等级都给了不错的评价。今年Alex的月收入虽然有所提升,但仍然相比XYZ公司收入水平差很多,相比外部公司也差。Alex认为去年的项目付出没有得到应有的回报,并且他也发现和自己类似年龄和司龄的员工的收入都非常低,这让他减少了工作的积极性,同时对未来的发展充满了担忧,进而向主管提出离职。
对XYZ公司提出如下4条建议:
工作环境:直接主管加强对频繁出差、加班人群的关怀,同时识别是否可以通过线上会议减少部分非必要的出差,通过增强培训辅导、开发工具的方式提升员工的工作效率,减少加班。
绩效体系:对绩效等级评价精细化,避免只存在两类等级导致吃大锅饭,绩效评级要根据项目参与度拉开差距,同时面向员工宣传清晰绩效标准。
薪酬体系:加强绩效对职级的影响,使得高绩效导向高职级进而导向高月收入、股票水平,使得员工能看到付出带来的正向效果,提升工作的积极性。
离职预测:定期对人员离职情况进行回顾和预测,提前对高离职倾向员工进行关怀和沟通,避免员工已提出离职才被动相应。
7.4 员工离职倾向性预测
思路:此问题为基于有限的因变量(即通过相关性分析得到的高相关性变量)预测员工是否离职,属于二分类预测问题,基于决策树算法进行学习和预测
效果:基于80%测试数据(1176条)进行学习,20%的数据(294条)进行测试,测试数据的预测准确率为83%
应用方法:将员工的如下(加班情况、月收入、总工作年数、司龄、职级、当前岗位工作年数、婚姻情况、和现任主管的共事时间、股票水平、年龄)等因变量数据进行录入或集成,对离职倾向进行预测,进而辅助HR和业务主管提前介入。同时要例行分析员工离职的高相关性因素分析,避免因变量发生变化导致模型预测不准确
8、最终结果
三、心得体会
1、FineBI工具
分享下FineBI的应用的历程,希望可以对小伙伴们在本公司内推广FineBI有所借鉴:
FineBI公司本身大规模就在用,我所在的中国区加起来有500+用户,在业务进行流程化、标准化、IT化后,业务运作过程中就会产生大量的数据,以汇聚各业务系统数据的数据湖为基础、以及基于数据管理和优化业务的数据文化具备后,通过对FineBI系统和数据进行培训、认证、运营,FineBI已经成为各组织提升效率、支持决策不可缺乏的工具
推广FineBI工具可以先从最基础的Excel插件开始,这个功能是最直观最简单让用户感受到效率提升的,以前手工去各种系统导数的操作不需要了,只需要数据同步一个按钮,啪就出来了。只需要IT部门提供好数据集,告诉用户从哪里找数据集,然后拖拽到excel就好了,这样以前的各种Excel透视表的底表就可以自动化啦。同时这个方式也可以很好地将数据湖的数据和手工补录的数据集合起来。
随着FineBI应用的深入,可以培训那些希望通过数据发现问题而不仅仅是做个固定报表的同学使用网页版的FineBI,同时建立起认证和分享机制,让大家多多分享体系内好的分析思路和报表,并给予物质和精神激励树立标杆。
FineBI应用比较成熟的阶段,我认为是各层组织从主管到员工理解数据决策的重要行,并了解公司的数据能自发使用工具进行分析、决策,并能形成一些固定报表将分析的思路固化和传承下去。这样意味着数据能在组织内进行流通和应用,帮助公司各层组织平等便捷地获取信息,实现了“数据平权”。这个阶段目前看有少数的部门已经实现,其他部门还是上述第2、3点
2、参赛总结
想了比较久的数据分析落地案例,终于输出了,万层高楼平地起,想多不如做多。
不要给自己设限,平时因为岗位原因也很少写代码,水平挺弱。这次真的要落地斯皮尔曼相关性分析和决策树预测,也是学习了别人怎么写的,尤其是决策树对数据的标准化看了很久。最快学习的办法就是学习别人如何做的,不因岗位关系给自己设限这个没法做那个没法做啥的。
分析结论和离职预测还是有些虎头蛇尾,如果能进一步说明实施的节奏和更具体的措施,我认为会对业务更大的帮助。离职预测的准确率没达到自己心中95+%的准确性,还得多学习下决策树的准确率优化方法。
员工离职分析-思维导图.pdf (649.99 K)
员工离职分析和预测.pdf (7.66 M)
离职相关性分析.pdf (767.11 K)
离职倾向性预测.pdf (1.41 M)