问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

新手村:统计量均值、中位数、标准差、四分位数

创作时间:
作者:
@小白创作中心

新手村:统计量均值、中位数、标准差、四分位数

引用
CSDN
1.
https://blog.csdn.net/k316378085/article/details/146286517

统计量是描述数据集特征的重要工具,其中均值、中位数、标准差和四分位数是最基本的统计量。本文将详细介绍这些统计量的定义、计算方法和应用场景,并通过Python代码实现具体计算。

统计量定义与讲解

统计量
定义
计算公式
示例说明
均值
数据集中的所有数值之和除以数值的个数。
Mean = \frac{\sum_{i=1}^{n} x_i}{n}
对于数据集 [1, 2, 3, 4, 5],均值为(1+2+3+4+5)/5 = 3
中位数
将数据集排序后位于中间位置的数值。如果数据集长度为偶数,则取中间两个数的平均值。
排序后取中间值(或中间两个数的平均值)
对于数据集 [1, 2, 3, 4, 5],中位数为 3;对于 [1, 2, 3, 4],中位数为(2+3)/2 = 2.5
标准差
衡量数据集内数值分布的离散程度。
Standard Deviation = \sqrt{\frac{\sum_{i=1}^{n}(x_i - \mu)^2}{n}}
对于数据集 [1, 2, 3, 4, 5],标准差约为 1.414
四分位数
将数据集分为四个等份,分别对应第25%、第50%(即中位数)、第75%的位置上的值。
Q1(第一四分位数):下四分位数;Q2(第二四分位数):中位数;Q3(第三四分位数):上四分位数
对于数据集 [1, 2, 3, 4, 5, 6, 7, 8],Q1 = 2.25, Q2 = 4.5, Q3 = 6.75

示例计算

假设我们有一个数据集:
[1, 2, 3, 4, 5, 6, 7, 8]

均值

Mean = \frac{1 + 2 + 3 + 4 + 5 + 6 + 7 + 8}{8} = \frac{36}{8} = 4.5

中位数

排序后的数据集为
[1, 2, 3, 4, 5, 6, 7, 8]

中位数是中间两个数的平均值:
Median = \frac{4 + 5}{2} = 4.5

标准差

首先计算每个数值与均值的差的平方:
(1-4.5)^2 = 12.25, (2-4.5)^2 = 6.25, (3-4.5)^2 = 2.25, (4-4.5)^2 = 0.25, \
(5-4.5)^2 = 0.25, (6-4.5)^2 = 2.25, (7-4.5)^2 = 6.25, (8-4.5)^2 = 12.25

然后计算这些平方差的平均值并开方:
Standard Deviation = \sqrt{\frac{12.25 + 6.25 + 2.25 + 0.25 + 0.25 + 2.25 + 6.25 + 12.25}{8}} = \sqrt{\frac{42}{8}} \approx 2.29

四分位数

四分位数是将数据集分为四个等份的三个分割点,分别称为第一四分位数(Q1)、第二四分位数(Q2,即中位数)和第三四分位数(Q3)。这些分割点可以帮助我们了解数据的分布情况。以下是详细的四分位数计算步骤和示例。

四分位数的定义

  • Q1(第一四分位数):位于数据集第25%位置的值。
  • Q2(第二四分位数):位于数据集第50%位置的值,即中位数。
  • Q3(第三四分位数):位于数据集第75%位置的值。

计算步骤

  1. 排序数据集:首先将数据集按升序排列。
  2. 确定位置
  • Q1的位置:(n + 1) \times 0.25
  • Q2的位置:(n + 1) \times 0.5
  • Q3的位置:(n + 1) \times 0.75
    其中n是数据集中的数值个数。
  1. 插值计算:如果位置不是整数,则使用线性插值法计算四分位数。

示例

假设我们有一个数据集:
[1, 2, 3, 4, 5, 6, 7, 8]

步骤1:排序数据集
数据集已经按升序排列:
[1, 2, 3, 4, 5, 6, 7, 8]

