數據分析的任務是對樣本數據進行分析,提取數據中包含的有用信息。數據的信息藉助數據的主要特徵展示出來,這些特徵包括數據的集中位置,分散程度和數據分佈等。
1. 基本統計量
描述數據特徵的基本統計量有均值、順序統計量、中位數和百分位數。
均值
均值 (mean) 是數據的平均數, 描述數據取值的平均位置。
R 計算樣本均值
mean(x, trim = 0, na.rm = FALSE)
- x: 數據對象
- trim: 計算均值前去掉與均值差較大數據的比例
- na.rm: 是否允許數據中有缺失數據
順序統計量
排列順序統計量 (order statistic) 指 n 個數據按從小到大的順序。
R 數據排序, 返回排序後的數據
sort(x, decreasing = FALSE)
- x: 數據對象
- decreasing: 是否降序
R 數據排序,返回排序後的下標
order(x)
中位數
中位數 (median) 指數據排序位於中間位置的值. 中位數描述描述數據中心位置的數字特徵: 對稱分佈的數據, 均值與中位數比較接近,且中位數不受異常值的影響。
R 計算數據中位數
median(x, na.rm = FALSE
- x: 數據向量
- na.rm: 是否處理帶有缺失值的向量
百分位數
百分位數 (percentile),如果將一組數據從小到大排序,並計算相應的累計百分位,則某一百分位所對應數據的值就稱爲這一百分位的百分位數。對於
0.75 分位數與 0.25 分位數(第75百分位數與第25百分位數),分別稱爲上、下四分位數,記爲
R 計算百分位數
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE)
- x: 數據向量
- probs: 給出相應的百分數
- na.rm: 是否處理帶有缺失值的向量
quantile(w, 0.25)
計算下四分位數
quantile(w, 0.75)
計算上四分位數
2. 分散程度度量
表示數據分散(或變異) 程度的特徵量有方差、標準差、極差、四分位極差、變異係數和標準誤等。
方差
方差 (variance) 是描述數據取值分散性的一個度量。樣本方差 (sample variance) 是樣本相對於均值的偏差平方和的平均,記爲
R 計算方差
var(x, y = NULL, na.rm = FALSE, use)
- x: 數據向量
- y: 指定數據維度
- na.rm: 是否處理帶有缺失值的向量
- use: 指定計算方式
樣本標準差
樣本標準差 (standard deviation),是樣本方差的開方,記爲
R 計算樣本標準差
sd(x, na.rm = FALSE)
或者 sqrt(var(x))
- x: 數據向量
- na.rm: 是否處理帶有缺失值的向量
變異係數
變異係數是刻畫數據相對分散性的一種度量,記爲 CV
R 計算變異係數
sd(x) / mean(x) * 100
- x: 數據向量
極差
極差是最大值與最小值之間的差值,即最大值減最小值後所得之數據,記爲 R
樣本極差是描述樣本分散性的數字特徵,當數據越分散,其極差越大。
R 計算極差
max(x) - min(x)
- x: 數據向量
四分位差
四分位差 (或稱半極差) 是樣本上下四分位數之差,記爲
對於具有特異值得數據,四分位差比極差更有穩健性。
R 計算四分位差
quantile(x, 0.75) - quantile(x, 0.25)
- x: 數據向量
標準誤
也稱爲標準誤差,方差除以樣本大小的開方
R 計算標準誤
sd(x)/sqrt(length(x))
- x: 數據向量
3. 分佈形狀度量
描述分佈偏離對稱性程度的指標有偏度係數和峯度係數。
偏度係數
偏度係數是刻畫數據的對稱性指標,記爲
關於均值對稱的數據其偏度係數爲0,右側更分散的數據偏度係數爲正, 左側更分散的數據偏度係數爲負。
R 計算偏度係數
n<-length(x)
m<-mean(x)
s<-sd(x)
n/((n-1)*(n-2))*sum((x-m)^3)/s^3
- x: 數據向量
峯度係數
峯度係數是用來分佈曲線頂端尖峭或扁平程度的指標,記爲
當數據的總體分佈爲正態分佈時,峯度係數爲0; 當分佈較正態分佈的尾部更分散時(兩側極端數據較多),峯度係數爲正; 當兩側數據較正態分佈少時,峯度係數爲負.
R 計算峯度係數
n<-length(x)
m<-mean(x)
s<-sd(x)
((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4 - (3*(n-1)^2)/((n-2)*(n-3)))
- x: 數據向量
統計函數 R實現
data_outline.R
data_outline <- function(x){
n <- length(x) # 數據個數
m <- mean(x) # 均值
v <- var(x) # 方差
s <- sd(x) # 標準差
me <- median(x) # 中位數
cv <- 100*s/m # 變異係數
css <- sum((x-m)^2) # 樣本校正平方和
uss <- sum(x^2) # 樣本未校正平方和
R <- max(x)-min(x) # 極差
R1 <- quantile(x,3/4)-quantile(x,1/4) # 四分位差
sm <- s/sqrt(n) # 標準誤
g1 <- n/((n-1)*(n-2))*sum((x-m)^3)/s^3 # 偏度係數
g2 <- ((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4 - (3*(n-1)^2)/((n-2)*(n-3))) # 峯度係數
data.frame(
N=n,
Mean=m,
Var=v,
std_dev=s,
Median=me,
std_mean=sm,
CV=cv,
CSS=css,
USS=uss,
R=R,
R1=R1,
Skewness=g1,
Kurtosis=g2,
row.names=1
)
}
使用
> source("data_outline.R")
> w<-c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5, 66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
> data_outline(w)
參考文件
[1] 薛毅, 陳立萍. 統計建模與R軟件[M]. 清華大學出版社, 2007: 107-115.