大学生恋爱数据分析报告
内容提要:本文依据“大学生恋爱数据”,对大学生恋爱状况和恋爱影响因素进行分析。被调查的学生中,大四学生最多,男女比例基本一致,大部分学生来自于二三线城市,身高介于155-185cm之间,体重介于40-70kg之间。被调查学生中,72%的人恋爱,大部分人被别人追求过且为党员,且会跑步、打羽毛球、吹乐器和唱歌。用全模型对第一个受访者的恋爱状况进行预测时,分界点*α=0.5*时判断正确,*α=0.3*时判断错误。是否追求过别人、是否被别人追求过、寝室同学是否谈过恋爱和每月话费对是否恋爱由显著影响。结合ROC曲线和AUC值可以得出,三个模型中AIC模型分类效果最好。
一、研究目的
近年来,老龄化愈发严重,新生儿出生率显著降低。婚姻是生育的前提,探究现代人的婚恋观具有重要意义。00后婚恋观与以往发生了较大变化,计划终生不婚在00后中较为常见,调研青年人婚恋观的影响因素,对于提升生育率有重要意义。本文旨在依据“大学生恋爱数据”,分析大学生恋爱现状,进而得出大学生恋爱的影响因素。
二、数据来源和相关说明
数据来源于“大学生恋爱数据”文件,据此分析大学生恋爱现状与影响因素。数据共包含32个变量,包括一个因变量和31个自变量。根据变量的含义,将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%之间内,大四人数最多,约占到被调查学生的一半,占比48.8%。
- 男生占比49.1%,女生占比50.9%,男女比例基本符合1:1。
- 家乡来源中,二线城市人数最多,占比38.6%,其次为三线城市和县级市,分别占比28%和14.3%,农村人数最少,仅占比7.5%。
(2)身高、体重情况
图3-2 学生身高、体重直方图
由图3-2可以得出:
- 学生身高在165cm-170cm频数最高,大部分学生的身高集中在155cm-185cm范围内,学生的身高状况大致服从正态分布。
- 学生体重在50kg-60kg频数最高,大部分学生的体重集中在40kg-70kg范围内,学生的体重状况也大致服从正态分布。
3.2 恋爱情况
(1)恋爱比例
图3-3 是否恋爱饼图
由图3-3可以得出:被调查的大学生中,72%的学生在恋爱,只有28%的学生未恋爱,即大学生恋爱比例还是相对较高的。
(2)恋爱史
图3-4 学生恋爱史饼图
由图3-4可以得出:
- 有54.3%的学生追求过别人,45.7%的学生没有追求过别人,追求过别人的人占总人数的一半以上。
- 有74.7%的学生被别人追求过,25.6%的学生没有被别人追求过,较大部分学生被别人追求过。
- 有70%的同学寝室同学没有谈过恋爱,有30%的同学寝室同学没有谈过恋爱,寝室同学谈过恋爱的同学占比较少。
3.3 职务担任情况
图3-5 职务担任情况饼图
由图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可以得出:学生中会其他才艺、乐器和唱歌的人数较多,分别占比54.6%、37.9%和33.4%,学生中会主持和舞蹈的人数较少,仅占比8%~9%。
3.6 颜值情况
图3-8 学生颜值状况
由图3-8可以得出:69.3%的学生均佩戴眼镜,占总人数的一半以上;学生的颜值在4-5分之间人数最多,远远多于其他组颜值;相较于低颜值,高颜值人群人数要多于低颜值人群,即人群整体颜值集中在4-10分,极低颜值人数较少。
3.7 生活规划情况
图3-9 学生生活规划情况
由图3-9可以得出:学生每周自习时间集中在0-20h,其中5-10h与15-20h人数最多;学生每周娱乐时间集中在0-30和,其中0-10h人数最多;学生每周睡觉时间集中在40-60h,其中50-60h人数最多;学生每周运动时间集中在0-10h,其中0-5h人数最多;学生每月话费集中在30-60元和90-100元,其中90-100元人数最多;学生组织个数集中在0.5-1、1.5-2和2.5-3,其中2.5-3人数最多;学生成绩水平分布较为均匀,其中40-50分人数最多;学生生活费集中在0-3000元,其中1000-2000元人数最多。
3.8 变量间的相关性
(1)连续型变量热力图
图3-10 相关性热力图
由图3-10可以得出:除了身高和体重间的相关性外,其他各个变量间的相关性非常弱。身高和体重的相关系数为0.75,属于中强度正相关关系,其他变量间的相关系数绝对值均不超过0.25,因而相关关系非常弱。
(2)连续变量与是否恋爱的关系
图3-11 箱线图
由图3-11可以得出:生活规划的变量在是否恋爱上不全存在差异性,从箱线图可以看出,每月话费、成绩水平和生活费在是否恋爱上存在较大的差异性,其它的变量差异性较小或几乎不存在差异性。
四、数据建模
4.1 全模型
(1)模型建立
将所有变量全部纳入模型,建立logistic回归模型,模型形式如下:
logit*p=*ln(*p/1p)=β0**+β1as.factorJB12+β2as.factorJB13+β3as.factorJB14+β4JB2+β5as.factorJB32+β6as.factorJB33+β7as.factorJB34+β8as.factorJB35+β9JB4*+*β10JB5+β11LA1+β12LA2+β13LA3+β14ZW1+β15ZW2+β16YD1+β17YD2+β18YD3+β19YD4+β20YD5+β21YD6+β22CY1+β23CY2+β24CY3+β25CY4+β26CY5+β27YZ1+β28YZ2+β29GH1+β30GH2+β31GH3+β32GH4+β33GH5+β34GH6+β35GH7+β36*GH8
模型的参数估计如表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在统计学意义上显著,即变量是否追求过别人、是否被别人追求过、寝室同学是否谈过恋爱、乒乓球、台球在统计学意义上显著,其他自变量不显著。
- 追求过别人,学生恋爱的优势变为原来的7.97倍;被别人追求过,学生恋爱的优势变为原来的8.98倍;寝室同学谈过恋爱,学生恋爱的优势变为原来的4.54倍;打乒乓球,学生恋爱的优势变为原来的0.38倍,即学生恋爱发生的可能性降低;打台球,学生恋爱的优势变为原来的3.12倍。这些变化都在统计学意义上显著。
- 与大一学生相比,大二和大四学生恋爱的优势是大一学生的0.56倍和0.94倍,大三学生恋爱的优势是大一学生的1.28倍,即四个年级中,大三学生更可能谈恋爱,其次是大一学生、大四学生,最不可能谈恋爱的是大二学生,这些在统计学上不具有显著性。
- 与男学生相比,女学生恋爱的有时比是男同学的1.44倍,但这在统计学上不具有显著性。
- 与一线城市相比,二线城市学生恋爱的优势是其1.03倍,三线城市、县级市和农村学生恋爱的优势是其0.59倍、0.78倍和0.29倍,即二线城市学生最容易恋爱,其次是一线城市、县级市和三线城市,最后是农村学生。但是这些在统计学上不显著。
- 在其他条件不变的条件下,身高每增加1cm,学生恋爱的优势变为未增加时的1.0056倍;体重每增加1kg,学生恋爱的优势变为未增加前的0.99倍。但这些在统计学上不显著。
- 班干部、党员、踢足球、篮球、打羽毛球的学生恋爱的优势要低于非这些的学生,但是在统计学上不显著。
- 跑步、会唱歌、主持、乐器和其他才艺的学生恋爱的优势要高于非这些的学生,但在统计学上不显著。
- 学生的生活规划变量均对学生恋爱的优势比有正向影响,但这些影响在统计学上不存在显著性。
(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、LA2、LA3、YD3、YD6、GH5和GH7,即保留了是否追求过别人、是否被别人追求过、寝室同学是否谈过恋爱、乒乓球、台球、每月话费和成绩水平。除了变量成绩水平,其他变量在显著性水平*α=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%的样本作为训练集,30%样本作为测试集,通过ROC曲线比较全模型和选模型A、B的分类效果,得到的三个模型的ROC曲线如图4-1所示。同时,进行随机模拟,绘制三个模型外样本AUC箱线图如图4-2所示。
图4-1 三个模型的ROC曲线
图4-2 三个模型AUC对比
结合图4-1和图4-2可以得出:AIC模型的ROC曲线与x轴围成的面积最大,且AIC模型AUC值的箱线图最高,综合ROC曲线和AUC值可以得出,三个模型中AIC模型分类效果最好。
五、结论及建议
5.1 结论
- 被调查的学生中,大四学生最多,男女比例基本一致,大部分学生来自于二三线城市,身高介于155-185cm之间,体重介于40-70kg之间,69.3%的人戴眼镜。
- 被调查学生中,72%的人恋爱,大部分人被别人追求过且为党员,且会跑步、打羽毛球、吹乐器和唱歌。
- 用全模型对第一个受访者的恋爱概率进行预测时,当分界点α=0.5时,第一个受访者被判为不恋爱,当分界点α=0.3时,第一个受访者被判为恋爱。第一个受访者本身是不恋爱,因而α=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模型")
个人反思:描述性统计饼图过小,可以直接用一个表格计算出百分比即可,不必画这么多饼图
个人意见,还请各位读者批评指正!
版权归原作者 数据人的自我救赎 所有, 如有侵权,请联系我们删除。