此清单并不穷尽数据科学中使用的统计学内容,但足以帮助您起步。:)
顺带一提,如果您仍在寻找用来开启数据科学 Python 学习的资源,建议考虑我们的Intro to Python For Data Science课程。它将帮助您用 Python 应用统计学。
为数据科学学习统计学非常注重实践,因此,别忘了也要(继续)专注于练习您在数据科学旅程之初可能已经学过的理论概念。
不过,统计学与数据科学之间究竟有何区别?
二者常被混为一谈,也有人认为并无区别,数据科学家其实就是统计学家。
但撇开这些观点不谈,多数人都能同意:统计学是数据科学所用的核心组成部分之一,也是其基础之一。
用 Python 学习统计学
今天的文章将聚焦如何用 Python 学习统计学。包括您在使用 Python 的数据科学旅程中需要探索的统计分析主题。
为什么选择 Python?
R 是学习统计学的不错起点。它是为统计计算与制图而开发,因此为用户提供了大量统计包。另一方面,Python 是一门通用语言,应用广泛。
然而,您同样可以用 Python 学习统计学。
有些人选择 Python 是因为其性能,或因为它也能完成许多 R 能做的事情。
但从本质上说,这门语言的流行度正在上升,可用于数据科学的软件包数量在近年也显著增加。
简言之,使用 Python 进行统计分析绝对有其理由。
您最终选择的工具,只取决于您要做的分析类型。
那么,准备好用 Python 开始统计学习了吗?
附注:如果您也在寻找学习 R 统计学或 R 的资源,请查看 DataCamp 的开放课程或 Intro to Statistics With R。

Python 统计学与概率论
您应首先攻克的主题很可能是统计学与概率论。网上不仅有相当多的视频和课程可供学习,还有许多(纸质)书籍可以帮助您用 Python 入门统计学。
用 Python 入门统计学
若要入门统计学,带有真实案例的这份教程是不错的选择。本教程的笔记本将向您介绍均值、中位数、标准差等概念,以及假设检验、概率分布等主题的基础。
这是开始学习统计的好方式,因为它受“Think Bayes”和“Think Stats”两本书启发,而这两本书也是下文将再次出现的强烈推荐!
如果您想找书,可以试试这本免费的Python 计算统计学,它不仅包含 Python 编程入门,还涵盖马尔可夫链蒙特卡罗、期望最大化(EM)算法、重抽样方法等诸多主题。
或者,您也可以购买 Thomas Haslwanter 的这本书,总体介绍常见统计检验、线性回归分析,以及生存分析与贝叶斯统计中的相关主题。需注意,本书以生命与医学科学为应用场景。
如您所见,上述两本书也都会带您接触到更多用 Python 学习的高阶统计主题。
如果您更喜欢视频,建议观看 Christopher Fonnesbeck(范德堡大学医学院生物统计学系助理教授)关于使用 SciPy 进行统计数据分析的这段教程。此外,Gaël Varoquaux 也有一段关于用 Python 进行推断与探索性统计的视频。后者使用了 Pandas 与 StatsModels 等 Python 包。
您会发现,这些资源都相当通用,足以帮助您用 Python 开始统计学习。
如果您在寻找能快速补齐统计基础的资源,可以看看 DataCamp 的 Statistical Thinking in Python 课程,由 Justin Bois 授课。课程将介绍探索性数据分析(EDA)、方差与协方差、均值与中位数、概率分布等诸多概念。
用 Python 学习概率论
学习 Python 统计学时,概率论同样极具价值。它研究的是随机现象。这意味着任一随机事件的结果是非确定性的:可能出现若干种结果中的任意一种,最终结果由随机性决定。
概率论是统计学的概念渊源。
上文提到的资源给出了统计学的一般性介绍,有些也涵盖了概率论(考虑到上述关系,这是合情合理的),但也有专门聚焦该主题的资源。
您还可以查阅以下资源:
强烈推荐 EdX 上的 Computational Probability and Inference 课程。这门由 MIT 教员授课的动手课程,将让您熟悉概率与推断的原理。
您还应阅读由 Brian Blais 教授撰写的这本免费书,它是一部以概率论作为逻辑出发点的统计推断入门教材。
Python 概率分布
要真正用 Python 为数据科学学习统计学,您还应建立起关于何时使用何种分布的良好直觉。分布是一个列表或函数,展示数据的所有可能取值或区间,以及它们出现的频率。
查看这份清单您就会发现,可考虑的分布相当之多。
若要用 SciPy 了解均匀、正态、二项与泊松分布的入门,您可以查看这篇博文。
强烈推荐 “Think Stats: Probability and Statistics for Programmers” 一书的第四章,它将带您认识连续分布。不过,第五章同样会给出关于概率分布的扎实介绍。
在可视化分布时,直方图等工具会很有用。若想快速了解,您可以查看这个 IPython 笔记本,它简要介绍了以均值、分位数与直方图为核心的描述性统计及其关系。要进一步学习如何可视化分布,请参阅这份 Seaborn 教程。
此外还有这份Plotly 教程,介绍 Python 中的基础统计。
注意,如果您想上课程系统学习部分分布(如二项与泊松)及分布函数(如经验累积分布函数),或学习如何可视化这些分布,可以查看 DataCamp 的 Statistical Thinking in Python 课程。

