Python 统计学

2025年1月8日 | 阅读 9 分钟

在本教程中,我们将学习统计学及其组成部分,使用 Python 解决统计问题,并探索其背后的概念。统计学是每个数据科学爱好者都应深入理解的关键概念。

Python 提供了一些全面、广泛使用且功能强大的统计库。这些库有助于我们顺畅地处理数据。

统计学是数据收集、列表化和数值数据插补的一种方法。它允许我们描述、总结和以可视化的方式呈现数据。统计学是一门应用数学领域,涉及插补、数据可视化和数据收集分析。统计学有两种类型——描述性统计和推断性统计。本教程将涵盖描述性统计。

一些 Python 统计库

Python 提供了许多可用于统计的库,但我们将介绍一些最重要且广泛使用的库。

  • Numpy - 该库广泛用于数值计算,并针对科学计算进行了优化。它是一个第三方库,有助于处理一维和多维数组。ndarray 是主要的数组类型。它带有许多用于统计分析的方法。
  • SciPy - 这是一个基于 Numpy 的第三方科学计算库。它扩展了 Numpy 的功能,包括用于统计分析的 scipy.stats。
  • Pandas - 它基于 Numpy 库。它也用于数值计算。它在处理带标签的一维 1D 数据(使用 Series)方面表现出色。二维(2D)数据使用带标签的 DataFrame 对象。
  • Matplotlib - 该库与 Scipy、NumPy 和 Pandas 结合使用效果更佳。
  • Python 内置统计库 - 这是 Python 的内置库,用于描述性统计。如果数据集很小,或者我们无法依赖导入其他库,它就能有效地工作。

集中趋势度量

集中趋势度量代表一个单一值,试图定义整个数据集。它包含三个主要的集中趋势。

  • 平均数
  • 中位数 - 最小值中位数和最大值中位数
  • 众数

如何计算平均值

平均值代表观测值的总和除以观测值的总数。我们也可以称之为平均数,即总和除以计数。Python 的统计库提供了 mode() 方法来返回平均值,如果传入的参数为空,它会引发 StatisticError

让我们理解以下示例 -

示例 - 1

输出

The average of list values is: 4.0

解释 -

在上面的代码中,我们导入了 statistics 模块并初始化了一个包含观测值的列表。我们将列表传递给 mean() 方法,该方法返回了列表值的平均值。

我们也可以使用内置的 sum() 方法来计算平均值,该方法接受数值值的可迭代对象并给出它们的总和。len() 方法返回可迭代对象(字符串、列表、元组、字节、字典、集合或范围)的长度。

示例 - 2

输出

The mean is: 4.7

如何计算中位数

中位数代表数据集的中间值,它将数据分成两半。中位数是通过计算偶数数据集的两个中心元素的平均值来计算的,否则就是中心元素。

对于奇数 -

N+1/2

对于偶数 -

n/2, n/2+1

statistics 库提供了 median() 方法来计算数据中位数或中间元素。如果传入的参数为空,它会引发 StatisticError

让我们理解下面的例子。

示例 -

输出

Median of data-set 1 is 5
Median of data-set 2 is 5.6
Median of data-set 3 is 23/15
Median of data-set 4 is 0.0	

如何计算最小值中位数

如果数据集是奇数,则使用 median_low() 方法来获取数据的最小值中位数。如果数据集是偶数,它会返回两个中间元素中较小的一个。如果传入的参数为空,它会引发 StatisticError

让我们理解下面的例子。

示例 -

输出

Median of the set is 3.5
Low Median of the even data set is 3 
Low Median of the odd data set is 4

如何计算最大值中位数

如果数据集是奇数,则使用 median_high() 方法来获取数据的最大值中位数。如果数据集是偶数,它会返回两个中间元素中较小的一个。如果传入的参数为空,它会引发 StatisticError

让我们理解下面的例子。

示例 -

输出

Median of the set is 3.5
Low Median of the even data set is 4 
Low Median of the odd data set is 4

