python统计数据画概率曲线_统计学入门级:常见概率分布+python绘制分布图

基本概念

离散型随机变量

如果随机变量X的所有取值都可以逐个列举出来,则称X为离散型随机变量。相应的概率分布有二项分布,泊松分布。

连续型随机变量

如果随机变量X的所有取值无法逐个列举出来,而是取数轴上某一区间内的任一点,则称X为连续型随机变量。相应的概率分布有正态分布,均匀分布,指数分布,伽马分布,偏态分布,卡方分布,beta分布等。(真多分布,好恐怖~~)

期望值

在离散型随机变量X的一切可能值中,各可能值与其对应概率的乘积之和称为该随机变量X的期望值,记作E(X) 。比如有随机变量,取值依次为:2,2,2,4,5。求其平均值:(2+2+2+4+5)/5 = 3。

期望值也就是该随机变量总体的均值。推导过程如下:

= (2+2+2+4+5)/5

= 1/523 + 4/5 + 5/5

= 3/52 + 1/54 + 1/55

= 0.62 + 0.24 + 0.25

= 60%2 + 20%4 + 20%*5

= 1.2 + 0.8 + 1

= 3

倒数第三步可以解释为值为2的数字出现的概率为60%,4的概率为20%,5的概率为20%。 所以E(X) = 60%2 + 20%4 + 20%*5 = μ = 3。

01 两点分布

0-1分布(两点分布),它的随机变量的取值为1或0。即离散型随机变量X的概率分布为:P{X=0} = 1-p, P{X=1} = p,即:

则称随机变量X服从参数为p的0-1分布,记作X~B(1,p)。

在生活中有很多例子服从两点分布,比如投资是否中标,新生婴儿是男孩还是女孩,检查产品是否合格等等。

02 二项分布

二项分布 Binomial distribution

大家非常熟悉的抛硬币试验对应的分布就是二项分布。抛硬币试验要么出现正面,要么就是反面,只包含这两个结果。出现正面的次数是一个随机变量,这种随机变量所服从的概率分布通常称为二项分布。

像抛硬币这类试验所具有的共同性质总结如下:(以抛硬币为例)

包含n个相同的试验

每次试验只有两个可能的结果

出现“正面”的概率对于每一次试验都是相同的

试验是互相独立的

试验“出现正面”或“出现反面”可以计数,即试验结果对应于一个离散型随机变量

通常称具有上述特征的n次重复独立试验为n重伯努利试验。简称伯努利试验或伯努利试验概型。特别地,当试验次数为1时,二项分布服从0-1分布(两点分布)。

