如何在Python中实现这五类强大的概率分布

如题所述

要使用Python实现一些离散和连续的概率分布。虽然我不会讨论这些分布的数学细节,但我会以链接的方式给你一些学习这些统计学概念的好资料。在讨论这些概率分布之前,我想简单说说什么是随机变量(randomvariable)。随机变量是对一次试验结果的量化。举个例子,一个表示抛硬币结果的随机变量可以表示成PythonX={1如果正面朝上,2如果反面朝上}12X={1如果正面朝上,2如果反面朝上}随机变量是一个变量,它取值于一组可能的值(离散或连续的),并服从某种随机性。随机变量的每个可能取值的都与一个概率相关联。随机变量的所有可能取值和与之相关联的概率就被称为概率分布(probabilitydistributrion)。我鼓励大家仔细研究一下scipy.stats模块。概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布。离散概率分布也称为概率质量函数(probabilitymassfunction)。离散概率分布的例子有伯努利分布(Bernoullidistribution)、二项分布(binomialdistribution)、泊松分布(Poissondistribution)和几何分布(geometricdistribution)等。连续概率分布也称为概率密度函数(probabilitydensityfunction),它们是具有连续取值(例如一条实线上的值)的函数。正态分布(normaldistribution)、指数分布(exponentialdistribution)和β分布(betadistribution)等都属于连续概率分布。若想了解关于离散和连续随机变量的知识,你可以观看可汗学院关于概率分布的视频。二项分布(BinomialDistribution)服从二项分布的随机变量X表示在n个独立的是/非试验中成功的次数,其中每次试验的成功概率为p。E(X)=np,Var(X)=np(1−p)如果你想知道每个函数的原理,你可以在IPython笔记本中使用helpfile命令。E(X)表示分布的期望或平均值。键入stats.binom?了解二项分布函数binom的信息。二项分布的例子:抛掷10次硬币,恰好两次正面朝上的概率是多少?假设在该试验中正面朝上的概率为0.3,这意味着平均来说,我们可以期待有3次是硬币正面朝上的。我定义掷硬币的所有可能结果为k=np.arange(0,11):你可能观测到0次正面朝上、1次正面朝上,一直到10次正面朝上。我使用stats.binom.pmf计算每次观测的概率质量函数。它返回一个含有11个元素的列表(list),这些元素表示与每个观测相关联的概率值。您可以使用.rvs函数模拟一个二项随机变量,其中参数size指定你要进行模拟的次数。我让Python返回10000个参数为n和p的二项式随机变量。我将输出这些随机变量的平均值和标准差,然后画出所有的随机变量的直方图。泊松分布(PoissonDistribution)一个服从泊松分布的随机变量X,表示在具有比率参数(rateparameter)λ的一段固定时间间隔内,事件发生的次数。参数λ告诉你该事件发生的比率。随机变量X的平均值和方差都是λ。E(X)=λ,Var(X)=λ泊松分布的例子:已知某路口发生事故的比率是每天2次,那么在此处一天内发生4次事故的概率是多少?让我们考虑这个平均每天发生2起事故的例子。泊松分布的实现和二项分布有些类似,在泊松分布中我们需要指定比率参数。泊松分布的输出是一个数列,包含了发生0次、1次、2次,直到10次事故的概率。我用结果生成了以下图片。你可以看到,事故次数的峰值在均值附近。平均来说,你可以预计事件发生的次数为λ。尝试不同的λ和n的值,然后看看分布的形状是怎么变化的。现在我来模拟1000个服从泊松分布的随机变量。正态分布(NormalDistribution)正态分布是一种连续分布,其函数可以在实线上的任何地方取值。正态分布由两个参数描述:分布的平均值μ和方差σ2。E(X)=μ,Var(X)=σ2正态分布的取值可以从负无穷到正无穷。你可以注意到,我用stats.norm.pdf得到正态分布的概率密度函数。β分布(BetaDistribution)β分布是一个取值在[0,1]之间的连续分布,它由两个形态参数α和β的取值所刻画。β分布的形状取决于α和β的值。贝叶斯分析中大量使用了β分布。当你将参数α和β都设置为1时,该分布又被称为均匀分布(uniformdistribution)。尝试不同的α和β取值,看看分布的形状是如何变化的。指数分布(ExponentialDistribution)指数分布是一种连续概率分布,用于表示独立随机事件发生的时间间隔。比如旅客进入机场的时间间隔、打进客服中心电话的时间间隔、中文维基百科新条目出现的时间间隔等等。我将参数λ设置为0.5,并将x的取值范围设置为$[0,15]$。接着,我在指数分布下模拟1000个随机变量。scale参数表示λ的倒数。函数np.std中,参数ddof等于标准偏差除以$n-1$的值。/81321/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-27
R编程语言已经成为统计分析中的事实标准。但在这篇文章中,我将告诉你在Python中实现统计学概念会是如此容易。我要使用Python实现一些离散和
连续的概率分布。虽然我不会讨论这些分布的数学细节,但我会以链接的方式给你一些学习这些统计学概念的好资料。在讨论这些概率分布之前,我想简单说说什么
是 随机变量(random variable) 。随机变量是对一次试验结果的量化。

