R语言、03 案例3-3 亚太地区商学院、《商务与经济统计》案例题

这篇具有很好参考价值的文章主要介绍了R语言、03 案例3-3 亚太地区商学院、《商务与经济统计》案例题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 编程教材 《R语言实战·第2版》Robert I. Kabacoff

  • 课程教材《商务与经济统计·原书第13版》 (安德森)

P86、案例3-3 亚太地区商学院


加载数据

已知数据集为csv文件,所以要按间隔符形式导入。并删除带缺省值的列。

  • 字符串替换函数 gsub(匹配内容,替换内容,操作对象)
  • 类型转换函数 as.numeric
# ^ 加载数据并删除带缺省值的列。
Asian <- read.table("./data/Asian.csv",
  header = TRUE, sep = ","
)
#  row.names = "Business.School",

res1 <- data.frame(Asian)
library(dplyr)
Asian <- res1 %>% select_if(~ !any(is.na(.)))

# ^ 数值字符串类型数据转数值类型数据
Asian$Local.Tuition.... <- gsub(",", "", Asian$Local.Tuition....)
Asian$Foreign.Tuitiion.... <- gsub(",", "", Asian$Foreign.Tuitiion....)
Asian$Starting.Salary.... <- gsub(",", "", Asian$Starting.Salary....)
Asian$Local.Tuition.... <- as.numeric(Asian$Local.Tuition....)
Asian$Foreign.Tuitiion.... <- as.numeric(Asian$Foreign.Tuitiion....)
Asian$Starting.Salary.... <- as.numeric(Asian$Starting.Salary....)

# ^ 描述性统计
print(summary(Asian))
View(Asian)

根据描述统计量有什么见解

  • 总共有25所商学院,每所商学院平均录取165人。最多录取数量商学院为印度管理学院,录取463人。最少录取数量商学院为麦夸里管理研究生院,录取12人。不同学校之间录取名额差异较大。
  • 所有商学院每个学院人数平均8人,最多的学院人数为19人,最少的学院人数为2人。可能部分商学院开设的学院数量比较多,有的比较少。
  • 本国学生平均学费为12375美元,外国学生平均学费16582美元。本国、外国学生最低学费和最高学费相同,分别是1000美元和33060美元。外国学生平均学费要比本国学生平均学费高一点。
  • 不同商学院国外学生平均比例为28%,最多国外学生占比为90%,最少国外学生占比为0%。可能部分商学院知名度比较高或者是国外学生录取门槛较低。
  • 不同商学院平均起薪为37292美元,最少起薪7000美元,最高起薪为87000美元。

本国学生和国外学生学费差别

# ^ 本国学生和国外学生学费差别
library(tidyverse)
data1 <- data.frame(Type = "Loacal", Tuition = Asian$Local.Tuition...., School = Asian$Business.School)
data2 <- data.frame(Type = "Foreign", Tuition = Asian$Foreign.Tuitiion...., School = Asian$Business.School)
data <- rbind(data1, data2)

x11()
ggplot(data, aes(x = School, y = Tuition, color = Type, shape = Type)) +
  geom_point(size = 3) +
  geom_line(mapping = aes(y = Tuition, group = Type, color = Type), stat = "identity", size = 1.3) +
  labs(x = "School", y = "Tuition") +
  scale_y_continuous(breaks = c(5000, 10000, 15000, 20000, 25000, 30000, 35000, 40000), limits = c(0, 40000)) +
  geom_hline(aes(yintercept = 0)) + # 加入一条平行于x轴的线,透明度(alpha)调成了65%
  ggtitle("本国学生学费 & 国外学生学费") +
  theme(
    axis.text.x = element_text(angle = 90, hjust = 1), # 把x轴标签调整为90度
    legend.title = element_blank(), # 设置图例标题为空
    legend.position = c(0.15, 0.9), # 设置图例的位置在左上角
    legend.text = element_text(size = 8), # 设置图例的文字大小为10号
    plot.caption = element_text(hjust = 0.5, size = 15), # 设置图标题位置
    axis.text = element_text(size = 8), # 设置图例的文字大小
    axis.title = element_text(size = 12, face = "bold"), # 设置轴标题文字大小和文字加粗
    plot.title = element_text(hjust = 0.5) # 标题文字居中
  )
Local.Tuition.... Foreign.Tuitiion....
Min.   : 1000     Min.   : 1000
1st Qu.: 6146     1st Qu.: 9000
Median :11513     Median :17765
Mean   :12375     Mean   :16582
3rd Qu.:17172     3rd Qu.:22500
Max.   :33060     Max.   :33060

结合折线图和五数概括法可知

  • 本国学生平均学费为12375美元,外国学生平均学费16582美元。本国、外国学生最低学费和最高学费相同,分别是1000美元和33060美元。

  • 国外学生学费比本国学生学费要高。本国学生学费第一、二、三四分位数都比国外学生学费高。


