R小姐:描述性統(tǒng)計(jì)分析


往期文章中,我們已經(jīng)學(xué)會了使用圖形探索數(shù)據(jù),例如可以用條形圖了解類別變量的分布,用堆砌條形圖或分組條形圖比較不同類別的組間差異。同時(shí),我們也學(xué)會了使用直方圖、密度圖、箱線圖以及點(diǎn)圖了解連續(xù)型變量的分布,比較組間差異。

而圖形探索數(shù)據(jù)之后,通常的做法是進(jìn)行描述性統(tǒng)計(jì)分析。

本期的R語言實(shí)現(xiàn)過程較為簡單,但重要的是理解各個(gè)統(tǒng)計(jì)量的意義,統(tǒng)計(jì)量數(shù)值的大小能說明什么問題?

大家看的愉快。

1

數(shù)據(jù)集

本期使用Motor Trend雜志的車輛路試(mtcars)數(shù)據(jù)集。我們關(guān)注的變量是每加侖汽油行駛的英里數(shù)(mpg)、馬力(hp)、車重(wt)。

#創(chuàng)建一個(gè)自己想調(diào)取的變量集
myvars <- c('mpg','hp','wt')
#查看所需數(shù)據(jù)集
head(mtcars[myvars])

|
| mpg | hp | wt |
| --- | --- | --- | --- |
| Mazda RX4 | 21.0 | 110 | 2.620 |
| Mazda RX4 Wag | 21.0 | 110 | 2.875 |
| Datsun 710 | 22.8 | 93 | 2.320 |
| Hornet 4 Drive | 21.4 | 110 | 3.215 |
| Hornet Sportabout | 18.7 | 175 | 3.440 |
| Valiant | 18.1 | 105 | 3.460 |

2

入門

我們首先從基礎(chǔ)安裝包入手,利用summary( )函數(shù)獲取統(tǒng)計(jì)量。

#創(chuàng)建一個(gè)自己想調(diào)取的變量集
myvars <- c('mpg','hp','wt')
#查看所需數(shù)據(jù)集
summary(mtcars[myvars])
mpg hp wt
Min. :10.40 Min. : 52.0 Min. :1.513
1st Qu.:15.43 1st Qu.: 96.5 1st Qu.:2.581
Median :19.20 Median :123.0 Median :3.325
Mean :20.09 Mean :146.7 Mean :3.217
3rd Qu.:22.80 3rd Qu.:180.0 3rd Qu.:3.610
Max. :33.90 Max. :335.0 Max. :5.424

summary( )函數(shù)提供了最小值、最大值、四分位數(shù)和數(shù)值型變量的均值,以及因子和邏輯型變量的頻數(shù)統(tǒng)計(jì)。我們也可以使用apply( )函數(shù)或sapply( )函數(shù)計(jì)算選擇的任意統(tǒng)計(jì)量。

他們的使用格式為:sapply( x, FUN, options)

其中 x 是你的數(shù)據(jù)框,F(xiàn)UN是任意函數(shù)。如果指定了options,他們將被傳遞給FUN。例如你可以在這里插入mean( ),sd( ),var( ),min( ),max( ),median( ),length( ),range( ),quantile( )。函數(shù)fivenum( )可以返回圖基五總數(shù)(最小值、下四分位數(shù),中位數(shù)、上四分位數(shù)、最大值)。

#創(chuàng)建一個(gè)計(jì)算函數(shù)FUN
#將行刪除設(shè)為FALSE
mystats <- function(x,na.omit=F){
  #如果存在缺失值
  if(na.omit)
    #找一個(gè)不缺失數(shù)據(jù)填補(bǔ)那個(gè)缺失值
    x <- x(!is.na(x))
  #計(jì)算均值
  m <- mean(x)
  #計(jì)算變量長度
  n <- length(x)
  #計(jì)算標(biāo)準(zhǔn)差
  s <- sd(x)
  #計(jì)算偏度
  skew <- sum((x-m)^3/s^3)/n
  #計(jì)算峰度
  kurt <- sum((x-m)^4/s^4)/n - 3
  #返回計(jì)算數(shù)據(jù)
  return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))
}
#計(jì)算所選統(tǒng)計(jì)量
sapply(mtcars[myvars],mystats)
mpg hp wt
n 32.000000 32.0000000 32.00000000
mean 20.090625 146.6875000 3.21725000
stdev 6.026948 68.5628685 0.97845744
skew 0.610655 0.7260237 0.42314646
kurtosis -0.372766 -0.1355511 -0.02271075

