R语言实用案例分析-相关系数的应用

Python015

R语言实用案例分析-相关系数的应用,第1张

R语言实用案例分析-相关系数的应用

在日常工作中,经常会存在多个变量之间存在关联关系,比如学习数学好的同学,物理成绩可能也比较高。在公司中外貌和讨人喜欢的关系往往也比较大,在人事招聘过程中,如果想要更加综合的评价某个人,需要把相关系数比较高的方面进行权重或者均值处理。

如以下案例:

现有30名应聘者来公司应聘,公司为这些应聘者制定了15项指标,分别是:求职信的形式(FL)、外貌(APP)、专业能力(AA)、讨人喜欢(LA)、自信心(SC)、洞察力(LC)、诚实(HON)、推销能力(SMS)、经验(EXP)、驾驶水平(DRV)、事业心(AMB)、理解能力(POT)、交际能力(KJ)和适应性(SUIT)。每项分数是从0到10分,0分最低,10分最高。每位求职者的15项指标如下所示,公司计划只录取前5名申请者,公司到底该如何选择呢?

#读入数据

rt<-read.table("applicant.data")

AVG<-apply(rt,1,mean)

sort(AVG,descreasing=TRUE)

attach(rt)

#找到相关系数高的分为一组,然后取平均值,防止值过大

rt$G1<-(SC+LC+SMS+DRV+AMB+GSP+POT)/7

rt$G2<-(FL+EXP+SUIT)/3

rt$G3<-(LA+HON+KJ)/3

rt$G4<-AA

rt$G5<-APP

AVG<-apply(rt[,16:20], 1, mean)

sort(AVG, decreasing = TRUE)

找出前5名

本文分析利用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语言包 poppr ,csv文件存储,数据格式如下

使用到的是R语言的 poppr 包中的 read.genalex() 函数

poppr 第一次使用需要先安装

读入数据

读入数据直接是 genclone object,使用函数 genclone2genind() 将其转换成genind object,接下来使用 ade4 包中的 dudi.pca() 函数做主成分分析

主成分的结果存储在li中

还是认为的分个组,然后做散点图

明天的推文再继续这部分内容吧!