熱線電話:13121318867

登錄
首頁大數據時代在R中用箱形圖做組間比較
在R中用箱形圖做組間比較
2021-09-07
收藏

來源:丁點幫你

作者:丁點helper

之前的文章講了如何用R繪制箱形圖,以此來幫助我們了解數據的整體分布情況、是否存在異常值。除此之外,箱形圖還可以進行數據的組間比較。

分組變量的數據清理

多重線性回歸,一般是指有多個自變量X,只有一個因變量Y。前面我們主要是以簡單線性回歸為例在介紹,兩者的差距主要在于自變量X的數量,在只有一個X時,就稱簡單線性回歸。

本次我們用到的是學生的課堂調查數據,包括了性別、年級、專業、身高、最喜歡的動物(講數據清理時用的是這個變量,還記得嗎)等變量。數據名:survey.csv,數據鏈接:

首先導入數據,存入survey這個數據集中:

survey <- read.csv("http://Users//Desktop//survey.csv", 
                     header = TRUE) # 獲取數據中包含的變量名 names(survey)
 [1] "ClassProb" "Status" "Year" "Division" "Gender" "HtCm" "Hand" "Haircut" "Exercise" [10] "Coursework" "Web" "TV" "Social" "Econ" "Animal" "Friends" "Pulse"

接下來我們以Gender作為分組依據,先來看看這個變量的情況。

table(survey$Gender) Choose not to answer Female Gender non-conforming Male 1 1 117 1 118 

我們發現,除了female和male,有的同學回答了Choose not to answer,Gender non-conforming,還有同學什么都沒填,空缺。

今天我們暫時將這三種特殊情況從數據中刪去。

# 查看針對Gender這個變量,同學們有幾類回答 levels(survey$Gender)
[1] "" "Choose not to answer" "Female" "Gender non-conforming" "Male" 

在這五類回答中,我們想保留的是第3、第5類。也就是說,僅保留Gender為"Female" 或 "Male"的記錄。

# 把更新后的數據存儲在survey2這個對象中 survey2 <- survey[survey$Gender %in% levels(survey$Gender)[c(3,5)],]

這里,a %in%b的作用是,用a中的元素去匹配b中的任意元素,如果匹配成功,則返回結果為TRUE,反之,則結果為FALSE。

此時,上面的語句就簡化為如下所示,c()里面是TRUE和FALSE的集合,是a中每個元素與b匹配的結果。

survey2 <- survey[c(),] # 這是為了便于理解寫的簡化語句,不能夠運行的

survey2中僅保留了匹配結果為TRUE的記錄:

table(survey2$Gender) Choose not to answer Female Gender non-conforming Male 0 0 117 0 118 

哎?雖然記錄被刪了,但Gender中之前包含的五個類都還在,用下面的droplevels()這個函數刪掉那些沒有記錄的類。

survey2$Gender <- droplevels(survey2$Gender)
table(survey2$Gender)
Female   Male 
   117    118

繪制整體和各組數據的箱形圖

多重線性回歸,一般是指有多個自變量X,只有一個因變量Y。前面我們主要是以簡單線性回歸為例在介紹,兩者的差距主要在于自變量X的數量,在只有一個X時,就稱簡單線性回歸。

數據清理好之后,我們以身高HtCm這個變量為例,先用之前講過的方法繪制箱形圖,了解改變量的整體分布,然后對比性別之間的身高差異。

boxplot(survey2$HtCm, main="Boxplot of Ht in cm",          col='orange', lwd=2)
在R中用箱形圖做組間比較

一目了然,我們調查的是大學學生,卻出現了身高小于100厘米的情況,不符合常理?,F在去檢查一下原始數據。

sort(survey2$HtCm) # 將身高從小到大排序
在R中用箱形圖做組間比較

部分結果截圖

實際操作中,大家要盡量核實那些極端身高數據的真實情況,修正數據。這里我們為便于教學,直接把那些小于100厘米的身高值記錄為缺失。

然后利用整理后的身高數據繪制箱形圖。

survey2$HtCm[survey2$HtCm < 100 ] <- NA
 boxplot(survey2$HtCm, main="Boxplot of Ht in cm", 
          col='orange', lwd=2)
在R中用箱形圖做組間比較

最后繪制不同性別學生的身高箱形圖。

boxplot(survey2$HtCm~survey2$Gender, 
         main="Boxplot of Ht in cm", 
         col=c(2,3), lwd=2)
在R中用箱形圖做組間比較

由圖可知,男生的身高基本都高于女生。將兩個箱形圖放在一起,可以清晰地看到兩組變量的大致情況,便于給兩組做粗略的比較。

但是這男女生身高到底有沒有統計學上的差異,肉眼是很難得出結論的,統計學上怎么做呢?

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