步骤2:确定位置

  • 数据集大小n = 8
  • Q1的位置:(8 + 1) \times 0.25 = 2.25
  • Q2的位置:(8 + 1) \times 0.5 = 4.5
  • Q3的位置:(8 + 1) \times 0.75 = 6.75

步骤3:插值计算

  • Q1(第一四分位数)

  • 位置为2.25,表示在第2个和第3个数据之间。

  • 使用线性插值:Q1 = 2 + 0.25 \times (3 - 2) = 2.25

  • Q2(第二四分位数)

  • 位置为4.5,表示在第4个和第5个数据之间。

  • 使用线性插值:Q2 = 4 + 0.5 \times (5 - 4) = 4.5

  • Q3(第三四分位数)

  • 位置为6.75,表示在第6个和第7个数据之间。

  • 使用线性插值:Q3 = 6 + 0.75 \times (7 - 6) = 6.75

总结表格

统计量
位置公式
插值计算公式
示例(数据集 [1, 2, 3, 4, 5, 6, 7, 8])
Q1
(n+1) \times 0.25
L_{Q1} + F_{Q1} \times (U_{Q1} - L_{Q1})
2 + 0.25 \times (3 - 2) = 2.25
Q2
(n+1) \times 0.5
L_{Q2} + F_{Q2} \times (U_{Q2} - L_{Q2})
4 + 0.5 \times (5 - 4) = 4.5
Q3
(n+1) \times 0.75
L_{Q3} + F_{Q3} \times (U_{Q3} - L_{Q3})
6 + 0.75 \times (7 - 6) = 6.75

解释

  • 位置公式:用于确定四分位数的大致位置。
  • 插值计算公式
  • L_{Qi}:四分位数位置的下限值。
  • F_{Qi}:四分位数位置的小数部分。
  • U_{Qi}:四分位数位置的上限值。

通过上述步骤和公式,您可以准确地计算出任何数据集的四分位数。以下是一个Python代码示例,展示如何使用pandas库来计算四分位数:

然而,Pandas的quantile方法在处理偶数个元素时会略有不同:

  • Q1: \frac{2 + 3}{2} + 0.25 * (3-2) = 2.75
  • Q3: \frac{5 + 6}{2} + 0.75 * (6-5)= 6.25
  • Q2: 4.5
import pandas as pd
import matplotlib.pyplot as plt

# 数据集
data = [1, 2, 3, 4, 5, 6, 7, 8]

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 创建DataFrame
df = pd.DataFrame(data, columns=['value'])

# 计算四分位数
Q1 = df['value'].quantile(0.25)
Q2 = df['value'].quantile(0.5)
Q3 = df['value'].quantile(0.75)

print(f"Q1: {Q1}, Q2: {Q2}, Q3: {Q3}")

# 绘制箱线图
plt.figure(figsize=(8, 2))
plt.boxplot(df['value'], vert=False)
plt.title('数据的箱线图')
plt.xlabel('值')
plt.yticks([1], ['数据'])
plt.grid(True)
plt.show()

输出结果应为:

Q1: 2.75, Q2: 4.5, Q3: 6.25

总结表格

统计量
公式
示例(数据集 [1, 2, 3, 4, 5, 6, 7, 8])
均值
\frac{\sum_{i=1}^{n} x_i}{n}
(1+2+3+4+5+6+7+8)/8 = 4.5
中位数
排序后取中间值(或中间两个数的平均值)
(4+5)/2 = 4.5
标准差
\sqrt{\frac{\sum_{i=1}^{n}(x_i - \mu)^2}{n}}
\sqrt{\frac{42}{8}} \approx 2.29
四分位数
Q1(下四分位数),Q2(中位数),Q3(上四分位数)
Q1 = 2.75, Q2 = 4.5, Q3 = 6.5

FAQ

为什么我计算的1~8的四分位和理论上的不一致 我的时 Q1 2.75 Q2 4.5 Q3 6.25,理论上是 Q1 2.25 Q2 4.5 Q3 6.75 ?

A: 然而,Pandas的quantile方法在处理偶数个元素时会略有不同:

  • Q1: \frac{2 + 3}{2} = 2.75
  • Q3: \frac{6 + 7}{2} = 6.25
  • Q2: 4.5
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号