统计学不是一堆公式的集合,它解决的是一个很朴素的问题:我们手里通常只有一部分数据,怎样用这部分数据更可靠地理解整体?这一章会沿着一条清晰路线走:先描述已经看到的数据,再理解数据为什么会波动,最后用样本去推断总体。
具体来说,我们先讲描述统计:均值、中位数、众数、方差、标准差、分位数、偏态和峰度。它们回答的是“这批数据长什么样”。接着讲多变量关系:协方差、相关系数和主成分分析,回答“变量之间有没有一起变化”。最后进入推断统计:抽样、置信区间、假设检验、显著性水平、P 值、第一类和第二类错误,回答“样本里的差异能不能推广到总体”。
这一章会尽量做到两件事:公式不只给结果,还讲它为什么这么写;代码不只会运行,还要和统计含义对上。你后面做数据分析、A/B 测试、建模评估时,会经常回来用这些概念。
一、简介
1. 数据分析中的统计学基础
我们先从整体框架看统计学,不急着进公式。
1.1 统计学基础在数据分析中的重要性
什么是统计学?
统计学是一门研究如何收集、处理、分析、解释和呈现数据的学科。在数据分析中,它帮我们区分“看起来有差异”和“差异大到值得相信”,也帮我们用样本去估计总体。
描述统计学 vs 推论统计学
- 描述统计学: 主要关注对数据的整体性质进行概括和描述,包括中心趋势(均值、中位数)、离散程度(标准差、范围)等。
- 推论统计学: 通过样本推断总体特征,核心包括抽样、估计、置信区间和假设检验。它允许我们在不确定性中做判断。
1.2 常见的统计学概念
中心趋势
- 均值(Mean): 数据的平均值,是所有数据点之和除以数据点的数量。
- 中位数(Median): 数据中间的值,将数据排序后位于中间位置的数值。
- 众数(Mode): 数据中出现频率最高的值。
离散程度
- 标准差(Standard Deviation): 衡量数据分布的广度,是每个数据点与均值之间差异的平方和的平均值的平方根。
- 范围(Range): 数据集中最大值和最小值的差异。
分布形状
- 正态分布(Normal Distribution): 呈钟形曲线,均值、中位数和众数相等。
- 偏态(Skewness): 描述数据分布偏离正态分布的程度,可为正偏(右偏)、负偏(左偏)。
统计图表
- 直方图(Histogram): 通过柱形图显示数据的分布情况。
- 箱线图(Box Plot): 显示数据的中位数、四分位数和异常值。
1.3 推论统计学
抽样与总体
- 抽样(Sampling): 从总体中选择一部分样本进行分析,以代表总体。
- 总体(Population): 研究对象的全部集合。
估计与假设检验
- 点估计(Point Estimation): 使用样本数据估计总体参数的值。
- 区间估计(Interval Estimation): 提供一个估计参数范围的区间。
- 假设检验(Hypothesis Testing): 通过收集样本数据来进行关于总体的统计推断。
1.4 相关性与回归分析
相关性
- 相关系数(Correlation Coefficient): 衡量两个变量之间的线性关系强度和方向。
回归分析
- 简单线性回归: 研究一个自变量和一个因变量之间的关系。
- 多元线性回归: 考虑多个自变量对因变量的影响。
1.5 统计学在数据分析中的应用
- 数据清理与预处理: 处理缺失值、异常值等。
- 探索性数据分析(EDA): 通过统计图表和描述统计分析初步了解数据。
- 模型评价: 使用统计方法评估模型的性能。
1.6 工具与编程语言
- Python与统计学库: 使用NumPy、Pandas、SciPy、Statsmodels等库进行数据处理和统计分析。
- R语言: 统计学家常用的数据分析和可视化语言。
2. Python在统计学中的应用
关于 Python 在统计学中的作用,我们可以从 7 个常见场景来理解:数据处理、统计建模、可视化、探索性分析、模型评估、时间序列和大规模数据处理。
我们知道,Python 在统计学中广泛应用,有许多强大的库和工具,使得数据分析、统计建模和可视化变得更加便捷。
1. 数据处理与分析
NumPy
- 数组操作: NumPy提供了高效的数组操作,能够进行向量化运算,加速数据处理。
Pandas
- 数据结构: Pandas 提供了 DataFrame 和 Series,使得数据的清理、转换和分析更加灵活和高效。
SciPy
- 统计方法: SciPy 中的 stats 模块包含了许多统计学方法,如假设检验、描述统计、概率分布等。
2. 统计建模
Statsmodels
- 回归分析: Statsmodels 提供了用于执行多种回归分析的工具,包括简单线性回归、多元线性回归等。
Scikit-learn
- 机器学习算法: Scikit-learn 中包含了许多机器学习算法,可用于分类、回归、聚类等问题,也可以应用于统计建模。
3. 统计可视化
Matplotlib
- 基础绘图: Matplotlib 可用于创建各种统计图表,如折线图、散点图、直方图等。
Seaborn
- 统计数据可视化: Seaborn 是建立在 Matplotlib 基础上的高级统计数据可视化库,简化了许多绘图任务。
4. 探索性数据分析(EDA)
Jupyter Notebooks
- 交互式分析: Jupyter Notebooks 提供了交互式计算环境,有助于进行数据探索、分析和可视化。
自动化 EDA 报告
- 自动探索性数据分析: 这类工具可以自动生成数据分析报告,包括描述统计、缺失值分析、相关性等。它适合快速扫一遍数据,但不能替代我们对业务含义和统计假设的判断。
5. 统计学习
Statsmodels 和 Scikit-learn
- 模型评估: 这两个库提供了许多工具,帮助用户评估建立的统计模型的性能。
6. 时间序列分析
Statsmodels
- 时间序列建模: Statsmodels 提供了用于时间序列分析的工具,包括 ARIMA 模型等。
7. 大数据统计分析
PySpark
- 大数据处理: 对于大规模数据,PySpark 提供了分布式计算框架,支持统计分析和机器学习。
Python 在统计学中的应用不止这些。我们真正要抓住的是:先把问题问清楚,再选统计方法,最后用代码把计算做准确。











请登录后查看评论内容