首先,在考研中,受到新冠疫情影响,考研增长人数增长与大部分考研机构预测有一定差距(今年人数只有370多万,并没有突破400万大关),本次研究需要通过问卷调查进行内部影响机制探究。
其次,因为考研意愿程度会受到各种因素影响,因此本次研究通过机器学习的方法,搭建考研意愿拟合模型,让各大考研机构可以有针对向考研学生推广考研培训套餐,实现服务与意愿相匹配以及考研意愿的价值变现。
解决方案
任务/ 目标
查阅相关文献,将考研意愿作为因变量,将自变量分为六大特征(疫情、家庭、个人、学校、社会、个人基本信息)
数据源准备
数据来源是通过网络问卷获取,为了控制问卷质量,在问卷中设置一部分检验变量,最后获取问卷610份,412份有效,198份无效问卷。
特征转换
对于第一个问题,因为因变量为有序变量,意愿程度1—5,对考研意愿程度评价绘制分布图发现,考研意愿分布为正偏态分布,且是有序多分类变量,因此不能进行最小二乘法。对于这种情况一种处理方法是对因变量进行 Box-Cox 变换。但是缺点是有学者表示变换较大时容易扭曲原本内涵。另外一种是非参数方法分析,例如:秩变化分析,推广的 Cox 回归模型、Logistic 回归分析等等。当然还有机器学习的一些方法,如决策树模型、贝叶斯网络等等
由于变量众多,在做回归时,对变量进行降维处理,对五个成分进行命名。
其次学校因素是设置多选题,因此通过多重响应分析整合新变量。
建模一:解决第一个问题
根据前面变量表构造回归模型。
1.1 秩变化分析
秩变化分析是一种非参数方法,因为因变量不是正态分布,因此对因变量y进行秩变化然后再进行回归分析。
1.2 CATREG 分类回归分析
因为自变量有分类变量,因变量为有序变量,为了体现各类别差异,使用最优尺度变化,因此最优尺度是专门用于解决在统计建模时,如何对分类变量进行量化的方法。可将其作为一种预分析手段,通过快速发现各类别间的差异和联系,然后回到其他更易于理解和使用的分析结果。
建模二:解决第二个问题
对于提供考研服务的商家而言,学生的考研意愿如何变现是一个值得研究的问题。
本次根据收集的问卷数据,六大特征20个自变量通过构建分类模型,让商家有针对提供考研服务,减少过度服务带来考研学生反感以及较少服务带来考研学生不满足等问题,这样有利于考研服务商家减少资源浪费,实现考研意愿变现。
2.1 构造
以上说明了如何抽取相关特征,我们大致有如下样本(只列举部分特征)。
2.2 划分训练集和测试集
随时关注您喜欢的主题
2.3 模型
经典决策树
上面数据可以看到不同类别之间分布不平衡,数据集中再4和5这两类。这对我们的分类精度会带来多大影响?我们先建立一个简单的决策树模型。
2.4 模型优化
由于因变量是多分类不平衡数据,因此我们对于多分类数据可以采取上下取样的方法调节不同类别的比例。对于二分类处理不平衡数据方法有很多,最常用的是SMOTE算法。
对于多分类数据不平衡的处理有拆解法(把多分类变成多个二分类,进而生成多个分类器)、caret包里面的createdatapartition函数进行等比抽样、caret包提供的多种ML算法(downSample(),upSample()应用下采样和上采样方法)等等,考虑到模型复杂性以及抽样后样本包含的信息量等因素,采取upSample()进行抽样。
抽样后,每个类别比例为1:1:1:1:1,类别均衡。 前三个类别数量明显增加。
利用新抽样的样本进一步进行决策树分类。
建模一的模型结果:
秩变化分析:
CATREG 分类回归分析
在此案例中,问题一的建模得到结果一样,因此结果具有一定稳健性。根据结果可以发现外部因素对个体(家人和自己)的影响是不显著的。造成上面现象原因,我认为是在长期考研热下,影响人们的外部因素 已经潜移默化的转化为个人因素,导致考研思维固化,具有内部稳定性,所以在疫情影响下,个体考研的意愿程度并没有受到影响,这也有 2021 考研人数增长远小于预测。至于外部因素转化为内部因素,可能是个体对外部因素 无法改变而迫不得已接受。所以我认为在此背景下,考研已经步入新的阶段,即“考研内卷时代”。
建模 二的模型结果:
优化前模型效果:
绘制多分类ROC曲线
Auc等于0.54
从roc曲线和auc的值看出模型效果差。
优化后的结果:
从ROC曲线和AUC值看出优化后模型效果得到了明显提高。但是AUC在0-1的范围内靠近1,说明模型效果很好。一般大于0.8表明模型效果好。因此模型还有继续优化的空间。
比如:第一,采取其他分类模型(神经网络、knn、逻辑回归、C5.0等等)
第二,继续优化决策树相关参数
第三,增加惩罚矩阵
第四,抽样过程增加类别权重
第五,采取其他的方法处理多分类不平衡样本
第六,其他未知方法
关于作者
Xin Hu
在此对Xin Hu 对本文所作的贡献表示诚挚感谢,他专注数据分析和建模领域。擅长SPSS、Spss model、R语言、python。