R语言与数据的概括性度量

参考书目:《统计学》-贾俊平;《统计学:从数据到结论》-吴喜之;
理论部分:数据的概括性度量


以下例子会用到的数据(这些数据被放在一个叫data5.txt的文件里):

74.3  78.8  68.8  78.0  70.4  80.5  80.5  69.7  71.2  73.5
79.5  75.6  75.0  78.8  72.0  72.0  72.0  74.3  71.2  72.0
75.0  73.5  78.8  74.3  75.8  65.0  74.3  71.2  69.7  68.0
73.5  75.0  72.0  64.3  75.8  80.3  69.7  74.3  73.5  73.5

读取数据:

Tdata <- read.table("data5.txt", header = F)
new_data <- as.vector(as.matrix(Tdata))


  • 众数
> #众数
> z <- table(new_data)
> (z[which(z==max(z))])
new_data
  72 73.5 74.3 
   5    5    5 

注意:众数可以有多个,也可以没有。


  • 中位数
> #中位数
> (med_data <- median(new_data))
[1] 73.5

  • 四分位数
#下四分位数
> quantile(new_data, 0.25)
 25% 
71.2 

#上四分位数
> quantile(new_data, 0.75)
  75% 
75.65 

  • 五位数总括(最小值、下四分位数、中位数、上四分位数、最大值)
> (fivenum(new_data))
[1] 64.3 71.2 73.5 75.7 80.5

  • 简单平均数
> #均值
> (mean_data <- mean(new_data))
[1] 73.64

因为平均数易受数据极端值的影响,所以我们可以删除极端值,过滤掉一部分比例的数据,再计算均值

> #过滤掉极小和极大各10%的极端值
> (mean_data2 <- mean(new_data, trim = 0.1))
[1] 73.70937

trim的参数值可以在0~0.5之间进行选择,如果大于等于0.5则会选择中位数作为均值。

比如:

> mean(c(-30, -20, -10, 1:10, 50, 100), trim = 3/15)
[1] 5
> mean(c(-30, -20, -10, 1:10, 50, 100), trim = 2/15)
[1] 4.090909
> mean(c(-30, -20, -10, 1:10, 50, 100), trim = 1)
[1] 5
> mean(c(-30, -20, -10, 1:10, 50, 100, 200), trim = 1)
[1] 5.5

  • 极差
> #极差
> (diff(range(new_data)))
[1] 16.2

  • 四分位差
> #四分位差
> (diff(quantile(new_data, c(0.25, 0.75))))
 75% 
4.45 

  • 平均差
> #平均差
> my_md <- function(x){mean(abs(x - mean(x, na.rm = T)), na.rm = T)}
> (my_md(new_data))
[1] 2.987

  • 方差标准差(这里计算的是样本的方差标准差,分母为n-1)
> #方差
> (var_data <- var(new_data))
[1] 15.33836
> #标准差
> (sd_data <- sd(new_data))
[1] 3.916422

  • 标准误
> #标准误
> (standard_error_data <- sd_data/(length(new_data))^(0.5))
[1] 0.6192406

  • 标准得分
#标准得分
scale(new_data)

  • 偏度与峰度
> #偏度
> (S_data <- skewness(new_data))
[1] -0.1563461
> #峰度
> (K_data <- kurtosis(new_data))
[1] 2.889835
发布了219 篇原创文章 · 获赞 102 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/105544206