【统计模型】大学生恋爱数据分析报告
目录
大学生恋爱数据分析报告
一、研究目的
二、数据来源和相关说明
三、描述性统计分析
3.1 基本情况
(1)年级、性别、家乡情况
(2)身高、体重情况
3.2 恋爱情况
(1)恋爱比例
(2)恋爱史
3.3 职务担任情况
3.4 运动情况
3.5 才艺情况
3.6 颜值情况
3.7 生活规划情况
3.8 变量间的相关性
(1)连续型变量热力图
(2)连续变量与是否恋爱的关系
四、数据建模
4.1 全模型
(1)模型建立
(2)结果预测
4.2 基于AIC准则下的选模型A
4.3 基于BIC准则下的选模型B
4.4 模型评估
五、结论及建议
5.1 结论
5.2 建议
六、代码
大学生恋爱数据分析报告
本文基于"大学生恋爱数据"这一研究对象,深入探讨大学生恋爱状况及其影响因素。在调查样本中,默认年级的大四学生占比最高,男女比例大致相当,其中约半数以上的学生来自二三线城市,其身高普遍在155至185厘米之间,体重则在40至70公斤范围内。根据调查结果发现,约有72%的受访者表示已婚或正在恋爱状态,多数已被他人追求,并且具有党员身份,同时参与多项运动与休闲活动包括跑步、羽毛球、吹奏乐器以及唱歌等运动与休闲活动。通过全模型对第一个受访者的恋爱状况进行预测时,AUC指标下,在α=0.3时预测准确率有所下降,而在α=0.5时预测准确率最佳。研究发现,"是否曾追求他人""是否曾被他人追求""寝室同学间是否有过恋爱经历"以及"每月消费支出"这四个变量(即这些变量)对"是否已婚或正在谈恋爱"的影响均具有统计学意义。
一、研究目的
近年来人口老龄化问题日益突出,新生代群体的生育意愿持续走低。婚姻作为生育的基础必要条件,深入研究现代人的婚恋观念具有重要的现实意义。随着' Generation Z'这一群体的崛起,其婚恋观念与传统存在明显差异,其中'计划终身不婚现象'在' Gen Z'中尤为普遍;此外,对年轻人婚恋观念的研究对于改善生育状况也具有重要价值。本文主要基于'大学生恋爱数据',系统分析当前大学生恋爱趋势,深入探讨影响其行为的主要因素
二、数据来源和相关说明
本研究的数据源自一份名为《大学生恋爱状况调查》的问卷收集结果,并基于此展开深入探讨大学生恋爱现状及其影响要素。研究涉及共32项指标构成的数据集,在这些指标中存在一个因变量与31个自变量。根据各指标所代表的意义内涵,在统计学方法的基础上将自变量系统性地划分为七大维度——基础信息维度、恋爱过程维度、职务状态维度、运动爱好维度、专业技能维度、个人外貌维度以及职业规划维度等。为便于后续数据分析与表述,在本研究中对各项指标设定统一符号标记方式(如表2-1所示)。
表2-1 变量解释与符号
| 变量 | 解释 | 符号 | 变量 | 解释 | 符号 |
|---|---|---|---|---|---|
| 是否恋爱 | 0-否;1-是 | Y | 唱歌 | 0-否;1-是 | CY1 |
| 年级 | 1-大一;2-大二; 3-大三;4-大四 | JB1 | 主持 | 0-否;1-是 | CY2 |
| 性别 | 0-男;1-女 | JB2 | 舞蹈 | 0-否;1-是 | CY3 |
| 家乡 | 1-一线城市;2-二线城市; 3-三线城市;4-县级市; 5-农村 | JB3 | 乐器 | 0-否;1-是 | CY4 |
| 身高 | 连续变量 | JB4 | 其他才艺 | 0-否;1-是 | CY5 |
| 体重 | 连续变量 | JB5 | 是否戴眼镜 | 0-否;1-是 | YZ1 |
| 是否追求过别人 | 0-否;1-是 | LA1 | 颜值 | 连续变量 | YZ2 |
| 是否被别人追求过 | 0-否;1-是 | LA2 | 每周自习时间 | 连续变量 | GH1 |
| 寝室同学是否谈过恋爱 | 0-否;1-是 | LA3 | 每周娱乐时间 | 连续变量 | GH2 |
| 班干部 | 0-否;1-是 | ZW1 | 每周睡觉时间 | 连续变量 | GH3 |
| 党员 | 0-否;1-是 | ZW2 | 每周运动时间 | 连续变量 | GH4 |
| 足球 | 0-否;1-是 | YD1 | 每月话费 | 连续变量 | GH5 |
| 篮球 | 0-否;1-是 | YD2 | 学生组织个数 | 连续变量 | GH6 |
| 乒乓球 | 0-否;1-是 | YD3 | 成绩水平 | 连续变量 | GH7 |
| 羽毛球 | 0-否;1-是 | YD4 | 生活费_百元 | 连续变量 | GH8 |
| 跑步 | 0-否;1-是 | YD5 | |||
| 台球 | 0-否;1-是 | YD6 |
三、描述性统计分析
为了全面认识数据的总体特征与内在规律性分布状况,在本文中作者首先进行了系统的描述性统计分析工作。鉴于研究涉及的变量较为丰富多样,在研究过程中作者将重点围绕以下八方面展开探究:包括基本特征属性信息分析、恋爱观及人际关系探讨、职业发展路径研究等;同时也会深入挖掘各关键变量间的相互关联关系。
3.1 基本情况
为了分析学生基本情况,本文绘制了饼图和直方图,分别如图3-1和3-2所示。
(1)年级、性别、家乡情况

