一、背景说明
本文分析利用IBM离职员工数据进行分析。在对离职率的影响因素进行观察的基础至上,建立模型并预测哪些员工更易离职。
一般而言,数据分析分为三个步骤:数据收集与清洗、探索性分析和建模预测。本文的数据集是IBM用于研究员工预测的模拟数据,数据十分完整,无需清洗。因此,本文主要分为三个部分:
对于一些重要的变量进行探索性分析;
分析导致员工离职的因素,并挖掘相关因素的影响程度;
通过算法构建模型,预测哪些员工有可能离职。
通过对IBM离职员工数据实践,本文希望发掘出影响员工流失的因素,并对利用R语言进行数据分析过程进行复习,深化对数据分析工作意义的理解。
二、数据集说明
IBM离职员工数据集共有35个变量,1470个观测个案。部分需要重点关注的变量如下:
重点变量信息
上述变量可以分为三个部分:
基本的身份信息变量:性别、年龄、学历、任职过的企业数量、婚姻状况;
员工公司身份变量:工龄、在公司工作的时间、职位、职级、
薪酬与福利变量:月薪、工作投入、绩效评分、认购优先股的级别、涨薪比列、上年度培训次数、距离上次升职的时间间隔
生活质量相关变量:工作环境满意度、工作满意度、关系满意度、工作与生活平衡情况、上班距离、是否加班、出差情况
三、探索性数据分析
载入分析包和数据集
library(tidyverse)
library(rpart)
library(rpart.plot)
library(randomForest)
library(gbm)
library(ggplot2)
library(ggthemes)
#提供describe函数
library(Hmisc)
#提供grid.arrange()函数,用于排列图片
library(gridExtra)
#提供roc函数
library(pROC)
Attr_data
(一)描述性统计信息
str(Attr_data)
describe(Attr_data)
描述性统计信息一
描述性统计信息二
描述性统计信息三
通过描述性统计可以初步观测到:
员工员工平均年龄约36岁,最大的60岁,最小的18岁;
全部1470名员工中,离职的237人,离职率16%;
员工平均收入6500,中位收入4919,最小1009,最大19999;
(二)可视化探索
1.基本身份信息
p_Gender
geom_bar(aes(fill = Attrition), position = "fill") +
theme_solarized_2() +
labs(title = "性别 VS 离职", x = "性别", y = "比例")
p_Age
geom_density(aes(fill = Attrition), alpha = 0.7) +
theme_solarized_2() +
labs(title = "年龄 VS 离职", x = "年龄", y = "") +
scale_x_continuous(breaks = seq(18, 60, 5))
p_Education
geom_bar(aes(fill = Attrition), position = "fill") +
theme_solarized_2() +
labs(title = "教育程度 VS 离职", x = "教育程度", y = "比例")
p_MaritalStatus
geom_bar(aes(fill = Attrition), position = "fill") +
theme_solarized_2() +
labs(title = "婚姻状况 VS 离职", x = "婚姻状况", y = "比例")
p_NumCompaniesWorked
geom_density(aes(fill = Attrition), alpha = 0.7) +
theme_solarized_2() +
labs(title = "工作过的企业数量 VS 离职", x = "工作过的企业数量", y = "")+
scale_x_continuous(breaks = seq(0, 9, 1))
性别与离职率
年龄与离职率
受教育程度与离职率
婚姻状况与离职率
工作企业数与离职率
分析结果:
离职率与性别关系不大;
33岁以下的人更易离职;
受教育程度越高,离职率越低,但是区别并不是特别明显;
相比较而言,未婚单身人群更易离职:
任职企业数超过5家的人更易离职:
2.员工公司身份信息
p_TotalWorkingYears
geom_de