R语言数据分析实例一:离职率分析与建模预测

Python015

R语言数据分析实例一:离职率分析与建模预测,第1张

本文分析利用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语言-统计学 描述性统计

描述定量数据的数值方法:中心趋势度量 变异的度量 相对位置的度量。

1.中心趋势度量 : 算数平均 中位数 众数

1.1 在R中计算平均数的函数 mean( )常规的mean() 函数用法mean(x, trim = 0, na.rm = FALSE, ...) 参数说明: x 对象名称trim 过滤掉异常值 ,按照距离平均值的远近距离排除,如对象中含有10个数据,排除最高和最低值,trim=0.2na.rm 默认为F 表示是否计入空值实例1: 做一个稍微复杂点的操作,用r做数据透视表并把结果转换为matrix ,对行列求和。(仅娱乐,无实用价值)

demo <- mtcars[1:6,] # 调用R自带函数集,并去前6行

toushi <- aggregate(mtcars[,5:6] ,by = list(cyl = mtcars$cyl),sum) # 数据透视表求和

toushi <- as.matrix(toushi) # 将结果的数据框转化成矩阵

#(toushi <- apply(toushi,c(1,2),sum))

(rowSums(toushi)) # 行求和

(colSums(toushi)) # 列求和

toushi <- rbind(toushi,rowSums(toushi)) #将行求和结果并入最后一行

toushi <- cbind(toushi,colSums(toushi)) #将列求和结果并入最后一列

1.2 中位数和众数

对于偏度极大的数据集,中位数能更好的描述数据分布的中心。

很少用众数作为数据数据趋势的度量,只有当对y出现的相对频率感兴趣时,才会考虑到众数。

R实现中位数 :

median(x, na.rm = FALSE)

R中没有直接插找众数的命令

which.max(table(x))

2.变异的度量 : 极差 方差 标准差

2.1 .极差 = max()- min()

2.2 方差和标准差

对一个有n个测量值的有限总体来说,方差计算公式的分母为n。关于样本方差和总体方差分母的差异原因,可自行百度搜索。

R语言计算方差的函数: var(x,)

w<-c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63,5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)

var(w)

# 附加指数点:标准差的两个有用法则:经验法则 和 切比雪夫法则,共同说明一个问题,对于任意大于1的正数k,至少有(1-1/k^2)的测试值落在平均值的k个标准值范围内。

3.变异的度量 : 百分位数 Z得分

3.1 .最常见的四分位数(一般从大到小)

quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,names = TRUE, type = 7, ...)

资料:《Statistical Analysis of Network Data with R》

语言R常见的网络分析包:

网络分析研究大部分是描述性的工作。

网络的可视化 即是一门艺术,也是一门科学。

三元闭包体现了社会网络的“传递性”(transitivity),枚举所有节点三元组中构成三角形的比值来表征。

网络的可视化和数值特征化是网络分析的首要步骤之一。

网络可视化视图将数据的多个重要反面整合在一个图表中。

该节点在多大程度上会与同类型或者不同类型的其他节点进行匹配,可以通过一种相关性统计量(所谓的同配系数)进行量化。

将复杂系统中感兴趣的问题与合适的网络概括性度量匹配起来,是网络特征化方法起作用的关键所在。

网络中的频繁子图模式

网络聚类系数的分布,用来检验社会网路的聚集性上

sand安装包

网络数据统计分析 statistical analysis of network data

在CRAN上

G=(V,E)

节点 :vertices 或者 nodes

边:edges 或者 links

节点数量:图的阶数 order

边的数量:图的规模 size

同构图 isomorphic

无向 undirected

有向 directed graph 或者 digraph

边:有向边 directed edges 或 弧 arcs

双向 mutual

小的图形用 formulate来创建

把mg转化为wg2

Zachary 空手道俱乐部网络 (karate club network)

数据集合实际上只存在两个社团,分别以教练为中心和以主管为中心。

Lazega律师网络可视化

srt() 不能用使用 upgrade_graph()d代替

DrL算法,针对大型网络可视化设计的布局算法。

节点的节点,即社区节点(主题节点)

即一个中心节点,一其直接相连的邻居,以及这些节点至今的边。

度值不同的节点以何种方式彼此连接

图的密度

全局聚类系数

局部聚类系数

互惠性 reciprocity

二元组普查