图3-1 学生基本情况饼图
由图3-1可以得出:
- 在所调查的学生群体中,一至三年级学生数量相对较少,其占比较低的是一至三年级学生(14%-20%)。
- 经统计分析可知,在受访学生中男性与女性的比例约为49.1%和50.9%,整体性别分布较为均衡。
- 在家乡来源分布方面显示,二线城市成为主要分布区域(38.6%),其次为三线城市及县级市(分别占28%和14.3%),而农村地区仅占7.5%左右。
(2)身高、体重情况

图3-2 学生身高、体重直方图
由图3-2可以得出:
- 在[162.8, 239.2]区间内出现频率最高的身高中学男生人数占比最大;
- 大部分学生成绩分布在[99.2, 339.2]区间内;
- 学生成绩的离散程度较为合理;
- 学生成绩的集中程度较为均衡;
- 学生成绩呈现明显的钟型分布特征。
3.2 恋爱情况
(1)恋爱比例

图3-3 是否恋爱饼图
根据图3-3的数据表明:参与调查的大学生群体中,在恋爱状态下的人数占比为72%,仅有28%的学生处于未恋爱状态。这表明大学生的整体恋爱比例仍然较高。
(2)恋爱史

图3-4 学生恋爱史饼图
由图3-4可以得出:
- 有大约五成多一点的学生有过追求他人之说(具体数据为54.3%),而略少于一半的学生从未有过这样的经历(数据为45.7%)。
- 在调查结果中发现,在被调查群体中占据主导地位的是一小部分学生(占比约74.7%),他们曾经遭受过他人的主动追求。
- 调查显示,在寝室群体中仅有约三成的比例未曾涉及恋爱问题(数据为30%),其余七成左右的寝室成员曾经或正在经历恋爱相关的情况。
3.3 职务担任情况

图3-5 职务担任情况饼图
经分析可知:在学员群体中数据显示约65.6%为干部成员而81.6%为党员群体其中干部成员占总人数的一半以上且党员证持有者的比例显著高于其他类别。
3.4 运动情况

图3-6 学生运动情况饼图
由图3-6所示数据可知:跑步、羽毛球及台球项目在被调查大学生中颇受欢迎,在总人数中分别占据50.9%、42.7%和24.9%的比例;相比之下足球运动吸引力最低仅占12.3%,吸引力相对不足
3.5 才艺情况

图3-7 学生才艺情况饼图
通过图表3-7可以看出,在参与中学习的学生群体中, 器乐演奏、歌唱和其他才艺的比例较高。其中器乐演奏者占据了约1/3左右的比例(约为28人), 歌唱爱好者也达到了1/4(约20人), 而其他才艺如电子制作等则占据1/5(约16人)。相比之下, 在参与学习的学生群体中, 主持能力和舞蹈技能的参与者相对较少, 在总人数中的比例仅为8%-9%, 即大约有10到12人参与了这些活动
3.6 颜值情况