工作经验要求与否与起薪差别

# ^ 工作经验与起薪的差别
b <- aggregate(
  x = Asian$Starting.Salary...., # @ 聚合变量
  by = list(Asian$Work.Experience), # @ 分组依据
  FUN = summary, # @ 聚合函数
)
print(b)
  Group.1   x.Min. x.1st Qu. x.Median   x.Mean x.3rd Qu.   x.Max.
1      No  7100.00   7425.00  7500.00 24583.33  25125.00 87000.00
2     Yes  7000.00  23900.00 46600.00 41305.26  53750.00 71400.00

通过五数概括法,可知不要求工作经验的平均起薪24583.33美元,要求工作经验的平均起薪41305美元,比前者要来得高。


英语测试要求与否与起薪差别

# ^ 工作经验与起薪的差别
c <- aggregate(
  x = Asian$Starting.Salary...., # @ 聚合变量
  by = list(Asian$English.Test), # @ 分组依据
  FUN = summary, # @ 聚合函数
)
print(c)
  Group.1   x.Min. x.1st Qu. x.Median   x.Mean x.3rd Qu.   x.Max.
1      No  7000.00   7500.00 31000.00 33623.53  55000.00 71400.00
2     Yes 16000.00  37300.00 44950.00 45087.50  49800.00 87000.00

通过五数概括法,可知

  • 不要求英语测试的最低起薪为7000美元,要求英语测试的最低起薪为16000美元。

  • 不要求英语测试的平均起薪为33623美元,要求工作经验的平均起薪45087美元,比前者要来得高。

  • 不要求英语测试的起薪第一、二四分位数比要求英语测试的第一、二四分位数低,但不要求英语测试的起薪第三四分位数(55000)却比要求英语测试的第三四分位数(49800)高。


起薪与学费关系

# ^ 起薪与学费关系的散点图
png(file = "Asian_scatterplot_1.png")
plot(
  x = Asian$Starting.Salary...., y = Asian$Local.Tuition....,
  xlab = "起薪",
  ylab = "本国学生学费",
  xlim = c(6000, 88000),
  ylim = c(0, 31000),
  main = "起薪与本国学生学费关系的散点图"
)
# ^ ?~? 符号相当于 y~x
m1 <- lm(Local.Tuition.... ~ Starting.Salary...., data = Asian) # @ 建立回归模型
abline(m1, lwd = 3, col = "darkorange")
dev.off()

png(file = "Asian_scatterplot_2.png")
plot(
  x = Asian$Starting.Salary...., y = Asian$Foreign.Tuitiion....,
  xlab = "起薪",
  ylab = "外国学生学费",
  xlim = c(6000, 88000),
  ylim = c(0, 31000),
  main = "起薪与外国学生学费关系的散点图"
)
m2 <- lm(Foreign.Tuitiion.... ~ Starting.Salary...., data = Asian) # @ 建立回归模型
abline(m2, lwd = 3, col = "darkorange")
dev.off()

从两幅图中可知,学生学费和起薪呈正相关,本国学生学费和起薪的相关系数为0.79,外国学生学费和起薪的相关系数为0.67。


其他图形-起薪频率分组

# ^起薪频率分组
typeTable3 <- within(Asian, {
  group1 <- NA
  group1[Starting.Salary.... >= 7000 & Starting.Salary.... < 23000] <- "[7000~23000)"
  group1[Starting.Salary.... >= 23000 & Starting.Salary.... < 39000] <- "[23000~39000)"
  group1[Starting.Salary.... >= 39000 & Starting.Salary.... < 55000] <- "[39000~55000)"
  group1[Starting.Salary.... >= 55000 & Starting.Salary.... < 71000] <- "[55000~71000)"
  group1[Starting.Salary.... >= 71000 & Starting.Salary.... <= 87000] <- "[71000~87000]"
})
typeTable4 <- table(typeTable3$group1)
typeTable4 <- prop.table(typeTable4) * 100
# @ 默认按字符串排序,重新排列表格列
typeTable4 <- typeTable4[c(4, 1, 2, 3, 5)]
print(as.data.frame(typeTable4))
png(file = "Asian_barplot.png")
par(mar = c(10, 4, 4, 0))
barplot(typeTable4,
  main = "起薪频率分组条形图",
  xlab = "", ylab = "频率", las = 2, col = rainbow(25)
)
dev.off()
           Var1 Freq
1  [7000~23000)   36
2 [23000~39000)   12
3 [39000~55000)   28
4 [55000~71000)   16
5 [71000~87000]    8

从图中可知起薪分组频率分布形态适度右偏。[7000~23000)区间薪水居多,其次是是[39000~55000]区间。


资料

ggplot2折线图

ggplot2 line plot : Quick start guide - R software and data visualization - Easy Guides - Wiki - STHDA文章来源地址https://www.toymoban.com/news/detail-807379.html

