新手村:统计量均值、中位数、标准差、四分位数
统计量定义与讲解
统计量 | 定义 | 计算公式 | 示例说明 |
---|---|---|---|
均值 | 数据集中的所有数值之和除以数值的个数。 | Mean = ∑ i = 1 n x i n \text{Mean} = \frac{\sum_{i=1}^{n} x_i}{n} Mean=n∑i=1nxi | 对于数据集 [1, 2, 3, 4, 5],均值为 ( 1 + 2 + 3 + 4 + 5 ) / 5 = 3 (1+2+3+4+5)/5 = 3 (1+2+3+4+5)/5=3 |
中位数 | 将数据集排序后位于中间位置的数值。如果数据集长度为偶数,则取中间两个数的平均值。 | 排序后取中间值(或中间两个数的平均值) | 对于数据集 [1, 2, 3, 4, 5],中位数为 3;对于 [1, 2, 3, 4],中位数为 ( 2 + 3 ) / 2 = 2.5 (2+3)/2 = 2.5 (2+3)/2=2.5 |
标准差 | 衡量数据集内数值分布的离散程度。 | Standard Deviation = ∑ i = 1 n ( x i − μ ) 2 n \text{Standard Deviation} = \sqrt{\frac{\sum_{i=1}^{n}(x_i - \mu)^2}{n}} Standard Deviation=n∑i=1n(xi−μ)2 | 对于数据集 [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 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 8 = 36 8 = 4.5 \text{Mean} = \frac{1 + 2 + 3 + 4 + 5 + 6 + 7 + 8}{8} = \frac{36}{8} = 4.5 Mean=81+2+3+4+5+6+7+8=836=4.5
中位数
排序后的数据集为 [1, 2, 3, 4, 5, 6, 7, 8]
中位数是中间两个数的平均值:
Median = 4 + 5 2 = 4.5 \text{Median} = \frac{4 + 5}{2} = 4.5 Median=24+5=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 (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 (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 = 12.25 + 6.25 + 2.25 + 0.25 + 0.25 + 2.25 + 6.25 + 12.25 8 = 42 8 ≈ 2.29 \text{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 Standard Deviation=812.25+6.25+2.25+0.25+0.25+2.25+6.25+12.25=842≈2.29
四分位数
四分位数是将数据集分为四个等份的三个分割点,分别称为第一四分位数(Q1)、第二四分位数(Q2,即中位数)和第三四分位数(Q3)。这些分割点可以帮助我们了解数据的分布情况。以下是详细的四分位数计算步骤和示例。
四分位数的定义
- Q1(第一四分位数):位于数据集第25%位置的值。
- Q2(第二四分位数):位于数据集第50%位置的值,即中位数。
- Q3(第三四分位数):位于数据集第75%位置的值。
计算步骤
- 排序数据集:首先将数据集按升序排列。
- 确定位置:
- Q1的位置: ( n + 1 ) × 0.25 (n+1) \times 0.25 (n+1)×0.25
- Q2的位置: ( n + 1 ) × 0.5 (n+1) \times 0.5 (n+1)×0.5
- Q3的位置: ( n + 1 ) × 0.75 (n+1) \times 0.75 (n+1)×0.75
其中 n n n 是数据集中的数值个数。
- 插值计算:如果位置不是整数,则使用线性插值法计算四分位数。
示例
假设我们有一个数据集:[1, 2, 3, 4, 5, 6, 7, 8]
步骤1:排序数据集
数据集已经按升序排列:[1, 2, 3, 4, 5, 6, 7, 8]
步骤2:确定位置
- 数据集大小 n = 8 n = 8 n=8
- Q1的位置: ( 8 + 1 ) × 0.25 = 2.25 (8 + 1) \times 0.25 = 2.25 (8+1)×0.25=2.25
- Q2的位置: ( 8 + 1 ) × 0.5 = 4.5 (8 + 1) \times 0.5 = 4.5 (8+1)×0.5=4.5
- Q3的位置: ( 8 + 1 ) × 0.75 = 6.75 (8 + 1) \times 0.75 = 6.75 (8+1)×0.75=6.75
步骤3:插值计算
Q1(第一四分位数):
- 位置为2.25,表示在第2个和第3个数据之间。
- 使用线性插值: Q 1 = 2 + 0.25 × ( 3 − 2 ) = 2.25 Q1 = 2 + 0.25 \times (3 - 2) = 2.25 Q1=2+0.25×(3−2)=2.25
Q2(第二四分位数):
- 位置为4.5,表示在第4个和第5个数据之间。
- 使用线性插值: Q 2 = 4 + 0.5 × ( 5 − 4 ) = 4.5 Q2 = 4 + 0.5 \times (5 - 4) = 4.5 Q2=4+0.5×(5−4)=4.5
Q3(第三四分位数):
- 位置为6.75,表示在第6个和第7个数据之间。
- 使用线性插值: Q 3 = 6 + 0.75 × ( 7 − 6 ) = 6.75 Q3 = 6 + 0.75 \times (7 - 6) = 6.75 Q3=6+0.75×(7−6)=6.75
总结表格
统计量 | 位置公式 | 插值计算公式 | 示例(数据集 [1, 2, 3, 4, 5, 6, 7, 8]) |
---|---|---|---|
Q1 | ( n + 1 ) × 0.25 (n+1) \times 0.25 (n+1)×0.25 | L Q 1 + F Q 1 × ( U Q 1 − L Q 1 ) L_{Q1} + F_{Q1} \times (U_{Q1} - L_{Q1}) LQ1+FQ1×(UQ1−LQ1) | 2 + 0.25 × ( 3 − 2 ) = 2.25 2 + 0.25 \times (3 - 2) = 2.25 2+0.25×(3−2)=2.25 |
Q2 | ( n + 1 ) × 0.5 (n+1) \times 0.5 (n+1)×0.5 | L Q 2 + F Q 2 × ( U Q 2 − L Q 2 ) L_{Q2} + F_{Q2} \times (U_{Q2} - L_{Q2}) LQ2+FQ2×(UQ2−LQ2) | 4 + 0.5 × ( 5 − 4 ) = 4.5 4 + 0.5 \times (5 - 4) = 4.5 4+0.5×(5−4)=4.5 |
Q3 | ( n + 1 ) × 0.75 (n+1) \times 0.75 (n+1)×0.75 | L Q 3 + F Q 3 × ( U Q 3 − L Q 3 ) L_{Q3} + F_{Q3} \times (U_{Q3} - L_{Q3}) LQ3+FQ3×(UQ3−LQ3) | 6 + 0.75 × ( 7 − 6 ) = 6.75 6 + 0.75 \times (7 - 6) = 6.75 6+0.75×(7−6)=6.75 |
解释
- 位置公式:用于确定四分位数的大致位置。
- 插值计算公式:
- L Q i L_{Qi} LQi:四分位数位置的下限值。
- F Q i F_{Qi} FQi:四分位数位置的小数部分。
- U Q i U_{Qi} UQi:四分位数位置的上限值。
通过上述步骤和公式,您可以准确地计算出任何数据集的四分位数。以下是一个Python代码示例,展示如何使用pandas库来计算四分位数:
然而,Pandas 的 quantile
方法在处理偶数个元素时会略有不同:
- Q1: 2 + 3 2 + 0.25 ∗ ( 3 − 2 ) = 2.75 \frac{2 + 3}{2} + 0.25 * (3-2) = 2.75 22+3+0.25∗(3−2)=2.75
- Q3: 5 + 6 2 + 0.75 ∗ ( 6 − 5 ) = 6.25 \frac{5 + 6}{2} + 0.75 * (6-5)= 6.25 25+6+0.75∗(6−5)=6.25
- Q2: 4.5 4.5 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]) |
---|---|---|
均值 | ∑ i = 1 n x i n \frac{\sum_{i=1}^{n} x_i}{n} n∑i=1nxi | ( 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 ) / 8 = 4.5 (1+2+3+4+5+6+7+8)/8 = 4.5 (1+2+3+4+5+6+7+8)/8=4.5 |
中位数 | 排序后取中间值(或中间两个数的平均值) | ( 4 + 5 ) / 2 = 4.5 (4+5)/2 = 4.5 (4+5)/2=4.5 |
标准差 | ∑ i = 1 n ( x i − μ ) 2 n \sqrt{\frac{\sum_{i=1}^{n}(x_i - \mu)^2}{n}} n∑i=1n(xi−μ)2 | 42 8 ≈ 2.29 \sqrt{\frac{42}{8}} \approx 2.29 842≈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: 2 + 3 2 = 2.75 \frac{2 + 3}{2} = 2.75 22+3=2.75
- Q3: 6 + 7 2 = 6.25 \frac{6 + 7}{2} = 6.25 26+7=6.25
- Q2: 4.5 4.5 4.5