R語言、03 案例3-3 亞太地區商學院、《商務與經濟統計》案例題

来源:https://www.cnblogs.com/linxiaoxu/archive/2022/10/18/16803917.html
-Advertisement-
Play Games

R語言之旅。原書P88頁案例3-3解答。根據描述統計量有什麼見解、本國學生和國外學生學費差別、工作經驗要求與否與起薪差別、英語測試要求與否與起薪差別、起薪與學費關係。 ...


  • 編程教材 《R語言實戰·第2版》Robert I. Kabacoff

  • 課程教材《商務與經濟統計·原書第13版》 (安德森)

P86、案例3-3 亞太地區商學院

image-20221017121956950


載入數據

已知數據集為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)

image-20221017125506184


根據描述統計量有什麼見解

image-20221017125524460

  • 總共有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) # 標題文字居中
  )

image-20221017150055371

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()

image-20221017140806696

從兩幅圖中可知,學生學費和起薪呈正相關,本國學生學費和起薪的相關係數為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

image-20221017135502509

從圖中可知起薪分組頻率分佈形態適度右偏。[7000~23000)區間薪水居多,其次是是[39000~55000]區間。


資料

ggplot2折線圖

ggplot2 line plot : Quick start guide - R software and data visualization - Easy Guides - Wiki - STHDA


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Spring與Dubbo整合原理與源碼分析 【1】註解@EnableDubbo @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented @EnableDubboConfig // @ ...
  • 您好,我是湘王,這是我的博客園,歡迎您來,歡迎您再來~ 為瞭解決標準Java I/O令人難以忍受的效率問題,從JDK1.4開始,NIO出現了(Non-blocking I/O,官方稱之為New I/O)。NIO不但新增加了許多全新的類,而且還對原來的很多類進行了改寫。之所以是NIO,是因為使用它的場 ...
  • 1.題目 給你一個整數數組 nums ,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 子數組 是數組中的一個連續部分。 示例 1: 輸入:nums = [-2,1,-3,4,-1,2,1,-5,4] 輸出:6 解釋:連續子數組 [4,-1,2,1] 的和最大,為 6 ...
  • mybatis-plugin插件執行原理 今天主要是在看mybatis的主流程源碼,其中比較感興趣的是mybatis的plugin功能,這裡主要記錄下mybatis-plugin的插件功能原理。 plugin集合列表:在構建SqlSessionFactory時,通過解析配置或者plugin-bean ...
  • 什麼是集合? 集合就是由若幹個確定的元素所構成的整體。例如,5只小兔構成的集合: 在數學中,我們經常遇到集合的概念。例如: ● 有限集合 ○ 一個班所有的同學構成的集合; ○ 一個網站所有的商品構成的集合; ● 無限集合 ○ 整數集合 ○ 有理數集合 ○ 實數集合 為什麼要在電腦中引入集合呢? 這 ...
  • 平常我們爬的評論、彈幕等等,數量又多又密,根本看不過來,這時候數據分析的作用來了,今天我們就試試用Python根據這些數據,來繪製詞雲圖進行熱詞分析。 知識點 文件讀寫 基礎語法 字元串處理 文件生成 數據構建 代碼展示 # 導入系統包 import platform from flask impo ...
  • 1、print() print()函數的作用是輸出數據到控制台,就是列印在你能看到的界面上。 2、return return語句[表達式]退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。 return作為腳本單獨運行時則需要print函數才能顯示,但是在交互模式下 ...
  • 使用這種分頁方式,好像是比jpa或者MyBatis自帶的分頁工具有更好的性能和安全性。 需要接收的參數 public ApiResponse getBlackList( @RequestParam(name = "pageSize", required = false) Integer pageSi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...