举个例子,一个表示抛硬币结果的随机变量可以表示成

X = {1 如果正面朝上,

2 如果反面朝上}

随机变量是一个变量,它取值于一组可能的值( 离散 或 连续 的),并服从某种 随机性 。随机变量的每个可能取值的都与一个概率相关联。随机变量的所有可能取值和与之相关联的概率就被称为 概率分布(probability distributrion) 。

我鼓励大家仔细研究一下 scipy.stats 模块。

概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布。

离散概率分布也称为 概率质量函数(probability mass function) 。离散概率分布的例子有伯努利分布(Bernoulli distribution)、二项分布(binomial distribution)、泊松分布(Poisson distribution)和几何分布(geometric distribution)等。

连续概率分布也称为 概率密度函数(probability density function) ,它们是具有连续取值(例如一条实线上的值)的函数。正态分布(normal distribution)、指数分布(exponential distribution)和β分布(beta distribution)等都属于连续概率分布。

若想了解更多关于离散和连续随机变量的知识,你可以观看可汗学院关于概率分布的 视频 。

二项分布(Binomial Distribution)

服从二项分布的随机变量X表示在n个独立的是/非试验中成功的次数,其中每次试验的成功概率为p。

E(X) = np, Var(X) = np(1−p)

如果你想知道每个函数的原理,你可以在IPython笔记本中使用 help file 命令。 E(X)表示分布的期望或平均值。

键入 stats.binom? 了解二项分布函数 binom 的更多信息。

二项分布的例子:抛掷10次硬币,恰好两次正面朝上的概率是多少?

假设在该试验中正面朝上的概率为0.3,这意味着平均来说,我们可以期待有3次是硬币正面朝上的。我定义掷硬币的所有可能结果为 k = np.arange(0,11) :你可能观测到0次正面朝上、1次正面朝上,一直到10次正面朝上。我使用 stats.binom.pmf 计算每次观测的概率质量函数。它返回一个含有11个元素的列表(list),这些元素表示与每个观测相关联的概率值。

您可以使用 .rvs 函数模拟一个二项随机变量,其中参数 size 指定你要进行模拟的次数。我让Python返回10000个参数为n和p的二项式随机变量。我将输出这些随机变量的平均值和标准差,然后画出所有的随机变量的直方图。

泊松分布(Poisson Distribution)

一个服从 泊松分布 的随机变量X,表示在具有比率参数(rate parameter)λ的一段固定时间间隔内,事件发生的次数。参数λ告诉你该事件发生的比率。随机变量X的平均值和方差都是λ。

E(X) = λ, Var(X) = λ

泊松分布的例子:已知某路口发生事故的比率是每天2次,那么在此处一天内发生4次事故的概率是多少?

让我们考虑这个平均每天发生2起事故的例子。泊松分布的实现和二项分布有些类似,在泊松分布中我们需要指定比率参数。泊松分布的输出是一个数列,包含了发生0次、1次、2次,直到10次事故的概率。我用结果生成了以下图片。

你可以看到,事故次数的峰值在均值附近。平均来说,你可以预计事件发生的次数为λ。尝试不同的λ和n的值,然后看看分布的形状是怎么变化的。

现在我来模拟1000个服从泊松分布的随机变量。

正态分布(Normal Distribution)

正态分布 是一种连续分布,其函数可以在实线上的任何地方取值。正态分布由两个参数描述:分布的平均值μ和方差σ2 。

E(X) = μ, Var(X) = σ2

正态分布的取值可以从负无穷到正无穷。你可以注意到,我用 stats.norm.pdf 得到正态分布的概率密度函数。

β分布(Beta Distribution)

β分布是一个取值在 [0, 1] 之间的连续分布,它由两个形态参数α和β的取值所刻画。

β分布的形状取决于α和β的值。贝叶斯分析中大量使用了β分布。

当你将参数α和β都设置为1时,该分布又被称为均匀分布(uniform distribution)。尝试不同的α和β取值,看看分布的形状是如何变化的。

指数分布(Exponential Distribution)

指数分布是一种连续概率分布,用于表示独立随机事件发生的时间间隔。比如旅客进入机场的时间间隔、打进客服中心电话的时间间隔、中文维基百科新条目出现的时间间隔等等。

我将参数λ设置为0.5,并将x的取值范围设置为 $[0, 15]$ 。

接着,我在指数分布下模拟1000个随机变量。 scale 参数表示λ的倒数。函数 np.std 中,参数 ddof 等于标准偏差除以 $n-1$ 的值。本回答被网友采纳
相似回答