常见分布

1.概念

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

2.常见分布-离散型

0-1分布/伯努利分布

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

\[P\left\{X=k\right\} = p^k(1-p)^{1-k}, k=0,1 (0<p<1) \]

\(或者\)

\[Bern(x|\mu)=\mu^x(1-\mu)^{1-x} \]

\[\mathbb{E}[x]=\mu \]

\[var[x]=\mu(1-\mu) \]

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

二项分布

\[P\left\{X=k\right\}=\begin{pmatrix} n\\ k\\ \end{pmatrix}p^k(1-p)^{n-k},k=0,1,2,...,n\]

\(n=1 就是0-1分布\)
\(或者表示为\)

\[Bin(m|N,\mu)=\begin{pmatrix} N\\ m\\ \end{pmatrix}\mu^k(1-\mu)^{N-m}\]

\[\mathbb{E}[m]=N\mu \]

\[var[m]=N\mu(1-\mu) \]

多项式分布

\(某随机实验如果有k个可能结局A_1、A_2、…、A_k,分别将他们的出现次数记为随机变量X_1、X_2、…、X_k,它们的概率分布分别是p_1,p_2,…,p_k,那么在n次采样的总结果中,A_1出现n_1次、A_2出现n_2次、…、A_k出现n_k次的这种事件的出现概率P有下面公式:\)

用另一种形式写为:

泊松分布

\(概率密度函数\)

\[P\left\{X=k\right\}=\frac{\lambda^ke^{-\lambda}}{k!} , k = 0,1,2,...,\lambda >0 \]

\(记为 X \sim \pi(\lambda)\)

\(累计概率分布函数,其实就是概率函数的累加。\)

\[P\left\{X\le k\right\}=\sum_{i=1}^{k}\frac{\lambda^ke^{-\lambda}}{k!} ,\lambda >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) =\begin{cases} \frac{1}{b-a}& , a < x <b \\ 0&, otherwise \\ \end{cases}\]

\(记作 X\sim 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)=\begin{cases} \lambda e^{-\lambda x} & ,x>0\\ 0 & ,x \le 0\\ \end{cases}\]

\(其中\lambda >0,就称X服从参数为\lambda的指数分布 (Exponential),记为 X \sim E(\lambda) 或者 X \sim Exp(\lambda)\)

\(指数分布的 分布函数为\)

\[F(x) = \begin{cases} 1-e^{-\lambda x} & ,x >0\\ 0 &,x\le 0\\ \end{cases}\]

指数分布性质

指数分布具有无记忆性

$对于t_0 >0,t >0 $

\(P(X > t_0+t | X>t_0) = \frac{P(X>t_0+t,X > t_0)}{P(X>t_0)}=\frac{P(X>t_0+t)}{P(X>t_0)} = \frac{1-F(t_0+t)}{1-F(t_0)}\)

\(=\frac{e^{-\lambda(t_0+t)}}{e^{-\lambda t_0}} = e ^{-\lambda 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')

正态分布

\[\mathcal{N}(x|\mu,\sigma^2)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}},-\infty < x < \infty \]

\[F(x)=\frac{1}{\sqrt{2\pi}\sigma}\int_{-\infty}^{x}e^{-\frac{(x-\mu)^2}{2\sigma^2}}dx \]

\(多维情况下\)

\[\mathcal{N}(x|\mu,\Sigma)=\frac{1}{(2\pi)^{\frac{D}{2}}}\frac{1}{(|\Sigma|)^{\frac{1}{2}}} \exp\{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\} \]

\(\Lambda=\Sigma^{-1}称为精度矩阵\)
\(\Lambda的共轭先验是一个Wishart分布,(\mu,\Lambda)的共轭先验是高斯-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|\mu,\lambda,\upsilon)=\frac{\Gamma(\frac{\upsilon}{2}+\frac{1}{2})}{\Gamma(\frac{\upsilon}{2})}(\frac{\lambda}{\pi \upsilon})^{\frac{1}{2}}[1+\frac{\lambda(x-\upsilon)^2}{v}]^{-\frac{\upsilon}{2}-\frac{1}{2}} \]

\[\mathbb{E}[x]=\upsilon,当\upsilon > 1时成立 \]

\[var[x]=\frac{1}{\lambda}\frac{\upsilon}{\upsilon-2},当\upsilon>2时成立 \]

\[mode[x]=\mu,众数 \]

\(\upsilon =1称为柯西分布\)
\(对于一个D维变量x,学生t分布是将多元高斯的精度矩阵(方差的倒数)关于共轭Wishart先验积分的结果\)

\[St(x|\mu,\lambda,\upsilon)=\frac{\Gamma(\frac{\upsilon}{2}+\frac{D}{2})}{\Gamma(\frac{\upsilon}{2})}\frac{|\Lambda|^{\frac{1}{2}}}{(\pi \upsilon)^{\frac{D}{2}}}[1+\frac{\Delta^2}{v}]^{-\frac{\upsilon}{2}-\frac{D}{2}} \]