對于mpg來說,其偏度(skew)為+0.6,分布呈現(xiàn)右偏;峰度(kurtosis)為-0.37,比正態(tài)分布稍平。

3

進(jìn)階

pastecs包中的stat.desc( )函數(shù)能返回種類繁多的描述性統(tǒng)計(jì)量。

使用格式為:

stat.desc(x,basic=T,desc=T,norm=F,p=0.95)

其中 x 代表數(shù)據(jù)框,basic默認(rèn)值為TRUE,計(jì)算所有值、空值、缺失值的數(shù)量、最大值、最小值、值域、總和。desc默認(rèn)值為TRUE,計(jì)算中位數(shù)、均值、均值的標(biāo)準(zhǔn)誤差、均值置信度為95%的置信區(qū)間、方差、標(biāo)準(zhǔn)差、變異系數(shù)。若norm=TRUE,返回偏度和峰度(以及他們的統(tǒng)計(jì)顯著程度)、Shapiro-Wilk正態(tài)檢驗(yàn)結(jié)果。

install.packages('pastecs')
library('pastecs')
stat.desc(mtcars[myvars],norm = T)
mpg hp wt
nbr.val 32.0000000 32.00000000 32.00000000
nbr.null 0.0000000 0.00000000 0.00000000
nbr.na 0.0000000 0.00000000 0.00000000
min 10.4000000 52.00000000 1.51300000
max 33.9000000 335.00000000 5.42400000
range 23.5000000 283.00000000 3.91100000
sum 642.9000000 4694.00000000 102.95200000
median 19.2000000 123.00000000 3.32500000
mean 20.0906250 146.68750000 3.21725000
SE.mean 1.0654240 12.12031731 0.17296847
CI.mean.0.95 2.1729465 24.71955013 0.35277153
var 36.3241028 4700.86693548 0.95737897
std.dev 6.0269481 68.56286849 0.97845744
coef.var 0.2999881 0.46740771 0.30412851
skewness 0.6106550 0.72602366 0.42314646
skew.2SE 0.7366922 0.87587259 0.51048252
kurtosis -0.3727660 -0.13555112 -0.02271075
kurt.2SE -0.2302812 -0.08373853 -0.01402987
normtest.W 0.9475647 0.93341934 0.94325772
normtest.p 0.1228814 0.04880824 0.09265499

4

精通

對于有類別型變量的數(shù)據(jù)來說,我們往往需要分組計(jì)算統(tǒng)計(jì)量。

by( data ,* INDICES *, FUN)

其中data代表數(shù)據(jù)框,INDICES是一個(gè)因子,FUN是任意函數(shù)

#調(diào)用mystats中的所有函數(shù)
dstats <- function(x)sapply(x,mystats)
#傳遞dstats并進(jìn)行分組
by(mtcars[myvars],mtcars$am,dstats)
mtcars$am: 0
mpg hp wt
n 19.00000000 19.00000000 19.0000000
mean 17.14736842 160.26315789 3.7688947
stdev 3.83396639 53.90819573 0.7774001
skew 0.01395038 -0.01422519 0.9759294
kurtosis -0.80317826 -1.20969733 0.1415676
mtcars$am: 1
mpg hp wt
n 13.00000000 13.0000000 13.0000000
mean 24.39230769 126.8461538 2.4110000
stdev 6.16650381 84.0623243 0.6169816
skew 0.05256118 1.3598859 0.2103128
kurtosis -1.45535200 0.5634635 -1.1737358

今天的文章就到這里,最關(guān)鍵的還是數(shù)學(xué)方面的理解。

祝福冰姐又老了一歲,謝謝各位。

下期再見。

你可能還想看

等你很久啦,長按加入古同社區(qū)

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容