图3-8 学生颜值状况
观察图3-8的数据可以看出:约有69.3%的学生普遍佩戴眼镜,在总样本中占比达一半以上;约有40%的学生的颜值得分位于4至5分区间内,并且这一区间的人数显著高于其他分数段的群体;与低颜值群体相比,在高颜值区间的人数更多,则主要集中在4至10分区间内,并且具有较低水平的群体占比不大。
3.7 生活规划情况

图3-9 学生生活规划情况
由图3-9可知:学生每天的学习时长主要分布在零到二十个小时之间,在五到十小时及十五到二十小时期间更为密集;在每周娱乐时长方面,则主要集中在零到三十小时范围内,在每日零到十个小时期间更为突出;学生的睡眠时长普遍在四十至六十小时区间内居多,在五十至六十小时内的人群占比最高;日常运动时长则多集中于零到十个小时时间段,在每日零至五个小时内的人群较为密集;此外,在月均消费方面,学生的支出主要集中在三十至六百元以及九百元以上的一 thousand元区间内,在九百元以上的一 thousand元范围内的人群占比最高;组织参与次数方面,则呈现明显的层次分布特征,在每月零点五至一、一至二及二点五至三次的区间中分别体现出一定的集中趋势;在学业成绩分布上则呈现出较为均衡的特点,在四十分段内的人群占比最高。
3.8 变量间的相关性
(1)连续型变量热力图

图3-10 相关性热力图
由图3-10可以看出:除了身高与体重之间的显著相关性之外,在其余各项指标之间不存在明显关联关系。其中身高与体重的相关系数达到了R=0.75(属于中等程度的正向关联),而其余各项指标间其绝对值均不超过R=0.25(即其关联程度很低)。
(2)连续变量与是否恋爱的关系