\[\Delta^2=(x-\mu)^T\Lambda(x-\mu),定义为平均马氏距离 \]

\(\upsilon\to \infty的情况下,t分布趋近于均值\mu,精度\Lambda的正态分布\)

点击查看代码
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\in [0,1]的分布,经常用于表示某些二元事件的概率,有两个参数a,b,一般要求a>0,b>0\)

\[Beta(x|a,b)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}x^{a-1}(1-x)^{b-1} \]

\[\mathbb{E}[\mu]=\frac{a}{a+b} \]

\[var[x]=\frac{ab}{(a+b)^2(a+b+1)} \]

\[mode[x]=\frac{a-1}{a+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\le \mu_k\le 1的多变量分布,其中k=1,2,...,K,并且满足下面的限制\)

\[0\le \mu_k\le 1,\sum\limits_{k=1}^{K}\mu_k=1,\alpha_k>0 \]

\(记\mu =(\mu_1,...,\mu_K)^T,\alpha = (\alpha_1,...,\alpha_K)^T,有\)

\[Dir(\mu|\alpha)=C(\alpha)\prod\limits_{k=1}^{K}\mu_k^{\alpha_k-1} \]

\(其中\)

\[\hat \alpha = \sum\limits_{k=1}^{K}\alpha_k \]

\[C(\alpha)=\frac{\Gamma(\hat \alpha)}{\Gamma(\alpha_1)...\Gamma(\alpha_K)} \]

\(有\)

\[\mathbb{E}[\mu_k]=\frac{\alpha_k}{\hat \alpha} \]

\[var[\mu_k]=\frac{\alpha_k(\hat \alpha-\alpha_k)}{\hat \alpha^2(\hat \alpha +1)} \]

\[cov[\mu_j\mu_k]=-\frac{\alpha_j\alpha_k}{\hat \alpha^2(\hat \alpha+1)} \]

\[\mathbb{E}[\ln \mu_k]=\phi(\alpha_k)-\phi(\hat \alpha) \]

\(其中\)

\[\phi(\alpha)=\frac{d}{d\alpha}\ln \Gamma(\alpha)-称为digamma函数 \]

\(狄利克雷分布是多项式分布关于参数\mu_k的共轭先验\)

Gamma分布

\(Gamma分布是正随机变量\tau>0的概率分布,参数a,b,满足限制a>0,b>0\)

\[Gam(\tau|a,b)=\frac{1}{\Gamma(a)}b^a\tau^{a-1}e^{-b\tau} \]

\[\mathbb{E}[\tau]=\frac{a}{b} \]

\[var[\tau]=\frac{a}{b^2} \]

\[\mathbb{E}[ln \tau]=\phi(a)-\ln(b),\phi是上面定义过的digamma函数 \]

\(Gamma分布是单变量高斯分布关于精度(方差的导数)的共轭先验\)
\(a=1,Gamma分布变成指数分布\)

Wishart分布

\(Whishart分布是多元高斯的精度矩阵的共轭先验,W是一个D\times D的对称正定矩阵,\upsilon被称为分布的自由度的数量,满足限制\upsilon > D-1\)

\[\mathcal{W}(\Lambda|W,\upsilon)=B(W,\upsilon)|\Lambda|^{-\frac{\upsilon-D-1}{2}}\exp(-\frac{1}{2}Tr(W^{-1}\Lambda)) \]

\(其中\)

\[B(W,\upsilon)=|W|^{-\frac{\upsilon}{2}}(2^{-\frac{\upsilon D}{2}}\pi^{\frac{D(D-1)}{4}}\prod\limits_{i=1}^{D}\Gamma(\frac{\upsilon +1 -i}{2}))^{-1} \]

\[\mathbb{E}[\Lambda]=\upsilon W \]

\[\mathbb[\ln|\Lambda|]=\sum\limits_{i=1}^{D}\phi(\frac{\upsilon+1-i}{2})+D\ln 2+\ln |W| \]

\(一维情况下,Wishart分布就变成了Gamma分布,参数为a=\frac{\upsilon}{2},b=\frac{1}{2W}\)

拉普拉斯分布

\[f(x|\mu,\lambda)=\frac{1}{\lambda}exp(-\frac{|x-\mu|}{\lambda}) \]

\[\mathbb{E}[x]=\mu \]

\[var[x]=2\lambda^2 \]

\(线性回归的L1正则模型等价于贝叶斯回归的拉普拉斯分布先验的模块\)

4.混合分布

高斯-Gamma分布

\(这是一元高斯分布\mathcal{N}(x|\mu,\lambda^{-1}),均值\mu,精度\lambda均未知\)

\[p(\mu,\lambda|\mu_0,\beta,a,b)=\mathcal{N}(\mu|\mu_0,(\beta\lambda)^{-1})Gam(\lambda|a,b) \]

高斯-Wishart分布

\(这是多元高斯分布\mathcal{N}(x|\mu,\Lambda)的共轭先验,其中均值\mu和精度\Lambda均未知\)

\[p(\mu,\Lambda|\mu_0,\beta,W,\upsilon)=\mathcal{N}(\mu|\mu_0,(\beta\Lambda)^{-1})\mathcal{W}(\Lambda|W,\upsilon) \]

5.表格整理

一维

名称 分布函数                                               均值                           方差                             共轭先验                   
伯努利分布 \(Bern(x|\mu)=\mu^x(1-\mu)^{1-x}\) \(\mathbb{E}[x]=\mu\) \(var[x]=\mu(1-\mu)\) \(对\mu的先验是beta分布\)
二项分布 \(Bin(m|N,\mu)=\begin{pmatrix}N\\ m\end{pmatrix}\mu^k(1-\mu)^{N-m}\) \(\mathbb{E}[m]=N\mu\) \(var[m]=N\mu(1-\mu)\) \(对\mu的先验是beta分布\)
Beta分布 \(Beta(x|a,b)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}x^{a-1}(1-x)^{b-1}\) \(\mathbb{E}[\mu]=\frac{a}{a+b}\) \(var[x]=\frac{ab}{(a+b)^2(a+b+1)}\)
一元高斯分布 \(\mathcal{N}(x|\mu,\sigma^2)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\) \(\mu\) \(\sigma^2\) \(对\mu的先验是高斯分布\\对精度\tau=\frac{1}{\sigma^2}的共轭先验是Gamma分布\\对\mu,\sigma^2的共轭先验是高斯-Gamma分布\)
Gamma分布 \(Gam(\tau|a,b)=\frac{1}{\Gamma(a)}b^a\tau^{a-1}e^{-b\tau}\) \(\mathbb{E}[\tau]=\frac{a}{b}\\ \mathbb{E}[ln \tau]=\phi(a)-\ln(b)\) \(var[\tau]=\frac{a}{b^2}\)
拉普拉斯分布 \(f(x|\mu,\lambda)=\frac{1}{\lambda}exp(-\frac{|x-\mu|}{\lambda})\) \(\mathbb{E}[x]=\mu\) \(var[x]=2\lambda^2\)

