我是靠谱客的博主 优雅酸奶,最近开发中收集的这篇文章主要介绍R语言--(8)--描述统计量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

位置度量

均值 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} x1x2xn 称为顺序统计量(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为偶数时
中位数特点
描述数据中心位置的数据特征

  1. 对于对称分布的数据特征,均值与中位数比较接近
  2. 对于偏态分布的数据,均值与中位数不同
  3. 中位数的显著特点是不受异常值的影响
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 0p<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 的整数部分

  1. p分位数又称第100p百分位数,大体上整个样本的100p的观测值不超过p分位数
  2. 0.5分位数 m 0.5 m_{0.5} m0.5(第50百分位数)就是中位数 m e m_e me
  3. 0.75分位数 m 0.75 m_{0.75} m0.75(第75百分位数)就是上四分位数 m 0.75 m_{0.75} m0.75
  4. 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=n11i=1n(xixˉ)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 =n11i=1n(xixˉ)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=1n(xixˉ)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=1nxi2

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=Q3Q1
对于具有异常值的数据,对于分散性具有稳健性.

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(n1)1i=1n(xixˉ)2 =n s

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=(n1)(n2)s3ni=1n(xixˉ)3=(n1)(n2)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=1n(xixˉ)3
偏度系数是刻划数据的对称性指标

  1. 均值对称的数据,其 S k e w n e s s = 0 Skewness = 0 Skewness=0
  2. 右侧更分散的数据,其 S k e w n e s s > 0 Skewness > 0 Skewness>0
  3. 左侧更分散的数据,其 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=(n1)(n2)(n3)s4n(n+1)i=1n(xixˉ)43(n2)(n3)(n1)2=(n1)(n2)(n3)s4n(n+1)μ43(n2)(n3)(n1)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=1n(xixˉ)4
特点

  1. 当数据的总体分布为正态分布时, K u r t o s i s ≈ 0 Kurtosis approx 0 Kurtosis0
  2. 当分布较正态分布的尾部更分散时, K u r t o s i s > 0 Kurtosis > 0 Kurtosis>0,两侧极端数据较多
  3. 当分布较正态分布的尾部更聚拢时, 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)--描述统计量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部