1. 程式人生 > >R-基本統計分析--描述性統計分析

R-基本統計分析--描述性統計分析

及其 pre dice 數據集 returns length 平均值 sun 52.0

描述性統計分析主要包括

  • 基本信息:樣本數、總和
  • 集中趨勢:均值、中位數、眾數
  • 離散趨勢:方差(標準差)、變異系數、全距(最小值、最大值)、內四分位距(25%分位數、75%分位數)
  • 分布描述:峰度系數、偏度系數

不分組描述性統計

該數據采用R自帶數據集mtcars進行分析,可在R編輯器直接輸入得到該數據集內容

1.1、自帶summary函數

myvars <- c("mpg", "hp", "wt")
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

1.2、pastecs包的stat.sesc函數

install.packages("pastecs")
library(pastecs)
myvars <- c("mpg", "hp", "wt")
stat.desc(mtcars[myvars],basic = TRUE,desc=TRUE,norm=TRUE,p=0.95)  #給出基本信息,集中趨勢,離散趨勢,偏度系數,峰度系數--基本覆蓋所有描述性統計分析要求
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
  • 參數basic為T時將給出以下統計量:
總數值個數(NBR.VAL),空值的數目(NBR. NULL), 數目缺失值(NBR.NA),最小值(min),最大值(max), 範圍(範圍,即max min)和所有非缺失值之和(和)
  • 參數desc為T時將給出以下統計量:
中位數(median),平均值(mean), 標準誤差平均(SE.mean),P水平均值(CI.mean)的置信區間, 方差(Var)、標準差(std.dev) 和變異系數(coef.var)定義為標準差除以平均值。
  • 參數norm為T時將給出以下統計量:
偏度系數G1(skeness),其顯著判據(skew.2SE),即 是,G1/2.SEG1;如果SkW.2SE>1,則偏度顯著不同於 零)峰度系數G2(kurtosis)及其顯著判據(Kurt.2SE) 以及夏皮羅的Wikk檢驗的兩個統計量 標準檢驗.W(normtest.W)及其相關概率標準檢驗p(normtest.p) 2018/10/27 16:28

分組描述性統計分析

2.1、單一分組

vars<-c("mpg","hp","wt")
aggregate(mtcars[vars],by=list(am=mtcars$am),mean)    #采用aggregate側重於計算某個統計量
aggregate(mtcars[vars],by=list(am=mtcars$am),sd)
> aggregate(mtcars[vars],by=list(am=mtcars$am),mean) am mpg hp wt 1 0 17.14737 160.2632 3.768895 2 1 24.39231 126.8462 2.411000 > aggregate(mtcars[vars],by=list(am=mtcars$am),sd) am mpg hp wt 1 0 3.833966 53.90820 0.7774001 2 1 6.166504 84.06232 0.6169816

2.2、自動分組(14個統計指標)

library(psych)
describeBy(mtcars[vars],mtcars$am,mat=T,digits = 3)    #psych包中的describeBy函數能給出14個分組計算指標
describeBy(mtcars[vars],mtcars$am,mat=F)               #describeBy函數給出特定輸出結果便於分析
> describeBy(mtcars[vars],mtcars$am,mat=T,digits = 3) item group1 vars n mean sd median trimmed mad min max range skew kurtosis se mpg1 1 0 1 19 17.147 3.834 17.30 17.118 3.113 10.400 24.400 14.000 0.014 -0.803 0.880 mpg2 2 1 1 13 24.392 6.167 22.80 24.382 6.672 15.000 33.900 18.900 0.053 -1.455 1.710 hp1 3 0 2 19 160.263 53.908 175.00 161.059 77.095 62.000 245.000 183.000 -0.014 -1.210 12.367 hp2 4 1 2 13 126.846 84.062 109.00 114.727 63.752 52.000 335.000 283.000 1.360 0.563 23.315 wt1 5 0 3 19 3.769 0.777 3.52 3.748 0.452 2.465 5.424 2.959 0.976 0.142 0.178 wt2 6 1 3 13 2.411 0.617 2.32 2.387 0.682 1.513 3.570 2.057 0.210 -1.174 0.171 > describeBy(mtcars[vars],mtcars$am,mat=F) Descriptive statistics by group group: 0 vars n mean sd median trimmed mad min max range skew kurtosis se mpg 1 19 17.15 3.83 17.30 17.12 3.11 10.40 24.40 14.00 0.01 -0.80 0.88 hp 2 19 160.26 53.91 175.00 161.06 77.10 62.00 245.00 183.00 -0.01 -1.21 12.37 wt 3 19 3.77 0.78 3.52 3.75 0.45 2.46 5.42 2.96 0.98 0.14 0.18 ----------------------------------------------------------------------------------------- group: 1 vars n mean sd median trimmed mad min max range skew kurtosis se mpg 1 13 24.39 6.17 22.80 24.38 6.67 15.00 33.90 18.90 0.05 -1.46 1.71 hp 2 13 126.85 84.06 109.00 114.73 63.75 52.00 335.00 283.00 1.36 0.56 23.31 wt 3 13 2.41 0.62 2.32 2.39 0.68 1.51 3.57 2.06 0.21 -1.17 0.17 Usage describeBy(x, group=NULL,mat=FALSE,type=3,digits=15,...) describe.by(x, group=NULL,mat=FALSE,type=3,...) # deprecated x表示數據集 group要進行的分組值 Mat是否采用矩陣輸出(很有用) digits僅在采用矩陣輸出時可選默認保留15位小數 type 偏斜度和峰度類型(不用管)

2.3、自定義分組指標(自定義函數,多個分組指標)

mystats <- function(x, na.omit=FALSE){     #自定義計算所需特定統計值
  if (na.omit)
    x <- x[!is.na(x)]
  m <- mean(x)
  n <- length(x)
  s <- sd(x)
  skew <- sum((x-m)^3/s^3)/n
  kurt <- sum((x-m)^4/s^4)/n - 3
  return(c(n=n, mean=m, stdev=s, skew=skew, kurtosis=kurt))
}
 
dstats <- function(x)sapply(x, mystats)     
myvars <- c("mpg", "hp", "wt")          #給出特定數據框計算列的(標號),在by的data裏作為下標
by(mtcars[myvars], mtcars$am, dstats)   #將data數據框按照indces進行分組,具體計算采用自定義函數dstats
> 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

Usage

by(data, INDICES, FUN, ..., simplify = TRUE) data: 一般是數據框或矩陣。an R object, normally a data frame, possibly a matrix. INDICES:一個因子或一覽表,每行長度n行。 FUN:應用於(通常是數據幀)數據子集的函數。 simplify:logical; if FALSE, tapply always returns an array of mode "list"; in other words, a list with a dim attribute. If TRUE (the default), then if FUN always returns a scalar, tapply returns an array with the mode of the scalar.(不常用) > 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 > mtcars$am [1] 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 > class(mtcars[myvars]) [1] "data.frame" > class(mtcars$am) [1] "numeric" 關於R的描述性統計,這些包與函數基本覆蓋所有的使用範圍,還有幾個包沒有列入,筆者進行了適當篩選。 歡迎熱心網友討論,學習! 2018-10-28 具體統計函數指標及其含義可參看博友(傳送門)

R提高篇(五): 描述性統計分析 - 天戈朱 - 博客園
https://www.cnblogs.com/tgzhu/p/5961176.html

R-基本統計分析--描述性統計分析