全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1357 0
2020-12-11
使用R进行Logistic回归的员工流失分析
如今,员工流失已成为公司竞争优势的一个严重问题。寻找,雇用和培训新人才非常昂贵。保留公司现有员工的成本效益更高。公司需要保持愉快的工作氛围,以使其员工在公司中待更长的时间。几年前,它是手动完成的,但这是机器学习和数据分析的时代。现在,公司的人力资源部门使用一些数据分析工具来确定哪些区域需要修改以使其大部分员工留下。
为什么我们要使用逻辑回归分析员工流失?
无论员工要留下还是离开公司,他或她的答案都是二项式的,即可以是“是”或“否”。因此,我们可以看到我们的因变量Employee Attrition只是一个分类变量。对于因变量,我们不能使用线性回归,在这种情况下,我们必须使用“逻辑回归”。
方法
在这里,我将使用5个简单步骤来使用R软件分析员工流失情况
数据采集
数据预处理
将数据分为“训练”和“测试”两个部分
使用“训练数据集”建立模型
使用“测试数据集”进行准确性测试
数据探索
该数据集是从IBM人力资源部门收集的。数据集包含1470个观测值和35个变量。在35个变量中,“损耗”是因变量。
快速浏览数据集:
员工流失
员工流失
看一看:
员工流失
资料准备
检测缺失值:
我们必须查看数据集中是否缺少任何值。
anyNA(JOB_Attrition)
结果:FALSE ; 也就是说,我们的数据集“ JOB_Attrition”中没有缺失值
更改数据类型:
首先,我们必须更改因变量“ Attrition”的数据类型。它以“是”和“否”形式给出,即它是类别变量。为了制作合适的模型,我们必须将其转换为数字形式。为此,我们将值1分配给“是”,将值0分配给“否”并将其转换为数字。
JOB_Attrition $ Attrition [JOB_Attrition $ Attrition ==“是”] = 1
JOB_Attrition $ Attrition [JOB_Attrition $ Attrition ==“否”] = 0
JOB_Attrition $ Attrition =数字(JOB_Attrition $ Attrition)
接下来,我们将所有“字符”变量更改为“因子”
有8个字符变量:商务旅行,部门,教育,教育领域,性别,工作角色,婚姻状况,随着时间的推移。列号分别为2
JOB_Attrition [,c(2
最后,还有另一个变量“ Over 18”,其所有输入均为“ Y”。它也是一个字符变量。我们将转换为数值,因为它只有一个级别,因此转换为因子将不会提供良好的结果。为此,我们将为“ Y”分配值1并将其转换为数字。
JOB_Attrition $ Over18 [JOB_Attrition $ Over18 ==“ Y”] = 1
JOB_Attrition $ Over18 = as.numeric(JOB_Attrition $ Over18)
将数据集分为“训练”和“测试”
在任何回归分析中,我们都必须将数据集分为两部分:
训练数据集
测试数据集
借助培训数据集,我们将建立模型并使用“测试数据”集测试其准确性。
set.seed(1000)
ranuni = sample(x = c(“ Training”,“ Testing”),size = nrow(JOB_Attrition),replace = T,prob = c(0.7
TrainingData = JOB_Attrition [ranuni ==“ Training”,]
TestingData = JOB_Attrition [ranuni ==“ Testing”,]
nrow(TrainingData)
nrow(TestingData)
我们已成功将整个数据集分为两部分。现在我们有1025个培训数据和445个测试数据。
建立模型
现在,我们将按照以下一些简单步骤来构建模型:
识别自变量
将因变量“损耗”纳入模型
将模型的数据类型从“字符”转换为“公式”
将TRAINING数据合并到公式中并建立模型
独立变量=名称(JOB_Attrition [,2:35])
自变量
模型=粘贴(独立变量,折叠=“ +”)
模型
Model_1 = paste(“ Attrition?”,Model)
型号_1
班级(Model_1)
公式= as.formula(模型_1)

输出:
员工流失
接下来,我们将使用“ glm”函数将“训练数据”合并到公式中,并建立一个逻辑回归模型。
Trainingmodel1 = glm(公式=公式,数据= TrainingData,family =“ binomial”)
现在,我们将通过“逐步选择”方法来设计模型以获取模型的重要变量。执行代码将为我们提供输出列表,其中将根据模型的重要性添加和删除变量。每个级别的AIC值反映了相应模型的优劣。随着值的不断下降,将导致更好的拟合逻辑回归模型。
摘要在最终模型上的应用将为我们提供最终重要变量列表及其各自的重要信息。
Trainingmodel1 = step(对象= Trainingmodel1,方向=“两者”)
摘要(Trainingmodel1)
员工流失
从上面的结果中,我们可以看到,商务旅行,离家的距离,环境满意度,工作参与度,工作满意度,婚姻状况,工作的公司数量,随着时间的推移,关系满意度,总工作年限,在公司的年数,自上次以来的年数晋升,担任现任职务的年限,这些都是决定员工流失的最重要变量。如果公司主要负责这些领域,那么失去雇员的机会就会减少。
快速查看这些变量在多大程度上影响“损耗”
在这里,我将Tableau用于这些可视化。它不漂亮吗?该软件使我们的工作更加轻松。
现在,我们可以对数据集执行Hoshmer-Lemeshow拟合优度检验,以判断模型预测概率的准确性。
假设是:
H0:模型很合适。
H1:该模型不太适合。
如果p值> 0.05,我们将接受H0并拒绝H1。
要在R中执行测试,我们需要安装mkMisc软件包。
HLgof.test(fit = Trainingmodel1 $ fitted.values,obs = Trainingmodel1 $ y)
在这里,我们可以看到p值大于0.05,因此我们接受H0。现在,证明我们的模型是一个很好的模型。
生成训练数据的ROC曲线
分析逻辑回归拟合优度的另一种技术是ROC度量(接收器工作特性)。ROC度量为敏感性,1-特异性,假阳性和假阴性。我们广泛使用的两个度量是敏感性和特异性。灵敏度衡量模型准确性的优劣,而特异性衡量模型劣势。
要在R中执行此操作,我们需要安装软件包pROC。
troc = roc(response = Trainingmodel1 $ y,predictor = Trainingmodel1 $ fitted.values,plot = T)
troc $ auc
员工流失-ROC
曲线下面积:0.8759
图的解释:
这两个量度的图给出了一个凹线图,该图显示了随着灵敏度的增加1特异性的增加但速率降低。C值(AUC)或一致性指数的值给出了ROC曲线下面积的度量。如果c = 0.5,则意味着该模型无法完美地区分0和1响应。然后,这意味着初始模型无法完美地说明哪些员工要离职,哪些员工要离职。
但是,在这里我们可以看到我们的c值远远大于0.5。是0.8759。我们的模型可以在0和1之间完美地区分。因此,我们可以成功地得出结论,这是一个非常合适的模型。
为训练数据集创建分类表:
trpred = ifelse(test = Trainingmodel1 $ fitted.values> 0.5,yes = 1,no = 0)
表(Trainingmodel1 $ y,trpred)
上面的代码指出,概率的预测值大于0,.5,然后状态的值为1,否则为0。基于此标准,此代码重新标记“损耗”的“是”和“否”响应。现在,重要的是要了解与从数据集中获得的初始置信度相匹配的预测百分比。在这里,我们将比较(1-1)和(0-0)对。
我们有1025个训练数据。我们已经正确预测{(839 + 78)/ 1025} * 100 = 89%。
将结果与测试数据进行比较:
现在,我们将模型与测试数据进行比较。这很像准确性测试。
testpred = predict.glm(object = Trainingmodel1,newdata = TestingData,type =“ response”)
测试准备
tsroc = roc(response = TestingData $ Attrition,predictor = testpred,plot = T)
tsroc $ auc
现在,我们已将“测试”数据合并到训练模型中,并将看到ROC。
员工流失-ROC
曲线下的面积:0.8286(c值)。它也远高于0.5。这也是一个很好的模型。
为测试数据集创建分类表
testpred = ifelse(test = testpred> 0.5,yes = 1,no = 0)
表(TestingData $ Attrition,testpred)
我们有445个测试数据。我们已正确预测{(362 + 28)/ 445} * 100 = 87.64%。
因此, 可以说,我们的逻辑回归模型是一个很好的拟合模型。可以使用此模型分析任何员工流失数据集。
您认为这是一个好榜样吗?下面的评论
员工流失
结论:
我们已经成功学习了如何借助R软件使用“逻辑回归”分析员工流失。只需使用几个代码和适当的数据集,公司便可以轻松了解需要照顾的领域,以使员工的工作场所更舒适,并在更长的时间内恢复人力资源。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群