离散程度度量

我们已经学习了集中趋势度量,但这不足以描述数据。我们还需要了解 离散程度度量。离散程度度量表明我们的数据分布得有多好。以下是最常见的离散程度度量。

  • 范围
  • 变化
  • 标准差

如何计算极差

极差是最大和最小数据点之间的差值。极差越大,数据的散布范围越大,反之亦然。

极差 = 最大数据值 - 最小数据值

让我们理解以下示例 -

示例 -

输出

Maximum is = 50, Minimum is = 10 and Range is = 40

解释 -

在上面的代码中,我们用一些数据分配了一个列表,并使用内置的 max() 方法计算了最大值,使用 min() 方法计算了最小值。

如何计算方差

方差是衡量数据集中数字之间散布程度的统计量。要计算方差,我们使用以下公式。

Statistic with Python

其中 -

  • σ2 = 总体方差
  • Σ = 求和…
  • Χ = 每个值
  • μ = 总体均值
  • Ν = 总体中的数值数量

Python 的 statistics 模块提供了 varience() 方法。让我们通过以下示例来理解。

示例 -

输出

Variance of data1 is: 11.238095238095237 
Variance of data2 is: 10.666666666666666 
Variance of data3 is: 69.64285714285714 
Variance of data4 is: 1277/36000

如何计算标准差

它是方差的平方根。要计算标准差,我们可以使用以下示例。

其中 -

  • σ = 标准差
  • Σ = 求和…
  • Χ = 每个值
  • μ = 均值
  • Ν = 总体中的数值数量

Python 的 statistics 模块提供了 stdev() 方法。让我们通过以下示例来理解。

示例 -

输出

Standard Deviation of data1 is: 3.352326839390103 
Standard Deviation of data2 is: 3.265986323710904 
Standard Deviation of data3 is: 8.345229603962801 
Standard Deviation of data4 is: 0.18834070782022197

multimode() 方法

此方法返回出现频率最高的数值。它按数据中首次出现的顺序返回数值。如果有多个众数,它可能会返回多个结果。

让我们理解下面的例子。

示例 -

输出

['d']

现在,我们将涵盖一些对数据科学很重要的统计学主题,这将帮助我们更精确地理解这个主题。

Python 统计学与概率论

Python 统计学与概率论是数据分析和预测的基础。Python 提供了强大的库来处理这些概念。

Python 中的统计学

  1. 描述性统计: Python 提供了计算均值、中位数、众数、方差和标准差等度量的工具。这些有助于总结和描述数据集的特征。
  2. 数据处理: pandas 等库用于数据清洗、转换和探索性数据分析。它提供了计算数据集相关性、协方差和摘要统计的功能。
  3. 高级操作: numpy 和 scipy 等库允许进行高级矩阵运算、线性代数和用于统计分析的分布函数。

Python 中的概率论

  1. 随机变量: Python 可以使用 numpy 和 scipy 等库生成遵循各种概率分布(例如,均匀分布、正态分布、二项分布)的随机变量。
  2. 概率分布: Python 支持处理正态分布、二项分布和泊松分布等常见分布。您可以计算概率、累积分布以及模拟随机事件。
  3. 假设检验: scipy 等库提供了用于进行统计检验(t 检验、卡方检验)的工具,以基于样本数据进行推断。

Python 中的统计建模与拟合

统计模型代表了我们数据的生成方式,以及如何在数据分析中使用它们。它有助于我们总结数据、模拟和预测数据。换句话说,我们可以使用生成的数据进行汇总、预测或模拟。

然而,能够确定您的数据是否符合该模型至关重要。

数据估计是提供模型与估计之间最佳拟合的合适方法。

结论

本教程包括如何使用 Python 编程语言学习统计学。我们已经涵盖了基本操作,包括统计学类型、如何使用 statistics 库查找均值、中位数和众数。我们还探讨了集中趋势度量,包括如何计算标准差、方差和极差。本教程通过 Python 提供了关于描述性统计的思路。