7 集中趋势的测量

7 集中趋势的测量

在统计学中,集中趋势是描述数据集特征值的一种方式,它反映了数据分布的中心位置。集中趋势的测量通常包括均值、中位数和众数。下面我们逐一介绍这三种常用的测量方法。

均值

均值(Mean)是一组数值的算术平均值,通常用于衡量数据的“中心”。

计算方法

均值的计算方法为将数据集中所有值相加,然后除以数据的总数量。公式如下:

$$
\text{均值} = \frac{X_1 + X_2 + \ldots + X_n}{n}
$$

其中,$X_1, X_2, \ldots, X_n$ 是数据集中的每一个值,$n$ 是值的总个数。

示例

假设我们有一组数据:[10, 20, 30, 40, 50]。计算均值的步骤如下:

  1. 求和:$10 + 20 + 30 + 40 + 50 = 150$
  2. 计算总数:$n = 5$
  3. 计算均值:$$\text{均值} = \frac{150}{5} = 30$$

因此,这组数据的均值是 30

Python代码示例

我们也可以用Python计算均值:

1
2
3
data = [10, 20, 30, 40, 50]
mean = sum(data) / len(data)
print(mean) # 输出 30.0

中位数

中位数(Median)是将数据集按从小到大排序后,位于中间的值。如果数据个数为偶数,则中位数为中间两个数的均值。

计算方法

对于已排序的数据集,计算中位数的方法为:

  1. 如果$n$为奇数,中位数为$X_{\left(\frac{n+1}{2}\right)}$。
  2. 如果$n$为偶数,中位数为$\frac{X_{\left(\frac{n}{2}\right)} + X_{\left(\frac{n}{2} + 1\right)}}{2}$。

示例

考虑数据集[10, 20, 30, 40, 50],它的个数是 5(奇数):

  1. 排序后为 10, 20, 30, 40, 50
  2. 中位数为第 3 个值,即 30

若数据集为[10, 20, 30, 40](偶数):

  1. 排序后为 10, 20, 30, 40
  2. 中位数为$\frac{20 + 30}{2} = 25$。

Python代码示例

使用Python计算中位数的代码如下:

1
2
3
4
5
6
7
8
9
10
import numpy as np

data_odd = [10, 20, 30, 40, 50]
data_even = [10, 20, 30, 40]

median_odd = np.median(data_odd)
median_even = np.median(data_even)

print(median_odd) # 输出 30.0
print(median_even) # 输出 25.0

众数

众数(Mode)是数据集中出现的次数最多的值。一个数据集可以有一个众数、多个众数或没有众数。

计算方法

找到数据集中出现频率最高的值。

示例

考虑数据集[10, 20, 20, 30, 40]

  • 20出现了两次,为出现次数最多的值,因此众数是 20

如果数据集为[10, 20, 30, 40]

  • 每个值只出现一次,因此该数据集没有众数。

Python代码示例

使用Python计算众数的代码如下:

1
2
3
4
5
6
7
8
9
10
from scipy import stats

data1 = [10, 20, 20, 30, 40]
data2 = [10, 20, 30, 40]

mode1 = stats.mode(data1).mode[0]
mode2 = stats.mode(data2).mode[0] # 若没有众数,返回的结果不是很直观

print(mode1) # 输出 20
print(mode2) # 输出 10,虽然没有众数,这里只返回第一个值

总结

集中趋势的测量对于理解数据集的特点至关重要。通过均值、中位数和众数,我们能够获得对数据的不同视角。这些统计指标在实际应用中能够帮助我们做出更好的决策和分析。了解如何计算这些指标是统计学的基础,也是数据分析的重要技能。

8 离散程度的测量

8 离散程度的测量

离散程度是描述数据分布情况的重要指标,反映了数据的变异性和分散程度。在统计学中,我们常用以下几种方式来衡量离散程度:

1. 极差

极差是数据集中最大值与最小值之间的差额,表示数据的整体范围。

$$
\text{极差} = \text{最大值} - \text{最小值}
$$

案例:假设一组数据为[12, 15, 18, 21, 25],则最大值为25,最小值为12,那么极差为:

$$
\text{极差} = 25 - 12 = 13
$$

Python代码示例

1
2
3
data = [12, 15, 18, 21, 25]
range_value = max(data) - min(data)
print("极差:", range_value)

2. 方差

方差是数据各个值与均值之间差值的平方的平均值,衡量数据离散程度的标准。

$$
\sigma^2 = \frac{1}{N}\sum_{i=1}^{N}(x_i - \mu)^2
$$