多维

名称 分布函数                                               均值                                方差                                 共轭先验         
多项式分布 \(对\mu的共轭先验是狄利克雷分布\)
狄利克雷分布 \(Dir(\mu|\alpha)=C(\alpha)\prod\limits_{k=1}^{K}\mu_k^{\alpha_k-1}\) \(\mathbb{E}[\mu_k]=\frac{\alpha_k}{\hat \alpha}\\ \mathbb{E}[\ln \mu_k]=\phi(\alpha_k)-\phi(\hat \alpha)\) \(var[\mu_k]=\frac{\alpha_k(\hat \alpha-\alpha_k)}{\hat \alpha^2(\hat \alpha +1)}\\ cov[\mu_j\mu_k]=-\frac{\alpha_j\alpha_k}{\hat \alpha^2(\hat \alpha+1)}\)
多元高斯分布 \(\mathcal{N}(x|\mu,\Sigma)=\frac{1}{(2\pi)^{\frac{D}{2}}}\frac{1}{(|\Sigma|)^{\frac{1}{2}}} \exp\{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\}\) \(\mathbb{E}[x]=\mu\) \(cov[x]=\Sigma\) \(\mu的先验是多元高斯\\ \Lambda=\Sigma^{-1}的先验是Wishart分布\\(\mu,\Lambda)的先验是高斯-Wishart分布\)
t分布 \(St(x|\mu,\lambda,\upsilon)=\frac{\Gamma(\frac{\upsilon}{2}+\frac{1}{2})}{\Gamma(\frac{\upsilon}{2})}(\frac{\lambda}{\pi \upsilon})^{\frac{1}{2}}[1+\frac{\lambda(x-\upsilon)^2}{v}]^{-\frac{\upsilon}{2}-\frac{1}{2}}\) \(\mathbb{E}[x]=\upsilon \\当\upsilon > 1时成立\) \(var[x]=\frac{1}{\lambda}\frac{\upsilon}{\upsilon-2}\\当\upsilon>2时成立\)

混合

名称 分布函数                                                                                          
高斯-Gamma分布 \(p(\mu,\lambda|\mu_0,\beta,a,b)=\mathcal{N}(\mu|\mu_0,(\beta\lambda)^{-1})Gam(\lambda|a,b),\lambda是精度=\frac{1}{\sigma^2}\)
高斯-Wishart分布 \(p(\mu,\Lambda|\mu_0,\beta,W,\upsilon)=\mathcal{N}(\mu|\mu_0,(\beta\Lambda)^{-1})\mathcal{W}(\Lambda|W,\upsilon)\)
posted @ 2022-05-01 16:57  筷点雪糕侠  阅读(225)  评论(0编辑  收藏  举报