Python 假设检验
假设检验是一类统计检验,用于判断样本数据中是否有足够证据,以推断某项条件对总体成立。
此类检验的两大核心概念是原假设与备择假设,同时 p 值对假设检验也至关重要。对于初学者而言,这些概念不易理解,您需要花些功夫来掌握 p 值的 α 值或显著性水平,以及何时拒绝或未能拒绝原假设的区别。
您可以在 SciPy 库官网上找到一篇教程,简要介绍了 p 值与估计。
这份 SciPy 讲义将介绍 t 检验,您可以用它通过分析两组总体均值来检验假设。如果想进一步探索 t 检验,也可以参考这篇博文。
如果想读书,强推的 “Think Stats: Probability and Statistics for Programmers” 在假设检验方面同样适用。第七章将系统讲解假设检验——即使您尚未通读前面关于分布的章节。
若偏好课程,DataCamp 的 Statistical Thinking in Python(第 2 部分) 提供导论与测试示例,助您在假设检验等诸多主题上获得必要的知识与实践。
Python 中的统计建模与拟合
既然已经掌握了假设检验与分布,您可以先回顾或更深入学习如何构建统计模型,以及如何将分布拟合到数据。
统计模型用于逼近生成数据的过程,可在数据分析中用于汇总、预测与模拟。换言之,它是对生成数据的复杂现象的一种表示,可用于做摘要、预测或模拟。
这也意味着,您需要能够判断数据是否符合该模型。
为了在模型与数据之间提供最佳拟合,可使用估计。估计关注的是基于样本信息对总体进行推断。与假设检验并列,它是通过样本了解总体的另一种方式。
本教程借助 Python 库 SciPy 引入拟合主题。
统计数据建模与拟合也是 Christopher Fonnesbeck 制作并以笔记本形式呈现的这份统计分析教程中的一个章节。这个名字您现在应该耳熟了!
对视频更感兴趣的同学,YouTube 上也有该教程的四段视频,涵盖最大似然与矩估计等主题。
您可以在这里观看本教程的视频。
另外,若想了解用于统计模式分类的最大似然估计,别错过这个 IPython 笔记本 或这个笔记本,讲解了如何针对不同分布计算该估计。上述笔记本来自 Sebastian Raschka 的模式分类仓库,他还有另一个关于其Python 机器学习一书的仓库。
用 Python 学习机器学习
提到这本机器学习书,您可能会想:这篇文章不是讲统计学的吗?
没错。
机器学习与统计学并不相同,但它们都在问同一个问题:我们如何从数据中学习?
此外,机器学习与统计学技术也常被用于模式识别或数据挖掘等场景。
机器学习是您数据科学工具箱中的一件利器。它范围极广,若要弄清其概念与算法,您可以投入大量时间。
这就是为什么最好现在就开始!
但由于其领域宽广、学习资源众多,起步并非易事。
Andrew Ng 授课的这门机器学习通识课程偏理论,但如果您想先从理论角度把握主要概念与算法,依然值得推荐。
当然,也有许多更偏实操的资源可帮助您起步。
以下仅是其中一部分:
这份基于 SciPy 的机器学习温和入门将助您走上正轨。本教程非常适合希望温习基础统计并在此基础上进阶的读者。Kyle Kastner 将带您学习参数估计、回归、模型估计与基础分类。
如果您希望通过一本书来学习该主题,可以看看IPython Interactive Computing and Visualization Cookbook。第八章介绍了基本的机器学习概念,并演示逻辑回归、朴素贝叶斯、K 近邻、支持向量机、随机森林等算法。书中的示例使用 Scikit-learn 包。
如果您想要一份关于 Scikit-learn 的机器学习入门教程,请前往这里。
另外,别错过这篇教程,讲解朴素贝叶斯分类器。
用 Python 进行回归分析
谈到数据科学中的统计学,回归绝对绕不开。它是一种用于估计变量间关系的统计过程。
要理解如何使用 Python 做回归,您应先从线性回归的资料入手。
但请先阅读这篇教程:它使用 StatsModels 包与 Quandl 进行回归分析。文章先解释常见的回归类型,然后提供一个实践示例。
接着,通过这篇线性回归教程进一步练习。
然后,您可以转向非线性回归。关于 Python 中岭回归与套索回归的教程,可参考 这篇 Analytics Vidhya 教程。文章使用 NumPy、Pandas、Matplotlib 与 Scikit-learn 等 Python 库,清晰讲解如何入手该主题。
这里还有一份很棒的逻辑回归笔记本教程,您可以在此处找到。
另外,别错过这篇 Yhat 博文,介绍用 Rodeo 进行逻辑回归。

