数据分析的任务是对样本数据进行分析,提取数据中包含的有用信息。数据的信息借助数据的主要特征展示出来,这些特征包括数据的集中位置,分散程度和数据分布等。
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≤p<1, p 分位点定义为
0.75 分位数与 0.25 分位数(第75百分位数与第25百分位数),分别称为上、下四分位数,记为 Q3=m0.75 , Q1=m0.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) 是样本相对于均值的偏差平方和的平均,记为 s2
R 计算方差
var(x, y = NULL, na.rm = FALSE, use)
- x: 数据向量
- y: 指定数据维度
- na.rm: 是否处理带有缺失值的向量
- use: 指定计算方式
样本标准差
样本标准差 (standard deviation),是样本方差的开方,记为 s
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: 数据向量
四分位差
四分位差 (或称半极差) 是样本上下四分位数之差,记为 R1
对于具有特异值得数据,四分位差比极差更有稳健性。
R 计算四分位差
quantile(x, 0.75) - quantile(x, 0.25)
- x: 数据向量
标准误
也称为标准误差,方差除以样本大小的开方
R 计算标准误
sd(x)/sqrt(length(x))
- x: 数据向量
3. 分布形状度量
描述分布偏离对称性程度的指标有偏度系数和峰度系数。
偏度系数
偏度系数是刻画数据的对称性指标,记为 g1
s 是标准差, μ3 是样本 3阶中心矩,μ3=1n∑ni=1(xi−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: 数据向量
峰度系数
峰度系数是用来分布曲线顶端尖峭或扁平程度的指标,记为 g2
s 是标准差, μ4 是样本 4阶中心矩, μ4=1n∑ni=1(xi−x⎯⎯)4
当数据的总体分布为正态分布时,峰度系数为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.