數據的分布特征:
- 分布的集中趨勢,反應各數據向其中心值靠攏或聚集的程度(平均數,中位數,四分位數,眾數)
- 分布的離散程度,反應各數據遠離其中心值的趨勢(極差,四分位差,方差,標准差,離散系數)
- 分布的形狀,反應數據分布的偏斜程度和峰度(偏態系數,峰度系數)
#######################
平均數(均值):一組數據相加后除以數據的個數而得到結果,稱為平均數(mean)
中位數:一組數據排序后處於中間位置上的變量值,稱為中位數(median)
四分位數:一組數據排序后處於25%(下四分位數)和75%(上四分位數)位置上的值,稱為四分位數
- 先計算位置,然后計算四分位數的值。50%處即為中位數
眾數:一組數據中出現頻數最多的數值(mode)
#######################
極差(全距):一組數據的最大值與最小值之差,稱為極差(range)
四分位差:上四分位數與下四分位數之差,稱為四分位差
平均差:各變量值與其平均數離差絕對值的平均數,稱為平均差
方差:各變量值與其平均數離差平方的平均數,稱為方差(variance)
標准差:方差的平方根稱為標准差()
離散系數:
########################
偏態:數據分布的不對稱性,稱為偏態
峰態:數據分布的平峰或尖峰程度,稱為峰態
#########################
描述性統計量:主要包括分布的集中程度,分布的離散程度和分布的偏斜程度。
方法一:summary()函數——最大值,最小值,四分位數(上,下),均值
summary(mtcars) #結果有以下幾條
1 vars<-c('mpg','hp','wt') 2 head(mtcars[vars])
summary(mtcars[vars])
方法二:sapply()函數 #
1 mystats<-function(x,na.omit=FALSE){ 2 if(na.omit) 3 x<-x[!is.na(x)] 4 m<-mean(x) 5 n<-length(x) 6 s<-sd(x) 7 skew<-sum((x-m)^3/s^3)/n 8 kurt<-sum((x-m)^4/s^4)/n 9 return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt)) 10 } 11 sapply(mtcars[vars], mystats)
方法三:通過Hmisc包中的describe()函數——變量和觀測的數量,缺失值和唯一值的數目、平均數,分位數,以及5個最大的值,和5個最小的值
1 library(Hmisc) 2 describe(mtcars[vars])
方法四:通過pastecs包中的stat.desc()函數計算描述性統計量
stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,P=0.95)
x是一個數據框或時間序列。
basic=TRUE(默認值),則計算其中所有值、空值、缺失值的數量,以及最小值、最大值、值域,還有總和。
desc=TRUE(默認值),則計算中位數、平均數、平均數的標准誤、平均數置信度為95%的置信區間、方差、標准差以及變異系數。
norm=TRUE(非默認),則返回正態分布統計量,包括偏度和峰度(以及它們的統計顯著程度)和Shapiro–Wilk正態檢驗結果。
這里使用了p值來計算平均數的置信區間(默認置信度為0.95)。
1 library(pastecs) 2 stat.desc(mtcars[vars])
方法五:通過psych包中的describe()函數——非缺失值的數量、平均數、標准差、中位數、截尾均值、絕對中位差、最小值、最大值、值域、偏度、峰度和平均值的標准誤
1 library(psych) 2 describe(mtcars[vars])
以上方法都是為整體的數據計算描述性統計量