设在一次试验中,事件A发生的概率为>p(0

其中

表示从n个元素中抽取k个元素的组合,计算公式为:

举个栗子:抛3次均匀的硬币,求结果出现有2个正面的概率。

已知p = 0.5 (出现正面的概率) ,n = 3 ,k = 2

所以抛3次均匀的硬币,求结果出现有2个正面的概率为3/8。

二项分布的期望值和方差分别为:

E(X) = np

D(X) = np(1-p)

最后使用Python绘制二项分布的概率分布图

%matplotlib inline

import matplotlib.pyplot as plt

import seaborn as sns

sns.set(color_codes=True)

sns.set(rc={'figure.figsize':(5,5)})

from scipy.stats import binom

data_binom = binom.rvs(n = 10, p = 0.8, size = 10000)

ax = sns.distplot(data_binom,

kde = False,

color = 'skyblue',

hist_kws = {'linewidth': 0.1, 'alpha': 1})

ax.set(xlabel ='Binomial Distribution', ylabel = 'Frequency')

03 泊松分布

泊松分布 Poisson distribution

泊松分布是用来描述在一指定时间范围内或在指定的面积或体积之内某一事件出现的次数的分布。生活中服从泊松分布的例子比如有每天房产中介接待的客户数,某微博每月出现服务器瘫痪的次数等等。 泊松分布的公式为:

其中 λ 为给定的时间间隔内事件的平均数,λ = np。e为一个数学常数,一个无限不循环小数,其值约为2.71828。

泊松分布的期望值和方差分别为:

E(X) = λ

D(X) = λ

使用Python绘制泊松分布的概率分布图:

from scipy.stats import poisson

data_poisson = poisson.rvs(mu = 3, size = 10000)

ax = sns.distplot(data_poisson,

bins = 30,

kde = False,

color = 'lightgreen',

hist_kws = {'linewidth': 1, 'alpha': 1})

ax.set(xlabel = 'Poisson Distribution', ylabel = 'Frequency')

04 正态分布

概率密度函数

因为连续型随机变量可以取某一区间或整个实数轴上的任意一个值,所以通常用一个函数f(x)来表示连续型随机变量,而f(x)就称为概率密度函数。

概率密度函数f(x)具有如下性质:

f(x) ≥ 0, -∞

需要注意的是,f(x)不是一个概率,即f(x) ≠ P(X = x) 。在连续分布的情况下,随机变量X在a与b之间的概率可以写成:

正态分布 Normal Distribution

正态分布(或高斯分布)是连续型随机变量的最重要也是最常见的分布,比如学生的考试成绩就呈现出正态分布的特征,大部分成绩集中在某个范围(比如60-80分),很小一部分往两端倾斜(比如50分以下和90多分以上)。还有人的身高等等。

正态分布的定义:

如果随机变量X的概率密度为( -∞

则称X服从正态分布,记作X~N(μ,σ²)。其中-∞<μ<+∞,σ>0, μ为随机变量X的均值,σ为随机变量X的标准差。正态分布的分布函数

正态分布的图形特点:

f(x) ≥ 0,所以整个概率密度曲线都在x轴的上方

正态分布的概率密度曲线是一条关于x = μ对称的钟形曲线,表现为“两头小,中间大,左右对称”的特点。所以正态分布的期望、均值、中位数和众数相同,都等于μ。

当x = μ时,概率密度f(x)达到最大值,此时

当x趋于无穷时,曲线以x轴为渐近线。

μ决定了曲线的中心位置,固定σ的值,改变μ的值,曲线沿x轴平行移动而不会改变其形状。

而σ则决定了曲线的陡峭程度,固定μ的值,改变σ的值,σ越大曲线越平缓,σ越小曲线越陡峭。

使用Python绘制正态分布的概率分布图:

from scipy.stats import norm

data_norm = norm.rvs(size = 10000, loc = 0, scale = 1)

ax = sns.distplot(data_norm,

bins = 30,

kde = True,

color = 'orange',

hist_kws = {'linewidth': 1, 'alpha': 1})

ax.set(xlabel = 'Normal Distribution', ylabel = 'Frequency')

3σ准则

正态分布有一个3σ准则,即数值分布在(μ-σ,μ+σ)中的概率为0.6827,分布在(μ-2σ,μ+2σ)中的概率为0.9545,分布在(μ-3σ,μ+3σ)中的概率为0.9973,也就是说大部分数值是分布在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性很小很小,仅占不到0.3%,属于极个别的小概率事件,所以3σ准则可以用来检测异常值。

标准正态分布

当μ=0,σ=1时,有

此时的正态分布N(0,1) 称为标准正态分布。因为μ,σ都是确定的取值,所以其对应的概率密度曲线是一条形态固定的曲线。

对标准正态分布,通常用φ(x)表示概率密度函数,用Φ(x)表示分布函数:

Z-Score(标准分数)

假设有一次物理考试特别难,满分100分,全班只有大概20个人及格。与此同时语文考试很简单,全班绝大部分都考了90分以上。小明的物理和语文分别考了60分和80分,他回家后告诉家长,这时家长能仅仅从两科科目的分值直接判断出这次小明的语文成绩要比物理好很多吗?如果不能,应该如何判断呢?此时Z-score就派上用场了。Z-Score的计算定义:

即将随机变量X先减去总体样本均值,再除以总体样本标准差就得到标准分数啦。如果X低于平均值,则Z为负数,反之为正数。通过计算标准分数,可以将任何一个一般的正态分布转化为标准正态分布。

小明家长从老师那得知物理的全班平均成绩为40分,标准差为10,而语文的平均成绩为92分,标准差为4。分别计算两科成绩的标准分数:

物理:标准分数 = (60-40)/10 = 2

语文:标准分数 = (85-95)/4 = -2.5

从计算结果来看,说明这次考试小明的物理成绩在全部同学中算是考得很不错的,而语文考得很差。

05 指数分布

指数分布Exponential Distribution

指数分布可能容易和前面的泊松分布混淆,泊松分布强调的是某段时间内随机事件发生的次数的概率分布,而指数分布说的是随机事件发生的时间间隔的概率分布。比如一班地铁进站的间隔时间。如果随机变量X的概率密度为:

则称X服从指数分布,其中的参数λ>0。对应的分布函数为:

均匀分布的期望值和方差分别为:

使用Python绘制指数分布的概率分布图:

from scipy.stats import expon

data_expon = expon.rvs(scale = 1, loc = 0, size = 1000)

ax = sns.distplot(data_expon,

kde = True,

bins = 30,

color = 'pink',

hist_kws = {'linewidth': 1, 'alpha':1})

ax.set(xlabel = 'Exponential Distribution', ylabel = 'Frequency')

均匀分布

均匀分布 Uniform distribution

均匀分布有两种,分为离散型均匀分布和连续型均匀分布。其中离散型均匀分布最常见的例子就是抛掷骰子啦。抛掷骰子出现的点数就是一个离散型随机变量,点数可能有1,2,3,4,5,6。每个数出现的概率都是1/6。

设连续型随机变量X具有概率密度函数:

则称X服从区间(a,b)上的均匀分布。X在等长度的子区间内取值的概率相同。对应的分布函数为:

f(x)和F(x)的图形分别如下图所示:

均匀分布的期望值和方差分别为:

你可能感兴趣的:(python统计数据画概率曲线)