图3-11 箱线图
根据图3-11的数据可知:生活规划的变量在恋爱与否方面并非完全表现出显著差异。通过箱线图可以看出:分别包括每月话费、成绩水平以及生活费这几个指标,在恋爱与否方面表现出较大的差距。其他指标之间的差距则相对较小或基本没有明显的不同。
四、数据建模
4.1 全模型
(1)模型建立
将所有变量全部纳入模型,建立logistic回归模型,模型形式如下:
The model employs a logit function to express the probability p as follows: logit p equals the natural logarithm of p divided by (1-p), which is further broken down into a linear combination of coefficients β₀, β₁, β₂, and so on, each associated with specific categorical variables and their respective levels.
模型的参数估计如表4-1所示。
表4-1 全模型参数估计
| 变量 | Estimate | Pr(> | z | ) | 变量 | Estimate | Pr(> | z | ) |
|---|---|---|---|---|---|---|---|---|---|
| (Intercept) | -4.4842 | 0.4128 | YD4 | -0.3917 | 0.3192 | ||||
| as.factor(JB1)2 | -0.5786 | 0.3699 | YD5 | 0.1803 | 0.6461 | ||||
| as.factor(JB1)3 | 0.2452 | 0.7283 | YD6 | 1.1374 | 0.01987* | ||||
| as.factor(JB1)4 | -0.0625 | 0.9178 | CY1 | 0.1752 | 0.6890 | ||||
| JB2 | 0.3651 | 0.5629 | CY2 | 1.1006 | 0.1791 | ||||
| as.factor(JB3)2 | 0.0259 | 0.9702 | CY3 | -0.7648 | 0.2619 | ||||
| as.factor(JB3)3 | -0.5337 | 0.4534 | CY4 | 0.4320 | 0.3584 | ||||
| as.factor(JB3)4 | -0.2499 | 0.7645 | CY5 | 0.7619 | 0.1108 | ||||
| as.factor(JB3)5 | -1.2400 | 0.1846 | YZ1 | 0.2786 | 0.4953 | ||||
| JB4 | 0.0056 | 0.8628 | YZ2 | 0.1027 | 0.2201 | ||||
| JB5 | -0.0015 | 0.9501 | GH1 | 0.0033 | 0.8182 | ||||
| LA1 | 2.0757 | 2.74e-06*** | GH2 | 0.0085 | 0.6225 | ||||
| LA2 | 2.1950 | 1.76e-07*** | GH3 | 0.0070 | 0.7362 | ||||
| LA3 | 1.5127 | 0.00234** | GH4 | 0.0017 | 0.9685 | ||||
| ZW1 | -0.5238 | 0.2207 | GH5 | 0.0136 | 0.08147· | ||||
| ZW2 | -0.0978 | 0.8492 | GH6 | 0.1609 | 0.1713 | ||||
| YD1 | -0.3616 | 0.5976 | GH7 | -0.0122 | 0.1121 | ||||
| YD2 | -0.0400 | 0.9415 | GH8 | -0.0066 | 0.4049 | ||||
| YD3 | -0.9684 | 0.03585* |
由表4-1可以得出:
并非所有变量均在统计学上具有显著性。其中LA1、LA2、LA3、YD3和YD6这些变量在统计学上表现出显著性:寝室同学间存在恋爱经历、被他人追求过等情况的学生,在恋爱优势方面较未经历此类事件的学生分别提升了约4.54倍、8.98倍及7.97倍;而通过打乒乓球等休闲活动获得的优势则较弱化至约0.38倍;台球爱好者的优势则提升至约3.12倍;其他自变量对恋爱优势的影响则较为有限,在统计学层面并不具备显著性。
相对于大一学生而言,大二及大四学生的恋爱优势是其的大约0.56倍及0.94倍;相比之下大三学生的恋爱优势是其的大约1.28倍;具体表现为四个年级中大三学生的恋爱可能性最高;其次是大一及大四学生;而大二学生在这方面表现最不积极;这些差异并未达到统计学上的显著水平。
(2)结果预测
基于全模型对第一个受访者的恋爱概率进行预测分析,并计算得到其预测值为-0.46617305。由此可得该受访者恋爱的概率值即为_p(Y=1)_ = 0.385522。在设定不同的阈值下进行分类判定时发现:当取值范围设定在 α=0.5 时该受访者被判定为不恋爱状态;而当取值范围设定在 α=0.3 时则被判定为其处于恋爱状态。然而从真实情况来看该受访者本身属于非恋爱状态因此当阈值设置在 α=0.5 时其分类判定结果是正确的;但阈值设置在 α=0.3 时则导致误判出现。
4.2 基于AIC准则下的选模型A
基于AIC标准作为指导原则对整个模型的所有变量展开筛选过程,最终获得选择后的模型A,其中包含详细参数估计结果参考表格4-2
表4-2 选模型A参数估计结果
| 变量 | Estimate | Std.Error | z value | Pr(> | z | ) |
|---|---|---|---|---|---|---|
| (Intercept) | -1.9104 | 0.5541 | -3.4480 | 0.0006*** | ||
| LA1 | 1.8057 | 0.3593 | 5.0250 | 5.03e-07*** | ||
| LA2 | 2.1443 | 0.3574 | 5.9990 | 1.98e-09*** | ||
| LA3 | 1.2134 | 0.4250 | 2.8550 | 0.0043* | ||
| YD3 | -0.8502 | 0.4013 | -2.1190 | 0.0341* | ||
| YD6 | 0.9293 | 0.4378 | 2.1230 | 0.0338* | ||
| GH5 | 0.0139 | 0.0062 | 2.2380 | 0.0252* | ||
| GH7 | -0.0098 | 0.0063 | -1.5590 | 0.1189 |
由表4-2分析可知:模型A采用了LA1至GH7这些变量作为核心要素。具体包括:是否主动追求他人以及是否被他人主动追求;寝室中的男女是否存在恋爱关系;还有涉及乒乓球运动及台球等项目的人均消费支出情况;以及学业表现这一重要指标。值得注意的是,在α=0.05的显著性水平下分析显示:其余各项指标在α=0.05的显著性水平下均显示出统计学意义
4.3 基于BIC准则下的选模型B
以BIC准则为基础从全模型中筛选出变量从而获得选出的模型B其参数估计值如表4-3所示
表4-3 选模型B参数估计结果
| 变量 | Estimate | Std.Error | z value | Pr(> | z | ) |
|---|---|---|---|---|---|---|
| (Intercept) | -2.4436 | 0.4708 | -5.1910 | 2.10e-07*** | ||
| LA1 | 1.7478 | 0.3423 | 5.1060 | 3.28e-07*** | ||
| LA2 | 2.0938 | 0.3418 | 6.1260 | 9.02e-10*** | ||
| LA3 | 1.3098 | 0.4128 | 3.1730 | 0.00151** | ||
| GH5 | 0.0165 | 0.0060 | 2.7440 | 0.00607** |
根据表4-3的数据分析结果表明:模型B包含了四个高度显著的变量——LA1、LA2、LA3和GH5。这些变量分别代表是否追求过别人、是否被他人追求过以及寝室同学之间是否有恋爱经历和每月消费金额。在 α=0.05 的显著性水平下,所有这些变量均表现出高度统计学意义。
4.4 模型评估
将数据集划分为70%用于[训练集](

图4-1 三个模型的ROC曲线

图4-2 三个模型AUC对比
通过对比图4-1与图4-2的数据可以看出:基于该模型构建的ROC曲线下面积达到最大值,并且其对应的AUC值分布呈现出最大的离散程度。进一步综合分析ROC曲线下面积及AUC指标后发现,在三个待评估模型中唯有AIC模型展现出显著的优势
五、结论及建议
5.1 结论
- 接受调查的学生群体中以大四学生为主(约45%),男女比例均衡(略高于男生),其中约70%的学生来自二三线城市。
- 身高范围在155厘米至185厘米之间的学生占比超过80%,体重在40公斤到70公斤之间的学生占总受访者的63%,其中有近7成的人戴眼镜。
- 采用全模型对第一个受访者的恋爱可能性进行了预测分析,在设定阈值 α=0.5 时(即将概率低于该值判断为不恋人的标准),该受访者被判为不恋爱;而当阈值 α=0.3 时,则判定其为正在经历恋爱。
- 对照样本数据发现:受访者是否曾经追求他人、是否曾被他人追求、寝室间是否存在恋爱经历以及每月消费支出对恋爱意愿的影响程度显著不同。
- 通过ROC曲线和AUC值分析结果表明:三个候选模型中AIC模型具有最优的分类效果。
5.2 建议
个人的主动或被动寻求异性关系、他人对自己是否有兴趣以及室友之间是否有恋情发生等三个问题都值得探讨;同时发现经济状况与大学生的恋爱选择有关联。从这些现象可以看出(经济状况)以及(个人需求)等因素共同作用的结果。为了有效提高大学生的恋爱成功率,应该加强相关的宣传活动。
六、代码
a=read.csv("D:/个人成长/学业/课程/大三下课程/统计模型/作业/第三次作业/大学生恋爱数据.csv",header=T)##读入文件
a[c(1:5),]
attach(a)
b=a[,22:32]
JB1=as.factor(JB1)
JB3=as.factor(JB3)
#统计恋爱状况
x=c(82,211)
color=c('red','orange')
piepercent1=round(100*x/sum(x),1)
pie(x,labels=piepercent1,main="是否恋爱",col=color)
legend("topright",c("否","是"),cex=0.8,fill=color)
#学生基本情况统计——年级、性别、家乡、身高、体重
x1=c(42,51,57,143)#年级
piepercent2=round(100*x1/sum(x1),1)
x2=c(144,149)#性别
piepercent3=round(100*x2/sum(x2),1)
x3=c(34,113,82,42,22)#家乡
piepercent4=round(100*x3/sum(x3),1)
par(mfrow=c(1,3))
pie(x1,labels=piepercent2,main="年级",col=rainbow(length(x1)))
legend("topright",c("大一","大二","大三","大四"),cex=1.5,fill=rainbow(length(x1)))
pie(x2,labels=piepercent3,main="性别",col=color)
legend("topright",c("男","女"),cex=1.5,fill=color)
pie(x3,labels=piepercent4,main="家乡",col=rainbow(length(x3)))
legend("topright",c("一线城市","二线城市","三线城市","县级市","农村"),cex=1.5,fill=rainbow(length(x3)))
#学生身高体重统计
par(mfrow=c(1,2))
hist(a$身高,main="身高",xlab="组别" ,ylab = "频数")#直方图
hist(a$体重,main="体重",xlab="组别" ,ylab = "频数")#直方图
#学生恋爱史统计
y1=c(134,159)#是否追求过别人
piepercent11=round(100*y1/sum(y1),1)
y2=c(75,218)#是否被别人追求过
piepercent12=round(100*y2/sum(y2),1)
y3=c(205,88)#寝室同学是否谈过恋爱
piepercent13=round(100*y3/sum(y3),1)
par(mfrow=c(1,3))
pie(y1,labels=piepercent11,main="是否追求过别人",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(y2,labels=piepercent12,main="是否被别人追求过",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(y3,labels=piepercent13,main="寝室同学是否谈过恋爱",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
#学生职务担任情况
z1=c(101,192)#班干部
piepercent21=round(100*z1/sum(z1),1)
z2=c(239,54)#党员
piepercent22=round(100*z2/sum(z2),1)
par(mfrow=c(1,2))
pie(z1,labels=piepercent21,main="班干部",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(z2,labels=piepercent22,main="党员",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
#学生运动情况
w1=c(257,36)#足球
piepercent31=round(100*w1/sum(w1),1)
w2=c(227,66)#篮球
piepercent32=round(100*w2/sum(w2),1)
w3=c(229,64)#乒乓球
piepercent33=round(100*w3/sum(w3),1)
w4=c(168,125)#羽毛球
piepercent34=round(100*w4/sum(w4),1)
w5=c(144,149)#跑步
piepercent35=round(100*w5/sum(w5),1)
w6=c(220,73)#台球
piepercent36=round(100*w6/sum(w6),1)
par(mfrow=c(2,3))
pie(w1,labels=piepercent31,main="足球",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(w2,labels=piepercent32,main="篮球",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(w3,labels=piepercent33,main="乒乓球",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(w4,labels=piepercent34,main="羽毛球",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(w5,labels=piepercent35,main="跑步",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(w6,labels=piepercent36,main="台球",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
#学生才艺情况
v1=c(195,98)#唱歌
piepercent41=round(100*v1/sum(v1),1)
v2=c(270,23)#主持
piepercent42=round(100*v2/sum(v2),1)
v3=c(268,25)#舞蹈
piepercent43=round(100*v3/sum(v3),1)
v4=c(180,110)#乐器
piepercent44=round(100*v4/sum(v4),1)
v5=c(133,160)#其他才艺
piepercent45=round(100*v5/sum(v5),1)
par(mfrow=c(2,3))
pie(v1,labels=piepercent41,main="唱歌",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(v2,labels=piepercent42,main="主持",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(v3,labels=piepercent43,main="舞蹈",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(v4,labels=piepercent44,main="乐器",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
pie(v5,labels=piepercent45,main="其他才艺",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
#学生颜值情况
t1=c(90,203)#是否戴眼镜
piepercent51=round(100*t1/sum(t1),1)
par(mfrow=c(1,2))
pie(t1,labels=piepercent51,main="是否戴眼镜",col=color)
legend("topright",c("否","是"),cex=1.5,fill=color)
hist(a$颜值,main="颜值",xlab="组别" ,ylab = "频数")#直方图
#学生生活规划情况
par(mfrow=c(2,4))
hist(a$每周自习时间,main="每周自习时间",xlab="组别" ,ylab = "频数")
hist(a$每周娱乐时间,main="每周娱乐时间",xlab="组别" ,ylab = "频数")
hist(a$每周睡觉时间,main="每周睡觉时间",xlab="组别" ,ylab = "频数")
hist(a$每周运动时间,main="每周运动时间",xlab="组别" ,ylab = "频数")
hist(a$每月话费,main="每月话费",xlab="组别" ,ylab = "频数")
hist(a$学生组织个数,main="学生组织个数",xlab="组别" ,ylab = "频数")
hist(a$成绩水平,main="成绩水平",xlab="组别" ,ylab = "频数")
hist(a$生活费_百元,main="生活费_百元",xlab="组别" ,ylab = "频数")
#连续变量之间相关性热力图
library(corrplot)
k=cor(b,use='everything',method='pearson')
par(mfrow=c(1,1))
corrplot(k,addCoef.col = "black")
#绘制箱线图
par(mfrow=c(2,4))
boxplot(a$每周自习时间~a$是否恋爱,ylab="每周自习时间",xlab="是否恋爱",data=a,names=c("否","是"))
boxplot(a$每周娱乐时间~a$是否恋爱,ylab="每周娱乐时间",xlab="是否恋爱",data=a,names=c("否","是"))
boxplot(a$每周睡觉时间~a$是否恋爱,ylab="每周睡觉时间",xlab="是否恋爱",data=a,names=c("否","是"))
boxplot(a$每周运动时间~a$是否恋爱,ylab="每周运动时间",xlab="是否恋爱",data=a,names=c("否","是"))
boxplot(a$每月话费~a$是否恋爱,ylab="每月话费",xlab="是否恋爱",data=a,names=c("否","是"))
boxplot(a$学生组织个数~a$是否恋爱,ylab="学生组织个数",xlab="是否恋爱",data=a,names=c("否","是"))
boxplot(a$成绩水平~a$是否恋爱,ylab="成绩水平",xlab="是否恋爱",data=a,names=c("否","是"))
boxplot(a$生活费_百元~a$是否恋爱,ylab="生活费_百元",xlab="是否恋爱",data=a,names=c("否","是"))
#全模型
model.full=glm(Y~as.factor(JB1)+JB2+as.factor(JB3)+JB4+JB5+LA1+LA2+LA3+ZW1+ZW2+YD1+YD2+YD3+YD4+YD5+YD6+CY1+
CY2+CY3+CY4+CY5+YZ1+YZ2+GH1+GH2+GH3+GH4+GH5+GH6+GH7+GH8,family=binomial(link=logit),data=a)
#模型结果,不显著的变量也要解读,加上不具有统计学意义
summary(model.full)
#似然比卡方检验模型整体效果
1-pchisq(30.56,df=7)
pred=predict(model.full,a)
#基于AIC准则下变量的选择
c(AIC(model.full),BIC(model.full))
model.aic=step(model.full,trace = F)
summary(model.aic)
ss=length(a[,1])#样本量
#基于BIC准则下变量的选择
model.bic=step(model.full,trace = F,k=log(ss))
summary(model.bic)
#只留了特别显著的变量
library(pROC)
#多次模拟,去除随机误差的影响(了解即可)
nsimu=100#进行100次模拟
p=0.7#用作训练集的样本概率
ss0=round(ss*p)#训练集样本量
AUC=as.data.frame(matrix(0,nsimu,3))#100行,3列的零数据框
names(AUC)=c("全模型","AIC模型","BIC模型")
#开始模拟
for(i in 1:nsimu){
#打乱a样本顺序,随即编号并排序
aa=a[order(runif(ss)),]
#数据集aa的前70%作为训练集
A0=aa[c(1:ss0),]
#数据集aa的后30%作为测试集
A1=aa[-c(1:ss0),]
model.1=glm(Y~as.factor(JB1)+JB2+as.factor(JB3)+JB4+JB5+LA1+LA2+LA3+ZW1+ZW2+YD1+YD2+YD3+YD4+YD5+YD6+CY1+
CY2+CY3+CY4+CY5+YZ1+YZ2+GH1+GH2+GH3+GH4+GH5+GH6+GH7+GH8,family=binomial(link=logit),data=A0)
model.2=glm(Y~LA1+LA2+LA3+YD3+YD6+GH5+GH7,family=binomial(link=logit),data=A0)
model.3=glm(Y~LA1+LA2+LA3+GH5,family=binomial(link=logit),data=A0)
#测试集检验模型效果,计算预测值
pred.1=predict(model.1,A1)
pred.2=predict(model.2,A1)
pred.3=predict(model.3,A1)
#计算AUC值
y=A1$Y
auc.1=roc(y,pred.1)$auc
auc.2=roc(y,pred.2)$auc
auc.3=roc(y,pred.3)$auc
#将各个AUC值填充到零矩阵中
AUC[i,]=c(auc.1,auc.2,auc.3)
}
#绘制箱线图看三个模型的AUC分布情况,AUC越大,模型分类效果越好
par(mfrow=c(1,1))
boxplot(AUC,main="外样本AUC对比")
#利用最后一次模拟数据绘制三个模型的ROC曲线
#计算混淆矩阵
roc.1=roc(y,pred.1)
roc.2=roc(y,pred.2)
roc.3=roc(y,pred.3)
#绘制三条ROC曲线,比较效果
par(mfrow=c(1,3))
plot(roc.1,main="全模型")
plot(roc.2,main="AIC模型")
plot(roc.3,main="BIC模型")
在个人反思中发现使用描述性统计饼图过于简略,在此提出建议:即直接通过一个表格快速计算出百分比数据即可,并不需要绘制过多的饼图。
个人意见,还请各位读者批评指正!