Python 中的贝叶斯思维与建模
贝叶斯统计是一种理论,用称为贝叶斯概率的“信念度”来表达关于真实世界状态的证据。有时,您会希望以贝叶斯的方法来处理数据科学问题。
这具体意味着什么,将在这组精彩的五篇系列文章导论中变得清晰,内容介绍了频率学派与贝叶斯学派。
如果您更偏爱读书,可以查阅“Think Bayes: Bayesian Statistics in Python”。另一本上佳的入门资源是“Bayesian Methods For Hackers”。这两本都是入门贝叶斯思维与建模的必读书!
或者,如果您想要一份笔记本形式的介绍,可以阅读该教程,带您入门贝叶斯定理。
此外,别错过这份教程 与配套的 YouTube 视频,内容涵盖贝叶斯统计、马尔可夫链蒙特卡罗、PyMC、分层建模,以及模型检验与验证。
关于 Python 中贝叶斯模型拟合的教程,请查看这些 IPython 笔记本及配套 YouTube 视频,这是 Jake VanderPlas 在 2014 年 ESAC 数据分析与统计研讨会上的讲座。
如果您想复用资源,可以查阅前文在机器学习部分提到的 IPython Interactive Computing and Visualization Cookbook。本书第七章讲的是统计数据分析,但侧重于用于假设检验、参数与非参数估计,以及模型推断的频率学派与贝叶斯方法。
这里有一份关于 PyMC 的教程。PyMC 是一个 Python 模块,实现了贝叶斯统计模型与拟合算法,包括马尔可夫链蒙特卡罗(MCMC)。另外,这篇教程也值得一看,内容是如何用 PyMC3 实现贝叶斯线性回归模型。
马尔可夫链
简单来说,马尔可夫链是从一个“状态”跳转到另一个状态的数学系统。状态可以是一种情形或一组取值。这意味着您有一个状态列表,同时马尔可夫链告诉您从一个状态跳到任何其他状态的概率,即“转移”概率。
上文提到的一些资源已经向您介绍了该主题。
除了那些资源,您或许还想观看这个视频:它通过蒙特卡罗模拟与重抽样等方法来探索假设检验与统计建模。在深入马尔可夫链之前,这或许是巩固知识的好方式。
此外,Python 计算统计学 也将为您提供关于马尔可夫链的见解。这是一份出色的马尔可夫链蒙特卡罗入门。
用 Python 开始统计学习
这份清单只是帮助您上路。您会发现很多资源彼此重叠,或者还能找到更多其他资源。欢迎在Twitter上告诉我们!
无论如何,开始用 Python 学习统计学的最佳时机就是现在。
立即开始
数据科学与统计学
根据我们的“8(个简单)步骤学数据科学”信息图,学习数据科学的第一步之一是深入理解统计学、数学与机器学习。
如果您还记得,下一步是学习如何编程。
但当您已经掌握了用于数据科学所需的全部 Python 知识,就该巩固您所获得的这些知识了。
本博文所列并配套资源的统计学主题包括:
此清单并不穷尽数据科学中使用的统计学内容,但足以帮助您起步。:)
顺带一提,如果您仍在寻找用来开启数据科学 Python 学习的资源,建议考虑我们的Intro to Python For Data Science课程。它将帮助您用 Python 应用统计学。
为数据科学学习统计学非常注重实践,因此,别忘了也要(继续)专注于练习您在数据科学旅程之初可能已经学过的理论概念。
不过,统计学与数据科学之间究竟有何区别?
二者常被混为一谈,也有人认为并无区别,数据科学家其实就是统计学家。
但撇开这些观点不谈,多数人都能同意:统计学是数据科学所用的核心组成部分之一,也是其基础之一。
用 Python 学习统计学
今天的文章将聚焦如何用 Python 学习统计学。包括您在使用 Python 的数据科学旅程中需要探索的统计分析主题。
为什么选择 Python?
R 是学习统计学的不错起点。它是为统计计算与制图而开发,因此为用户提供了大量统计包。另一方面,Python 是一门通用语言,应用广泛。
然而,您同样可以用 Python 学习统计学。
有些人选择 Python 是因为其性能,或因为它也能完成许多 R 能做的事情。
但从本质上说,这门语言的流行度正在上升,可用于数据科学的软件包数量在近年也显著增加。
简言之,使用 Python 进行统计分析绝对有其理由。
您最终选择的工具,只取决于您要做的分析类型。
那么,准备好用 Python 开始统计学习了吗?
附注:如果您也在寻找学习 R 统计学或 R 的资源,请查看 DataCamp 的开放课程或 Intro to Statistics With R。
Python 统计学与概率论
您应首先攻克的主题很可能是统计学与概率论。网上不仅有相当多的视频和课程可供学习,还有许多(纸质)书籍可以帮助您用 Python 入门统计学。
用 Python 入门统计学
若要入门统计学,带有真实案例的这份教程是不错的选择。本教程的笔记本将向您介绍均值、中位数、标准差等概念,以及假设检验、概率分布等主题的基础。
这是开始学习统计的好方式,因为它受“Think Bayes”和“Think Stats”两本书启发,而这两本书也是下文将再次出现的强烈推荐!
如果您想找书,可以试试这本免费的Python 计算统计学,它不仅包含 Python 编程入门,还涵盖马尔可夫链蒙特卡罗、期望最大化(EM)算法、重抽样方法等诸多主题。
或者,您也可以购买 Thomas Haslwanter 的这本书,总体介绍常见统计检验、线性回归分析,以及生存分析与贝叶斯统计中的相关主题。需注意,本书以生命与医学科学为应用场景。
如您所见,上述两本书也都会带您接触到更多用 Python 学习的高阶统计主题。
如果您更喜欢视频,建议观看 Christopher Fonnesbeck(范德堡大学医学院生物统计学系助理教授)关于使用 SciPy 进行统计数据分析的这段教程。此外,Gaël Varoquaux 也有一段关于用 Python 进行推断与探索性统计的视频。后者使用了 Pandas 与 StatsModels 等 Python 包。
您会发现,这些资源都相当通用,足以帮助您用 Python 开始统计学习。
如果您在寻找能快速补齐统计基础的资源,可以看看 DataCamp 的 Statistical Thinking in Python 课程,由 Justin Bois 授课。课程将介绍探索性数据分析(EDA)、方差与协方差、均值与中位数、概率分布等诸多概念。
用 Python 学习概率论
学习 Python 统计学时,概率论同样极具价值。它研究的是随机现象。这意味着任一随机事件的结果是非确定性的:可能出现若干种结果中的任意一种,最终结果由随机性决定。
概率论是统计学的概念渊源。
上文提到的资源给出了统计学的一般性介绍,有些也涵盖了概率论(考虑到上述关系,这是合情合理的),但也有专门聚焦该主题的资源。
您还可以查阅以下资源:
强烈推荐 EdX 上的 Computational Probability and Inference 课程。这门由 MIT 教员授课的动手课程,将让您熟悉概率与推断的原理。
您还应阅读由 Brian Blais 教授撰写的这本免费书,它是一部以概率论作为逻辑出发点的统计推断入门教材。
Python 概率分布
要真正用 Python 为数据科学学习统计学,您还应建立起关于何时使用何种分布的良好直觉。分布是一个列表或函数,展示数据的所有可能取值或区间,以及它们出现的频率。
查看这份清单您就会发现,可考虑的分布相当之多。
若要用 SciPy 了解均匀、正态、二项与泊松分布的入门,您可以查看这篇博文。
强烈推荐 “Think Stats: Probability and Statistics for Programmers” 一书的第四章,它将带您认识连续分布。不过,第五章同样会给出关于概率分布的扎实介绍。
在可视化分布时,直方图等工具会很有用。若想快速了解,您可以查看这个 IPython 笔记本,它简要介绍了以均值、分位数与直方图为核心的描述性统计及其关系。要进一步学习如何可视化分布,请参阅这份 Seaborn 教程。
此外还有这份Plotly 教程,介绍 Python 中的基础统计。
注意,如果您想上课程系统学习部分分布(如二项与泊松)及分布函数(如经验累积分布函数),或学习如何可视化这些分布,可以查看 DataCamp 的 Statistical Thinking in Python 课程。
Python 假设检验
假设检验是一类统计检验,用于判断样本数据中是否有足够证据,以推断某项条件对总体成立。
此类检验的两大核心概念是原假设与备择假设,同时 p 值对假设检验也至关重要。对于初学者而言,这些概念不易理解,您需要花些功夫来掌握 p 值的 α 值或显著性水平,以及何时拒绝或未能拒绝原假设的区别。
您可以在 SciPy 库官网上找到一篇教程,简要介绍了 p 值与估计。
这份 SciPy 讲义将介绍 t 检验,您可以用它通过分析两组总体均值来检验假设。如果想进一步探索 t 检验,也可以参考这篇博文。
如果想读书,强推的 “Think Stats: Probability and Statistics for Programmers” 在假设检验方面同样适用。第七章将系统讲解假设检验——即使您尚未通读前面关于分布的章节。
若偏好课程,DataCamp 的 Statistical Thinking in Python(第 2 部分) 提供导论与测试示例,助您在假设检验等诸多主题上获得必要的知识与实践。
Python 中的统计建模与拟合
既然已经掌握了假设检验与分布,您可以先回顾或更深入学习如何构建统计模型,以及如何将分布拟合到数据。
统计模型用于逼近生成数据的过程,可在数据分析中用于汇总、预测与模拟。换言之,它是对生成数据的复杂现象的一种表示,可用于做摘要、预测或模拟。
这也意味着,您需要能够判断数据是否符合该模型。
为了在模型与数据之间提供最佳拟合,可使用估计。估计关注的是基于样本信息对总体进行推断。与假设检验并列,它是通过样本了解总体的另一种方式。
本教程借助 Python 库 SciPy 引入拟合主题。
统计数据建模与拟合也是 Christopher Fonnesbeck 制作并以笔记本形式呈现的这份统计分析教程中的一个章节。这个名字您现在应该耳熟了!
对视频更感兴趣的同学,YouTube 上也有该教程的四段视频,涵盖最大似然与矩估计等主题。
您可以在这里观看本教程的视频。
另外,若想了解用于统计模式分类的最大似然估计,别错过这个 IPython 笔记本 或这个笔记本,讲解了如何针对不同分布计算该估计。上述笔记本来自 Sebastian Raschka 的模式分类仓库,他还有另一个关于其Python 机器学习一书的仓库。
用 Python 学习机器学习
提到这本机器学习书,您可能会想:这篇文章不是讲统计学的吗?
没错。
机器学习与统计学并不相同,但它们都在问同一个问题:我们如何从数据中学习?
此外,机器学习与统计学技术也常被用于模式识别或数据挖掘等场景。
机器学习是您数据科学工具箱中的一件利器。它范围极广,若要弄清其概念与算法,您可以投入大量时间。
这就是为什么最好现在就开始!
但由于其领域宽广、学习资源众多,起步并非易事。
Andrew Ng 授课的这门机器学习通识课程偏理论,但如果您想先从理论角度把握主要概念与算法,依然值得推荐。
当然,也有许多更偏实操的资源可帮助您起步。
以下仅是其中一部分:
这份基于 SciPy 的机器学习温和入门将助您走上正轨。本教程非常适合希望温习基础统计并在此基础上进阶的读者。Kyle Kastner 将带您学习参数估计、回归、模型估计与基础分类。
如果您希望通过一本书来学习该主题,可以看看IPython Interactive Computing and Visualization Cookbook。第八章介绍了基本的机器学习概念,并演示逻辑回归、朴素贝叶斯、K 近邻、支持向量机、随机森林等算法。书中的示例使用 Scikit-learn 包。
如果您想要一份关于 Scikit-learn 的机器学习入门教程,请前往这里。
另外,别错过这篇教程,讲解朴素贝叶斯分类器。
用 Python 进行回归分析
谈到数据科学中的统计学,回归绝对绕不开。它是一种用于估计变量间关系的统计过程。
要理解如何使用 Python 做回归,您应先从线性回归的资料入手。
但请先阅读这篇教程:它使用 StatsModels 包与 Quandl 进行回归分析。文章先解释常见的回归类型,然后提供一个实践示例。
接着,通过这篇线性回归教程进一步练习。
然后,您可以转向非线性回归。关于 Python 中岭回归与套索回归的教程,可参考 这篇 Analytics Vidhya 教程。文章使用 NumPy、Pandas、Matplotlib 与 Scikit-learn 等 Python 库,清晰讲解如何入手该主题。
这里还有一份很棒的逻辑回归笔记本教程,您可以在此处找到。
另外,别错过这篇 Yhat 博文,介绍用 Rodeo 进行逻辑回归。
Python 中的贝叶斯思维与建模
贝叶斯统计是一种理论,用称为贝叶斯概率的“信念度”来表达关于真实世界状态的证据。有时,您会希望以贝叶斯的方法来处理数据科学问题。
这具体意味着什么,将在这组精彩的五篇系列文章导论中变得清晰,内容介绍了频率学派与贝叶斯学派。
如果您更偏爱读书,可以查阅“Think Bayes: Bayesian Statistics in Python”。另一本上佳的入门资源是“Bayesian Methods For Hackers”。这两本都是入门贝叶斯思维与建模的必读书!
或者,如果您想要一份笔记本形式的介绍,可以阅读该教程,带您入门贝叶斯定理。
此外,别错过这份教程 与配套的 YouTube 视频,内容涵盖贝叶斯统计、马尔可夫链蒙特卡罗、PyMC、分层建模,以及模型检验与验证。
关于 Python 中贝叶斯模型拟合的教程,请查看这些 IPython 笔记本及配套 YouTube 视频,这是 Jake VanderPlas 在 2014 年 ESAC 数据分析与统计研讨会上的讲座。
如果您想复用资源,可以查阅前文在机器学习部分提到的 IPython Interactive Computing and Visualization Cookbook。本书第七章讲的是统计数据分析,但侧重于用于假设检验、参数与非参数估计,以及模型推断的频率学派与贝叶斯方法。
这里有一份关于 PyMC 的教程。PyMC 是一个 Python 模块,实现了贝叶斯统计模型与拟合算法,包括马尔可夫链蒙特卡罗(MCMC)。另外,这篇教程也值得一看,内容是如何用 PyMC3 实现贝叶斯线性回归模型。
马尔可夫链
简单来说,马尔可夫链是从一个“状态”跳转到另一个状态的数学系统。状态可以是一种情形或一组取值。这意味着您有一个状态列表,同时马尔可夫链告诉您从一个状态跳到任何其他状态的概率,即“转移”概率。
上文提到的一些资源已经向您介绍了该主题。
除了那些资源,您或许还想观看这个视频:它通过蒙特卡罗模拟与重抽样等方法来探索假设检验与统计建模。在深入马尔可夫链之前,这或许是巩固知识的好方式。
此外,Python 计算统计学 也将为您提供关于马尔可夫链的见解。这是一份出色的马尔可夫链蒙特卡罗入门。
用 Python 开始统计学习
这份清单只是帮助您上路。您会发现很多资源彼此重叠,或者还能找到更多其他资源。欢迎在Twitter上告诉我们!
无论如何,开始用 Python 学习统计学的最佳时机就是现在。
立即开始