概述
位置度量
均值 mean()
mean(x, trim=0, na.rm=FALSE)
函数的返回值是对象的均值
参数 | 描述 |
---|---|
x | 对象(向量、矩阵、数组、数据框) |
trim | 时计算均值前去掉与均值差较大数据的比例, 缺省值为0,即包括全部数据 |
na.rm = TRUE | 允许数据中有缺失数据 |
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)
向量的均值
w.mean <- mean(w); w.mean
参数 trim
取值在 0 至 0.5 之间,标识在计算均值需要去掉异常值的比例.利用这个参数可以有效的改善异常值的对计算的影响
w[1] <- 750
w.mean <- mean(w, trim=0.1); w.mean
参数 na.rm
是控制数据的参数
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, NA);w
w.mean <- mean(w,na.rm); w.mean
矩阵(数组)的均值
矩阵的行均值
矩阵的列均值
加权平均值 weighted.mean()
weighted.mean(x,w,na.rm=FALSE)
x是数组向量,w是数据的权,与x的维数相同
A <- c(80,90,95);A
B <- c(0.2,0.3,0.5);B
顺序统计量 sort()
设n个数据(观测值)按从大到小的顺序排列为 x 1 ≤ x 2 ≤ ⋯ ≤ x n x_{1} le x_{2} le dots le x_{n} x1≤x2≤⋯≤xn 称为顺序统计量(order statistic), 显然,最小顺序统计量为 x 1 x_{1} x1, 最大顺序统计量为 x n x_{n} xn
sort(x, partial=NULL, na.last=NA, decreasing=FALSE, method=c("shell","quick"), index.return=FALSE)
参数 | 描述 |
---|---|
x | 数值、字符、逻辑型向量 |
partial | 是部分排序的指标向量 |
na.last | 是控制缺失数据的参数 na.last=NA(默认) 不处理缺失数据 na.last=TRUE , 缺失数据排在最后 na.last=FALSE , 缺失数据排在最前面 |
decreasing | 是逻辑变量,控制数据排列的顺序 decreasing=FALSE(默认) , 由小到大排序的返回值 decreasing=TRUE , 由大到小排序的返回值 |
method | 是排序的方法 method="shell"(默认) ,选择Shell排序法排序,运算量为
O
(
n
4
/
3
)
O(n^{4/3})
O(n4/3) method="quick" , 则采用快速排序法排序,对于数值型向量,快速排序法的运算量一般要低于Shell排序法 |
index.return | 是逻辑变量,控制排序下标的返回值 index.return = TRUE , 函数的返回值是一列表,列表的第一变量 $x 是排序的顺序,第二个变量是 $ix 是排序顺序的下标对应的值 index.return = FALSE(默认) |
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)
由大到小排序
sort(w, decreasing=TRUE)
含 NA
值 排序
w.na <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, NA, 66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
排序相关函数 order()
与 rank()
order()
给出排序后的下标
rank()
给出样本的秩统计量
中位数 median()
中位数(median, 记为
m
e
m_e
me),定义为数据排序位于中间位置的值
f
(
x
)
=
{
x
(
n
+
1
2
)
,
当n为奇数时
1
2
(
x
(
n
2
)
+
x
(
n
2
+
1
)
)
当n为偶数时
f(x)= begin{cases} x_{(frac{n+1}{2})}, & text{当n为奇数时}\ frac{1}{2}(x_{(frac{n}{2})}+x_{(frac{n}{2} +1)})& text{当n为偶数时} end{cases}
f(x)={x(2n+1),21(x(2n)+x(2n+1))当n为奇数时当n为偶数时
中位数特点
描述数据中心位置的数据特征
- 对于对称分布的数据特征,均值与中位数比较接近
- 对于偏态分布的数据,均值与中位数不同
- 中位数的显著特点是不受异常值的影响
median(x, na.rm=FALSE)
参数 | 描述 |
---|---|
x | 数值向量 |
na.rm | 是逻辑变量 na.rm=TRUE , 函数可以处理带有缺失数据的向量 na.rm=FALSE(默认) , 函数不能处理带有缺失数据的向量 |
x <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5)
median(x)
对含有缺失值的向量取中位值
x.na <- c(75.0, 64.0, 47.4,NA, 66.9, 62.2, 62.2, 58.7, 63.5)
median(x.na)
median(x.na, na.rm = TRUE)
百分位数 quantile()
百分位数(percentile)是中位数的推广. 将数据按从小到大排列后,对于
0
≤
p
<
1
0 le p < 1
0≤p<1, 它的p分位点定义为
m
p
=
{
x
(
[
n
p
]
+
1
)
,
当np不是整数时,
1
2
(
x
(
n
p
)
+
x
(
n
p
+
1
)
)
当np是整数时,
m_p = begin{cases} x_{([np]+1)},& text{当np不是整数时,}\ frac{1}{2}(x_{(np)}+x_{(np+1)})& text{当np是整数时,} end{cases}
mp={x([np]+1),21(x(np)+x(np+1))当np不是整数时,当np是整数时,
其中
[
n
p
]
[np]
[np] 表示
n
p
np
np 的整数部分
- p分位数又称第100p百分位数,大体上整个样本的100p的观测值不超过p分位数
- 0.5分位数 m 0.5 m_{0.5} m0.5(第50百分位数)就是中位数 m e m_e me
- 0.75分位数 m 0.75 m_{0.75} m0.75(第75百分位数)就是上四分位数 m 0.75 m_{0.75} m0.75
- 0.25分位数 m 0.25 m_{0.25} m0.25(第25百分位数)就是下四分位数 m 0.25 m_{0.25} m0.25
quantile(x, probs = seq(0,1,0.25), na.rm = FALSE, names = TRUE, type = 7, ...)
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)
参数 | 描述 |
---|---|
x | 数值构成的向量 |
probs | 给出相应的百分位数 默认 0 , 1 4 , 1 2 , 3 4 , 1 0, frac{1}{4}, frac{1}{2}, frac{3}{4}, 1 0,41,21,43,1 |
na.rm | 是逻辑变量 na.rm=TRUE , 函数可以处理带有缺失数据的向量 na.rm=FALSE(默认) , 函数不能处理带有缺失数据的向量 |
quantile(w)
quantile(w, probs=seq(0,1,0.2))
分散程度
方差
方差(variance) 是描述数据取值分散性的一个度量
样本方差(sample variance) var()
样本方差(sample variance) 记为 s 2 s^2 s2, 是样本相对于均值的偏差平方和的平均 s 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 s^2 = frac{1}{n-1} sum^{n}_{i=1}(x_i - bar{x})^2 s2=n−11i=1∑n(xi−xˉ)2 其中 x ˉ bar{x} xˉ是样本的均值。
var(x, y=NULL, na.rm=FALSE, use)
参数 | 描述 |
---|---|
x | 数值向量、矩阵或数据框 |
na.rm | 是逻辑变量 na.rm=TRUE , 函数可以处理带有缺失数据的向量 na.rm=FALSE(默认) , 函数不能处理带有缺失数据的向量 |
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)
var(w)
样本标准差(standard deviation) sd()
样本标准差(standard deviation),记为 s s s,即 s = s 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 s = sqrt{s^2} = sqrt{ frac{1}{n-1}sum_{i=1}^{n}(x_i - bar{x})^2} s=s2=n−11i=1∑n(xi−xˉ)2
sd(x, na.rm=FALSE)
参数 | 描述 |
---|---|
x | 数值向量、矩阵或数据框 |
na.rm | 是逻辑变量 na.rm=TRUE , 函数可以处理带有缺失数据的向量 na.rm=FALSE(默认) , 函数不能处理带有缺失数据的向量 |
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)
sd(w)
变异系数(CV) 自编写函数
变异系数是刻划数据相对分散性的一种度量,记为 C V CV CV, C V = 100 × s x ˉ ( % ) CV=100times frac{s}{bar{x}}(%) CV=100×xˉs(%)
cv <- 100* sd(w) / mean(w); cv
样本校正平方(CSS) 自编写函数
C S S = ∑ i = 1 n ( x i − x ˉ ) 2 CSS = sum_{i=1}^{n}(x_i - bar{x})^2 CSS=i=1∑n(xi−xˉ)2
css <- sum((w-mean(w))^2); css
样本未校正平方(USS) 自编写函数
U S S = ∑ i = 1 n x i 2 USS = sum^{n}_{i=1}x_i^2 USS=i=1∑nxi2
uss <- sum(w^2); uss
极差 自编写函数
样本极差(记为R)
R
=
x
(
n
)
−
x
(
1
)
=
m
a
x
(
x
)
−
m
i
n
(
x
)
R=x_{(n)}-x_{(1)}=max(x)-min(x)
R=x(n)−x(1)=max(x)−min(x)
其中x是由样本构成的向量.
样本极差是描述样本分散性的数字特征.
当数据越分散,其极差越大.
Range <- max(w) - min(x); Range
半极差/四分位差 自编写函数
样本上、下四分位数之差称为四分位差(或半极差), 记为
R
1
R_1
R1, 即
R
1
=
Q
3
−
Q
1
R_1 = Q_3 - Q_1
R1=Q3−Q1
对于具有异常值的数据,对于分散性具有稳健性.
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)
quantile(w)
R1 <- quantile(w)[4] - quantile(w)[2]; R1
quantile(w,3/4) -quantile(w,1/4)
样本标准误 自编写函数
样本标准误,记为 S m S_m Sm 定义为 s m = 1 n ( n − 1 ) ∑ i = 1 n ( x i − x ˉ ) 2 = s n s_m = sqrt{ frac{1}{n(n-1)}sum_{i=1}^{n}(x_i - bar{x})^2} = frac{s}{sqrt{n}} sm=n(n−1)1i=1∑n(xi−xˉ)2=ns
sm <- sd(w) / (sqrt(length(w))); sm
分布形状的度量
偏度系数(Skewness) 自编写函数
样本的偏度系数,记为
g
1
g_1
g1的计算公式:
g
1
=
n
(
n
−
1
)
(
n
−
2
)
s
3
∑
i
=
1
n
(
x
i
−
x
ˉ
)
3
=
n
2
μ
3
(
n
−
1
)
(
n
−
2
)
s
3
g_1=frac{n}{(n-1)(n-2)s^3}sum_{i=1}^{n}(x_i - bar{x})^3=frac{n^2mu_3}{(n-1)(n-2)s^3}
g1=(n−1)(n−2)s3ni=1∑n(xi−xˉ)3=(n−1)(n−2)s3n2μ3
其中:
s
s
s 是标准差
μ
3
mu_3
μ3 是样本3阶中心矩, 即
μ
3
=
1
n
∑
i
=
1
n
(
x
i
−
x
ˉ
)
3
mu_3 = frac{1}{n} sum_{i=1}^{n}(x_i - bar{x})^3
μ3=n1i=1∑n(xi−xˉ)3
偏度系数是刻划数据的对称性指标
- 均值对称的数据,其 S k e w n e s s = 0 Skewness = 0 Skewness=0
- 右侧更分散的数据,其 S k e w n e s s > 0 Skewness > 0 Skewness>0
- 左侧更分散的数据,其 S k e w n e s s < 0 Skewness < 0 Skewness<0
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)
n <- length(w); n
m <- mean(w); m
s <- sd(w); s
g1 <- n/((n-1)*(n-2))*sum((w-m)^3)/s^3; g1
峰度系数(Kurtosis) 自编写函数
样本的峰度系数,记为
g
2
g_2
g2 的计算公式为:
g
2
=
n
(
n
+
1
)
(
n
−
1
)
(
n
−
2
)
(
n
−
3
)
s
4
∑
i
=
1
n
(
x
i
−
x
ˉ
)
4
−
3
(
n
−
1
)
2
(
n
−
2
)
(
n
−
3
)
=
n
(
n
+
1
)
μ
4
(
n
−
1
)
(
n
−
2
)
(
n
−
3
)
s
4
−
3
(
n
−
1
)
2
(
n
−
2
)
(
n
−
3
)
begin{aligned} g_2 &= frac{n(n+1)}{(n-1)(n-2)(n-3)s^4} sum_{i=1}^{n}(x_i-bar{x})^4- 3frac{(n-1)^2}{(n-2)(n-3)} \ &=frac{n(n+1)mu_4}{(n-1)(n-2)(n-3)s^4} - 3frac{(n-1)^2}{(n-2)(n-3)} \ end{aligned}
g2=(n−1)(n−2)(n−3)s4n(n+1)i=1∑n(xi−xˉ)4−3(n−2)(n−3)(n−1)2=(n−1)(n−2)(n−3)s4n(n+1)μ4−3(n−2)(n−3)(n−1)2
其中:
s
s
s 是标准差
μ
4
mu_4
μ4 是样本4阶中心矩, 即
μ
4
=
1
n
∑
i
=
1
n
(
x
i
−
x
ˉ
)
4
mu_4 = frac{1}{n} sum_{i=1}^{n}(x_i - bar{x})^4
μ4=n1i=1∑n(xi−xˉ)4
特点
- 当数据的总体分布为正态分布时, K u r t o s i s ≈ 0 Kurtosis approx 0 Kurtosis≈0
- 当分布较正态分布的尾部更分散时, K u r t o s i s > 0 Kurtosis > 0 Kurtosis>0,两侧极端数据较多
- 当分布较正态分布的尾部更聚拢时, K u r t o s i s < 0 Kurtosis < 0 Kurtosis<0,两侧极端数据较少
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)
n <- length(w); n
m <- mean(w); m
s <- sd(w); s
g2 <- ((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((w-m)^4)/s^4 - (3*(n-1)^2)/((n-2)*(n-3))); g2
编写一个综上的统计函数
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);
}
最后
以上就是优雅酸奶为你收集整理的R语言--(8)--描述统计量的全部内容,希望文章能够帮你解决R语言--(8)--描述统计量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复