常见分布

1.概念

cdf-累计分布函数
pdf-概率密度函数
Gamma函数

2.常见分布-离散型

0-1分布/伯努利分布

随机变量X只可能有0,1两个值,S={0,1},它的分布律是

P{X=k}=pk(1p)1k,k=0,1(0<p<1)

Bern(x|μ)=μx(1μ)1x

E[x]=μ

var[x]=μ(1μ)

则称X服从以p为参数的(0-1)分布,或者两点分布

二项分布

P{X=k}=(nk)pk(1p)nk,k=0,1,2,...,n

n=101

Bin(m|N,μ)=(Nm)μk(1μ)Nm

E[m]=Nμ

var[m]=Nμ(1μ)

多项式分布

kA1A2AkX1X2Xkp1p2pknA1n1A2n2AknkP:

用另一种形式写为:

泊松分布

P{X=k}=λkeλk!,k=0,1,2,...,λ>0

Xπ(λ)

,

P{Xk}=i=1kλkeλk!,λ>0

点击查看代码

from scipy.stats import poisson
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)

mu = 10
mean, var, skew, kurt = poisson.stats(mu, moments='mvsk')# Mean(‘m’), variance(‘v’), skew(‘s’), and/or kurtosis(‘k’).

x = np.arange(poisson.ppf(0.01, mu),
              poisson.ppf(0.99, mu))
print(x)
print(poisson.pmf(x, mu))

ax.plot(x, poisson.pmf(x, mu), 'bo', ms=8, label='poisson pmf')
ax.vlines(x, 0, poisson.pmf(x, mu), colors='b', lw=5, alpha=0.5)
# vline - Plot vertical lines at each x from ymin to ymax.

rv = poisson(mu)
ax.vlines(x, 0, rv.pmf(x), colors='k', linestyles='-', lw=1,
        label='frozen pmf')
ax.legend(loc='best', frameon=False)

plt.show()

点击查看代码

# 生成泊松随机数
r = poisson.rvs(mu, size=1000)

3.常见连续型分布

均匀分布

f(x)={1ba,a<x<b0,otherwise

XU(a,b)

点击查看代码
from scipy.stats import uniform
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)

mean, var, skew, kurt = uniform.stats(moments='mvsk')

x = np.linspace(uniform.ppf(0.01),
                uniform.ppf(0.99), 100)
ax.plot(x, uniform.pdf(x),
       'r-', lw=5, alpha=0.6, label='uniform pdf')

rv = uniform()
ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

r = uniform.rvs(size=1000)
ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)
ax.legend(loc='best', frameon=False)
plt.show()

指数分布

X

f(x)={λeλx,x>00,x0

λ>0,Xλ(Exponential),XE(λ)XExp(λ)

F(x)={1eλx,x>00,x0

指数分布性质

指数分布具有无记忆性

t0>0,t>0

P(X>t0+t|X>t0)=P(X>t0+t,X>t0)P(X>t0)=P(X>t0+t)P(X>t0)=1F(t0+t)1F(t0)

=eλ(t0+t)eλt0=eλt=P(X>t)

点击查看代码

# 注意这里的参数计算方式 pdf = lambda * exp(-lambda * x),scale = 1 / lambda

from scipy.stats import expon
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)

lamda = 10
scl = 1 / lamda

x = np.linspace(expon.ppf(0.01),
                expon.ppf(0.99), 60)
ax.plot(x, expon.pdf(x, scale=scl),
        'bo', lw=5, alpha=0.6, label='expon pdf')

点击查看代码

# 累计分布函数
from scipy.stats import expon
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)

lamda = 2/13
scl = 1 / lamda

x = np.linspace(expon.ppf(0.01),
                expon.ppf(0.99), 60)
ax.plot(x, expon.cdf(x, scale=scl),
        'bo', lw=5, alpha=0.6, label='expon cdf')

正态分布

N(x|μ,σ2)=12πσe(xμ)22σ2,<x<

F(x)=12πσxe(xμ)22σ2dx

N(x|μ,Σ)=1(2π)D21(|Σ|)12exp{12(xμ)TΣ1(xμ)}

Λ=Σ1
ΛWishart,(μ,Λ)Wishart

点击查看代码

from scipy.stats import norm
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
fig, ax = plt.subplots(1, 1)

x = np.linspace(norm.ppf(0.01),
                norm.ppf(0.99), 100)
ax.plot(x, norm.pdf(x),
        'r-', lw=5, alpha=0.6, label='norm pdf')

# 面积图
x = np.linspace(norm.ppf(0.025),
                norm.ppf(0.975), 100)
plt.stackplot(x, norm.pdf(x))

点击查看代码

# 累计分布函数
from scipy.stats import norm
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(1, 1)

# loc是均值
loc = 0
# scale是standard deviation 标准差
scale = 1


x = np.linspace(-4,
                4, 100)
ax.plot(x, norm.cdf(x, loc, scale),
        'r-', lw=5, alpha=0.6, label='norm pdf')

学生t分布

St(x|μ,λ,υ)=Γ(υ2+12)Γ(υ2)(λπυ)12[1+λ(xυ)2v]υ212

E[x]=υ,υ>1

var[x]=1λυυ2,υ>2

mode[x]=μ,

υ=1西
Dx,t()Wishart

St(x|μ,λ,υ)=Γ(υ2+D2)Γ(υ2)|Λ|12(πυ)D2[1+Δ2v]υ2D2

Δ2=(xμ)TΛ(xμ),

υtμ,Λ

点击查看代码
from scipy.stats import t
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)

