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

2.常见分布-离散型
0-1分布/伯努利分布
随机变量X只可能有0,1两个值,S={0,1},它的分布律是
P{X=k}=pk(1−p)1−k,k=0,1(0<p<1)
或者
Bern(x|μ)=μx(1−μ)1−x
E[x]=μ
var[x]=μ(1−μ)
则称X服从以p为参数的(0-1)分布,或者两点分布
二项分布
P{X=k}=(nk)pk(1−p)n−k,k=0,1,2,...,n
n=1就是0−1分布
或者表示为
Bin(m|N,μ)=(Nm)μk(1−μ)N−m
E[m]=Nμ
var[m]=Nμ(1−μ)
多项式分布
某随机实验如果有k个可能结局A1、A2、…、Ak,分别将他们的出现次数记为随机变量X1、X2、…、Xk,它们的概率分布分别是p1,p2,…,pk,那么在n次采样的总结果中,A1出现n1次、A2出现n2次、…、Ak出现nk次的这种事件的出现概率P有下面公式:

用另一种形式写为:

泊松分布
概率密度函数
P{X=k}=λke−λk!,k=0,1,2,...,λ>0
记为X∼π(λ)
累计概率分布函数,其实就是概率函数的累加。
P{X≤k}=k∑i=1λ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')
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)
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)={1b−a,a<x<b0,otherwise
记作X∼U(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,x≤0
其中λ>0,就称X服从参数为λ的指数分布(Exponential),记为X∼E(λ)或者X∼Exp(λ)
指数分布的分布函数为
F(x)={1−e−λx,x>00,x≤0
指数分布性质
指数分布具有无记忆性
对于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)=1−F(t0+t)1−F(t0)
=e−λ(t0+t)e−λt0=e−λt=P(X>t)
点击查看代码
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)=1√2πσe−(x−μ)22σ2,−∞<x<∞
F(x)=1√2πσ∫x−∞e−(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 = 0
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]−υ2−12
E[x]=υ,当υ>1时成立
var[x]=1λυυ−2,当υ>2时成立
mode[x]=μ,众数
υ=1称为柯西分布
对于一个D维变量x,学生t分布是将多元高斯的精度矩阵(方差的倒数)关于共轭Wishart先验积分的结果
St(x|μ,λ,υ)=Γ(υ2+D2)Γ(υ2)|Λ|12(πυ)D2[1+Δ2v]−υ2−D2
Δ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)xa−1(1−x)b−1
E[μ]=aa+b
var[x]=ab(a+b)2(a+b+1)
mode[x]=a−1a+b−2
Beta分布是伯努利分布的共轭先验,其中a,b分布表示为x=1,x=0的观测的有效先验数量
a=b=1,简化为均匀分布
Beta分布是K状态狄利克雷分布K=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()

狄利克雷分布
狄利克雷分布是K个随机变量0≤μk≤1的多变量分布,其中k=1,2,...,K,并且满足下面的限制
0≤μk≤1,K∑k=1μk=1,αk>0
记μ=(μ1,...,μK)T,α=(α1,...,αK)T,有
Dir(μ|α)=C(α)K∏k=1μαk−1k
其中
^α=K∑k=1α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τa−1e−bτ
E[τ]=ab
var[τ]=ab2
E[lnτ]=ϕ(a)−ln(b),ϕ是上面定义过的digamma函数
Gamma分布是单变量高斯分布关于精度(方差的导数)的共轭先验
a=1,Gamma分布变成指数分布
Wishart分布
Whishart分布是多元高斯的精度矩阵的共轭先验,W是一个D×D的对称正定矩阵,υ被称为分布的自由度的数量,满足限制υ>D−1
W(Λ|W,υ)=B(W,υ)|Λ|−υ−D−12exp(−12Tr(W−1Λ))
其中
B(W,υ)=|W|−υ2(2−υD2πD(D−1)4D∏i=1Γ(υ+1−i2))−1
E[Λ]=υW
[ln|Λ|]=D∑i=1ϕ(υ+1−i2)+Dln2+ln|W|
一维情况下,Wishart分布就变成了Gamma分布,参数为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−μ)1−x |
E[x]=μ |
var[x]=μ(1−μ) |
对μ的先验是beta分布 |
二项分布 |
Bin(m|N,μ)=(Nm)μk(1−μ)N−m |
E[m]=Nμ |
var[m]=Nμ(1−μ) |
对μ的先验是beta分布 |
Beta分布 |
Beta(x|a,b)=Γ(a+b)Γ(a)Γ(b)xa−1(1−x)b−1 |
E[μ]=aa+b |
var[x]=ab(a+b)2(a+b+1) |
|
一元高斯分布 |
N(x|μ,σ2)=1√2πσe−(x−μ)22σ2 |
μ |
σ2 |
对μ的先验是高斯分布对精度τ=1σ2的共轭先验是Gamma分布对μ,σ2的共轭先验是高斯−Gamma分布 |
Gamma分布 |
Gam(τ|a,b)=1Γ(a)baτa−1e−bτ |
E[τ]=abE[lnτ]=ϕ(a)−ln(b) |
var[τ]=ab2 |
|
拉普拉斯分布 |
f(x|μ,λ)=1λexp(−|x−μ|λ) |
E[x]=μ |
var[x]=2λ2 |
|
多维
名称 |
分布函数 |
均值 |
方差 |
共轭先验 |
多项式分布 |
|
|
|
对μ的共轭先验是狄利克雷分布 |
狄利克雷分布 |
Dir(μ|α)=C(α)K∏k=1μαk−1k |
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]=Σ |
μ的先验是多元高斯Λ=Σ−1的先验是Wishart分布(μ,Λ)的先验是高斯−Wishart分布 |
t分布 |
St(x|μ,λ,υ)=Γ(υ2+12)Γ(υ2)(λπυ)12[1+λ(x−υ)2v]−υ2−12 |
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,υ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)