其中,$\mu$是均值,$N$是数据点的数量。

案例:继续使用上述数据,其均值为:

$$
\mu = \frac{12 + 15 + 18 + 21 + 25}{5} = 18
$$

计算方差:

$$
\sigma^2 = \frac{(12-18)^2 + (15-18)^2 + (18-18)^2 + (21-18)^2 + (25-18)^2}{5}
= \frac{36 + 9 + 0 + 9 + 49}{5} = \frac{103}{5} = 20.6
$$

Python代码示例

1
2
3
4
5
import numpy as np

data = [12, 15, 18, 21, 25]
variance = np.var(data) # 样本方差
print("方差:", variance)

3. 标准差

标准差是方差的平方根,常用于表示数据分布的离散程度,具备与原始数据同样的单位。

$$
\sigma = \sqrt{\sigma^2}
$$

案例:同样使用上述方差,计算标准差:

$$
\sigma = \sqrt{20.6} \approx 4.54
$$

Python代码示例

1
2
std_deviation = np.std(data)  # 标准差
print("标准差:", std_deviation)

4. 四分位差

四分位差是上四分位数(第三四分位数)与下四分位数(第一四分位数)之间的差,是另一种离散程度的较为稳健的测量方式。

$$
\text{四分位差} = Q_3 - Q_1
$$

案例:对于数据[12, 15, 18, 21, 25],第一个四分位数 $Q_1 = 15$,第三个四分位数 $Q_3 = 21$,因此四分位差为:

$$
\text{四分位差} = 21 - 15 = 6
$$

Python代码示例

1
2
3
4
Q1 = np.percentile(data, 25)
Q3 = np.percentile(data, 75)
IQR = Q3 - Q1
print("四分位差:", IQR)

总结

离散程度的测量是理解数据变异性的重要工具,通过极差方差标准差四分位差等统计指标,我们可以全面了解数据的分布特征。掌握这些指标将帮助你在数据分析过程中做出更好的决策。

9 数据可视化

9 数据可视化

数据可视化是将数据以图形或图像的形式呈现,使数据更易于理解和分析的过程。它通过图表的形式将复杂的数据集转化为直观的信息,从而帮助我们发现模式、趋势和异常。

数据可视化的目的

数据可视化的主要目的是:

  • 简化信息:将复杂的数据以清晰简洁的形式展现。
  • 揭示模式:通过图形显示帮助识别数据中的趋势和模式。
  • 提高理解:使非专业人员更容易理解数据。

常见的数据可视化方法

条形图

条形图用于比较不同类别之间的数量。适用于离散数据。

1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as plt

categories = ['A', 'B', 'C', 'D']
values = [3, 7, 5, 2]

plt.bar(categories, values, color='skyblue')
plt.title('条形图示例')
plt.xlabel('类别')
plt.ylabel('值')
plt.show()

在这个示例中,我们比较了四个类别(A, B, C, D)的值。条形图清晰地展示了每个类别的数量。

折线图

折线图用于显示随时间变化的数据,常用来展示趋势。

1
2
3
4
5
6
7
8
9
10
11
import matplotlib.pyplot as plt

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
sales = [200, 300, 250, 400, 350]

plt.plot(months, sales, marker='o', color='coral')
plt.title('月销售额折线图')
plt.xlabel('月份')
plt.ylabel('销售额')
plt.grid()
plt.show()

折线图显示了每个月的销售额变化,清楚地表现了随时间的趋势。

饼图

饼图展示一个整体中各部分的比例,非常适合显示成分的相对大小。

1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as plt

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'lightcoral', 'lightskyblue', 'lightgreen']

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)
plt.axis('equal')
plt.title('饼图示例')
plt.show()

饼图表明每一部分在整体中的占比,能够直观地展示各类数据的贡献。

选择合适的图表

在选择图表时,应考虑以下因素:

  • 数据类型:数据是类别型还是数值型?
  • 信息量:你希望传递多少信息?
  • 受众:图表的受众是谁?专业人士还是大众?

例如,如果你要展示销售数据的趋势,可以选择折线图;如果你要比较不同产品的销售额,可以使用条形图。

常用数据可视化工具

除了Python的matplotlib,还可以考虑以下工具:

  • Tableau:强大的商业智能工具,适合大规模数据可视化。
  • Power BI:Microsoft的商业智能工具,集成度高。
  • D3.js:一个基于JavaScript的数据可视化库,适合网页展示。

通过选择合适的工具和图表类型,数据可视化能够有效地传达数据中的信息。善用这些技术,可以帮助我们做出更有力的数据驱动决策。