一、实验目的:
通过上机试验,掌握R语言实施数据预处理及简单统计分析中的一些基本运算技巧与分析方法,进一步加深对R语言简单统计分析与图形展示的理解。
数据:
链接: https://pan.baidu.com/s/1kMdUWXuGCfZC06lklO5iXA 提取码: g55h
二、实验内容:
bank.csv文件中数据来自1969-1971年美国一家银行的474名职员情况调查。该数据共8个变量,包括:
gender:性别,1代表男性,2代表女性;
educ:受教育年限(单位:年);
jobcat:职位等级,分1,2,3级,1级工作地位最低,3级最高;
salary:当前工资(单位:美元/年);
salbegin:初始工资,指进入银行初始薪酬(单位:美元/年);
jobtime:工作月份,指在银行累计工作时间(单位:月);
prevexp:以前工作经历,指在其他单位累计工作时间(单位:月);
minority: 是否少数民族,0代表不是,1代表是。
(1)请绘制折线图,展示工资如何随工作时间变化,并对图形进行解读。
(2)请绘制气泡图,展示性别、职位等级与当前工资的关系,并对图形进行解读。
(3)(至少有两个分析)自行选择感兴趣的变量与分析目的,利用基本统计分析图形进行直观表示并加以解读。此小题对使用何种图形展示不做严格要求,只需不是折线图及气泡图即可。
三、实验过程与结果:
(1)绘制折线图,展示工资如何随工作时间变化,并对图形进行解读:
data<-read.csv("E:/学习资料及作业/2.2多元统计分析R/实验1/bank.csv")
data
d1<-aggregate(salary~jobtime,data,mean) #求salary的均值
library(ggplot2)
ggplot(data=d1,aes(x=jobtime,y=salary))+ # 折线图
geom_line(color="green",size=1) #线的颜色、粗细
运行结果:
解读分析:
从总体上看,工作时间jobtime与工资salary之间不存在线性关系,即使工作时间在小范围内变化,薪资可能波动较大。当工作时间超过90时,总体的薪资会比工作时间小于90的多一点儿,表明工作时间会对薪资有一定的影响,但薪资并不是只由工作时间直接决定的,还存在其他因素对其有影响。
(2)绘制气泡图,展示性别、职位等级与当前工资的关系,并对图形进行解读。
d2<-aggregate(x=data$salary,by=list(data$jobcat,data$gender),FUN=mean)
d2
ggplot(data=d2,aes(x=Group.1, y=Group.2, size=x,col=1)) +
geom_point(alpha=0.5) + #调整圆圈透明度
scale_size(range = c(1, 10), name="性别、职位等级与当前工资的关系图")+ #图例名称
xlab('jobcat') + # 更改x、y轴名称
ylab('gender')
运行结果:
解读分析:
男性1到3等级都有分布,女性只有1、3等级,从男性角度来看,1、2等级的薪资差别不大,但1、2与3等级薪资相差较大,都快相差两倍了;从女性角度来看,等级1与等级3相差巨大。并且男性和女性都为等级1时,男性的薪资与女性的相差较大。
(3)自行选择感兴趣的变量与分析目的,利用基本统计分析图形进行直观表示并加以解读。此小题对使用何种图形展示不做严格要求,只需不是折线图及气泡图即可。
①分别用箱型图绘制职位等级与受教育年限、职位等级与薪资的关系:
代码:
data$jobcat<-factor(data$jobcat)
ggplot(data,aes(x=jobcat,y=educ))+
geom_boxplot()+
labs(title="职位等级与受教育年限的关系",x="职位等级",y="受教育年限")+
theme(plot.title = element_text(hjust=0.5))
data$jobcat<-factor(data$jobcat)
ggplot(data,aes(x=jobcat,y=salary))+
geom_boxplot()+
labs(title="职位等级与薪资的关系",x="职位等级",y="薪资")+
theme(plot.title = element_text(hjust=0.5))
运行结果:
解读分析:
从均值来看,等级1、2的受教育的年限均值相同,等级3最高,但等级1、2的薪资均值相差不大,等级3的薪资却比等级1、2高得多,从某种程度上可以表明受教育年限越高,其薪资也越高。等级2的薪资较为集中,几乎没什么波动。
②受教育年限、以前工作经历与初始工资的关系:
代码:
d3<-aggregate(x=data$salbegin,by=list(data$prevexp,data$educ),FUN=mean)
ggplot(data=d3,aes(x=Group.1, y=Group.2, size=x,col=1)) +
geom_point(alpha=0.5) + #调整圆圈透明度
scale_size(range = c(1, 10), name="受教育年限、以前工作经历
与初始工资的关系图")+ #图例名称
xlab('prevexp') + # 更改x、y轴名称
ylab('educ')
解读分析:
受教育越高的平均工作时间要比受教育低的少,并且获得的薪酬也相对多一些。
③以前的工作经历对初始薪资的影响:
代码:
d4<-aggregate(salbegin~prevexp,data,mean)
order<-sort(d4$prevexp,decreasing=T)
ggplot(data=d4,aes(prevexp,salbegin))+
geom_bar(stat="identity",width=0.8,colour="black",linewidth=0.25,fill="#FC4E07",alpha=1)
运行结果:
解读分析:
以前的工作经历大多集中在0-120个月,即1-10年,随着工作经历的增加,会出现少数再找工作时,其初始工资很高,但是总体工作经历对其再工作时的初始工资没有什么影响。并且当工作经历达到200个月以上时,再次换工作的人也偏少了,这可能与他们进入中年,追求平稳的生活可能有关。