微信登录

描述性统计 - 集中趋势 - 均值、中位数、众数计算

描述性统计 - 集中趋势 - 均值、中位数、众数计算

在数据分析领域,描述性统计是一项基础且重要的工作,它能帮助我们快速理解数据的基本特征。集中趋势是描述性统计中的一个关键概念,用于确定一组数据的中心位置。其中,均值、中位数和众数是最常用的三个衡量指标。本文将详细介绍这三个指标的概念、计算方法,并通过 R 语言代码进行演示。

均值(Mean)

概念

均值,也称为平均数,是一组数据的总和除以数据的个数。它是最常用的集中趋势指标,能反映数据的总体水平。

计算公式

对于一组数据 $x1, x_2, \cdots, x_n$,其均值 $\bar{x}$ 的计算公式为:
\bar{x} = \frac{1}{n} \sum
{i=1}^{n} x_i

R 代码演示

  1. # 创建一个示例数据集
  2. data <- c(12, 25, 30, 18, 22, 25, 35)
  3. # 计算均值
  4. mean_value <- mean(data)
  5. print(paste("均值为:", mean_value))

在上述代码中,我们首先创建了一个包含 7 个数值的数据集 data,然后使用 R 语言的 mean() 函数计算该数据集的均值,并将结果存储在变量 mean_value 中,最后打印出均值。

中位数(Median)

概念

中位数是将一组数据按照从小到大的顺序排列后,位于中间位置的数值。如果数据的个数为奇数,则中位数就是中间的那个数;如果数据的个数为偶数,则中位数是中间两个数的平均值。

计算步骤

  1. 将数据按照从小到大的顺序排列。
  2. 判断数据的个数 $n$ 是奇数还是偶数:
    • 如果 $n$ 是奇数,则中位数是第 $\frac{n + 1}{2}$ 个数据。
    • 如果 $n$ 是偶数,则中位数是第 $\frac{n}{2}$ 个和第 $\frac{n}{2} + 1$ 个数据的平均值。

R 代码演示

  1. # 创建一个示例数据集
  2. data <- c(12, 25, 30, 18, 22, 25, 35)
  3. # 计算中位数
  4. median_value <- median(data)
  5. print(paste("中位数为:", median_value))

在上述代码中,我们使用 R 语言的 median() 函数计算数据集 data 的中位数,并将结果存储在变量 median_value 中,最后打印出中位数。

众数(Mode)

概念

众数是一组数据中出现次数最多的数值。一组数据可能有一个众数,也可能有多个众数,或者没有众数(当所有数据出现的次数都相同时)。

R 代码演示

R 语言没有内置的计算众数的函数,我们可以自定义一个函数来计算众数。

  1. # 自定义计算众数的函数
  2. get_mode <- function(x) {
  3. uniq_x <- unique(x)
  4. uniq_x[which.max(tabulate(match(x, uniq_x)))]
  5. }
  6. # 创建一个示例数据集
  7. data <- c(12, 25, 30, 18, 22, 25, 35)
  8. # 计算众数
  9. mode_value <- get_mode(data)
  10. print(paste("众数为:", mode_value))

在上述代码中,我们首先定义了一个名为 get_mode() 的函数,该函数接受一个向量作为输入,返回该向量的众数。然后创建了一个示例数据集 data,并调用 get_mode() 函数计算其众数,最后打印出众数。

三者比较

指标 优点 缺点 适用场景
均值 考虑了所有数据的值,能充分利用数据信息 容易受到极端值的影响 数据分布较为均匀,没有极端值的情况
中位数 不受极端值的影响,能更好地反映数据的中间水平 没有充分利用所有数据的信息 数据存在极端值,或者数据分布偏态的情况
众数 可以用于描述数据的集中趋势,尤其是对于分类数据 可能不唯一,或者不存在 数据为分类数据,或者需要找出最常见的值的情况

总结

均值、中位数和众数是描述数据集中趋势的三个重要指标,它们各有优缺点,适用于不同的场景。在实际应用中,我们需要根据数据的特点和分析的目的选择合适的指标。通过 R 语言,我们可以方便快捷地计算这些指标,从而更好地理解和分析数据。