df = 2.74
mean, var, skew, kurt = t.stats(df, moments='mvsk')

x = np.linspace(t.ppf(0.01, df),
                t.ppf(0.99, df), 100)
ax.plot(x, t.pdf(x, df),
        'r-', lw=5, alpha=0.6, label='t pdf')

rv = t(df)
ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
r = t.rvs(df, size=1000)

ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)
ax.legend(loc='best', frameon=False)
plt.show()

Beta分布

x[0,1],a,b,a>0,b>0

Beta(x|a,b)=Γ(a+b)Γ(a)Γ(b)xa1(1x)b1

E[μ]=aa+b

var[x]=ab(a+b)2(a+b+1)

mode[x]=a1a+b2

Beta,a,bx=1,x=0
a=b=1,
BetaKK=2

点击查看代码

from scipy.stats import beta
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)

a, b = 2.31, 0.627
mean, var, skew, kurt = beta.stats(a, b, moments='mvsk')

x = np.linspace(beta.ppf(0.01, a, b),
                beta.ppf(0.99, a, b), 100)
ax.plot(x, beta.pdf(x, a, b),
        'r-', lw=5, alpha=0.6, label='beta pdf')
rv = beta(a, b)
ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
r = beta.rvs(a, b, size=1000)
ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)
ax.legend(loc='best', frameon=False)
plt.show()

狄利克雷分布

K0μk1,k=1,2,...,K,

0μk1,k=1Kμk=1,αk>0

μ=(μ1,...,μK)T,α=(α1,...,αK)T,

Dir(μ|α)=C(α)k=1Kμkαk1

α^=k=1Kαk

C(α)=Γ(α^)Γ(α1)...Γ(αK)

E[μk]=αkα^

var[μk]=αk(α^αk)α^2(α^+1)

cov[μjμk]=αjαkα^2(α^+1)

E[lnμk]=ϕ(αk)ϕ(α^)

ϕ(α)=ddαlnΓ(α)digamma

μk

Gamma分布

Gammaτ>0,a,b,a>0,b>0

Gam(τ|a,b)=1Γ(a)baτa1ebτ

E[τ]=ab

var[τ]=ab2

E[lnτ]=ϕ(a)ln(b),ϕdigamma

Gamma()
a=1Gamma

Wishart分布

Whishart,WD×D,υ,υ>D1

W(Λ|W,υ)=B(W,υ)|Λ|υD12exp(12Tr(W1Λ))

B(W,υ)=|W|υ2(2υD2πD(D1)4i=1DΓ(υ+1i2))1

E[Λ]=υW

[ln|Λ|]=i=1Dϕ(υ+1i2)+Dln2+ln|W|

,WishartGamma,a=υ2,b=12W

拉普拉斯分布

f(x|μ,λ)=1λexp(|xμ|λ)

E[x]=μ

var[x]=2λ2

线L1

4.混合分布

高斯-Gamma分布

N(x|μ,λ1),μ,λ

p(μ,λ|μ0,β,a,b)=N(μ|μ0,(βλ)1)Gam(λ|a,b)

高斯-Wishart分布

N(x|μ,Λ),μΛ

p(μ,Λ|μ0,β,W,υ)=N(μ|μ0,(βΛ)1)W(Λ|W,υ)

5.表格整理

一维

名称 分布函数                                               均值                           方差                             共轭先验                   
伯努利分布 Bern(x|μ)=μx(1μ)1x E[x]=μ var[x]=μ(1μ) μbeta
二项分布 Bin(m|N,μ)=(Nm)μk(1μ)Nm E[m]=Nμ var[m]=Nμ(1μ) μbeta
Beta分布 Beta(x|a,b)=Γ(a+b)Γ(a)Γ(b)xa1(1x)b1 E[μ]=aa+b var[x]=ab(a+b)2(a+b+1)
一元高斯分布 N(x|μ,σ2)=12πσe(xμ)22σ2 μ σ2 μτ=1σ2Gammaμ,σ2Gamma
Gamma分布 Gam(τ|a,b)=1Γ(a)baτa1ebτ E[τ]=abE[lnτ]=ϕ(a)ln(b) var[τ]=ab2
拉普拉斯分布 f(x|μ,λ)=1λexp(|xμ|λ) E[x]=μ var[x]=2λ2

多维

名称 分布函数                                               均值                                方差                                 共轭先验         
多项式分布 μ
狄利克雷分布 Dir(μ|α)=C(α)k=1Kμkαk1 E[μk]=αkα^E[lnμk]=ϕ(αk)ϕ(α^) var[μk]=αk(α^αk)α^2(α^+1)cov[μjμk]=αjαkα^2(α^+1)
多元高斯分布 N(x|μ,Σ)=1(2π)D21(|Σ|)12exp{12(xμ)TΣ1(xμ)} E[x]=μ cov[x]=Σ μΛ=Σ1Wishart(μ,Λ)Wishart
t分布 St(x|μ,λ,υ)=Γ(υ2+12)Γ(υ2)(λπυ)12[1+λ(xυ)2v]υ212 E[x]=υυ>1 var[x]=1λυυ2υ>2

混合

名称 分布函数                                                                                          
高斯-Gamma分布 p(μ,λ|μ0,β,a,b)=N(μ|μ0,(βλ)1)Gam(λ|a,b),λ=1σ2
高斯-Wishart分布 p(μ,Λ|μ0,β,W,υ)=N(μ|μ0,(βΛ)1)W(Λ|W,υ)
posted @   筷点雪糕侠  阅读(258)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示