到了这里,关于R语言、03 案例3-3 亚太地区商学院、《商务与经济统计》案例题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用VSCode内的jupyter编写R语言:绘制中国省份地区热力图

    对于一门从未接触过的编程语言,相信大家的吐槽点和我一样:又要安装软件,配置环境!其实R语言的安装和环境配置并不复杂,只需要安装两部分内容:R语言+编辑器,关于R语言的安装,大家可以去看这个教程,这哥们儿写的不错https://blog.csdn.net/xhmico/article/details/12244366

    2024年01月17日
    浏览(50)
  • 【性能测试】03-JMeter使用案例

    (1)步骤 (2)乱码解决 sampleresult.default.encoding=UTF-8 (3)请求响应不一致问题 当发送www.jd.com的http请求时,查看结果树看到的发送消息和HTTP取样器中配置的不完全一样? 原因分析: 查看结果数中 最外层HTTP请求 的 请求信息和响应信息,应该与 子节点中最后一个 HTTP请求的

    2024年02月06日
    浏览(36)
  • 学生管理系统-03项目案例(3)

    一、用户列表 1、编写api接口 2、表格渲染 3、分页 4、搜索功能 首先在data中的query对象中添加type和value属性 页面中进行布局 5、注册 略 6、修改用户 在api接口中编写修改方法 为编辑按钮绑定事件 在data中定义 在methods中定义一个修改方法 使用深浅拷贝解决修改中的一个问题

    2024年02月15日
    浏览(42)
  • 03-zookeeper节点动态上下线案例

    在分布式系统中,主节点可以有多台,可以动态上下线,任意一台客户端都能实时感知到主节点服务器的上下线。 客户端能实时洞察到服务器上下线的变化 基本流程: ​ 1.服务端启动时去注册信息(创建的都是临时节点) ​ 2.客户端获取到当前在线服务器列表,并注册监听

    2024年02月09日
    浏览(36)
  • linux shell操作- 03 用户切换及shell案例

    linux是多用户的、多进程的操作系统,通常多个用户之间需要来回切换; su,switch user 命令 参数 - , 切换用户,同时切换工作目录(为目标用户的家目录) 参数 -c cmd,切换到目标用户,执行一条指令,然后切回原用户; 参数 -m -p ,保持原用户的环境变量; 参数 -l,重新登

    2024年02月06日
    浏览(42)
  • OpenCV-PyQT项目实战(8)项目案例03:鼠标定位

    欢迎关注『OpenCV-PyQT项目实战 @ Youcans』系列,持续更新中 OpenCV-PyQT项目实战(1)安装与环境配置 OpenCV-PyQT项目实战(2)QtDesigner 和 PyUIC 快速入门 OpenCV-PyQT项目实战(3)信号与槽机制 OpenCV-PyQT项目实战(4)OpenCV 与PyQt的图像转换 OpenCV-PyQT项目实战(5)项目案例01:图像模糊

    2024年02月10日
    浏览(51)
  • OpenCV-PyQT项目实战(7)项目案例03:鼠标框选

    欢迎关注『OpenCV-PyQT项目实战 @ Youcans』系列,持续更新中 OpenCV-PyQT项目实战(1)安装与环境配置 OpenCV-PyQT项目实战(2)QtDesigner 和 PyUIC 快速入门 OpenCV-PyQT项目实战(3)信号与槽机制 OpenCV-PyQT项目实战(4)OpenCV 与PyQt的图像转换 OpenCV-PyQT项目实战(5)项目案例01:图像模糊

    2024年01月20日
    浏览(41)
  • opencv案例03 -基于OpenCV实现二维码生成,发现,定位,识别

    废话不多说,直接上代码 运行效果: 会在当前目前生成一张图片 对生成的二维码识别 opencv从4代之后推出了二维码识别接口.调用方法是这样的.代码如下: 运行结果: 返回值有三个, 第一个result就是解码后的内容,例如我这个二维码的结果是\\\"B0018\\\",当然也可以是个纯数字. 第二

    2024年02月11日
    浏览(47)
  • 黑马程序员《PHP基础案例教程》第2版课后练习—第03章

    答案均参考教材官方发布的PPT,以下是下载PPT的页面 人民邮电出版社教育社区:PHP基础案例教程(第2版)-图书-人邮教育社区 1、定义函数使用的为(function)。 2、用于对字符串中的某些字符进行替换操作的函数是(str_replace())。 3、使用(strlen())函数可以获取字符

    2024年01月18日
    浏览(49)
  • elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游案例实战)

    文档的查询同样适用昨天学习的 RestHighLevelClient对象,基本步骤包括: 1)准备Request对象 2)准备请求参数 3)发起请求 4)解析响应 我们以match_all查询为例 3.1.1.发起查询请求 代码解读: 第一步,创建 SearchRequest 对象,指定索引库名 第二步,利用 request.source() 构建DSL,DSL中可

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包