根据Datawhale的教学文档,对文章的结构进行了重构和概括
在概率论中,概率**质量函数(probability mass function,简写为PMF)**是离散随机变量在各特定取值上的概率。
假定离散随机变量X,共有n个取值, X 1 X_1 X1, X 2 X_2 X2, …, X n X_n Xn, 那么:
P ( X = X n ) ≥ 0 P(X=X_n) \geq 0 P(X=Xn)≥0
Σ 1 n P ( X = X n ) = 1 \Sigma_{1}^{n} P(X=X_n) =1 Σ1nP(X=Xn)=1
用到PMF的例子:二项分布,泊松分布
对于连续型随机变量,使用概率密度函数(probability density function),简称PDF,来描述其分布情况。
连续型随机变量的特点在于取任何固定值的概率都为0,因此讨论其在特定值上的概率是没有意义的,应当讨论其在某一个区间范围内的概率,这就用到了概率密度函数的概念。
假定连续型随机变量X,f(x)为概率密度函数, 对于任意实数范围如[a,b],有
P { a ≤ X ≤ b } = ∫ a b f ( x ) d x P \lbrace a\leq X \leq b\rbrace = \int ^b_a f(x) {\rm d}x P{a≤X≤b}=∫abf(x)dx
用到PDF的例子:均匀分布,正态分布,指数分布
对于连续型随机变量,通常还会用到累积分布函数 (cumulative distribution function),简称CDF,来描述其性质,在数学上CDF是PDF的积分形式。
分布函数F(x)在点x处的函数值表示X落在区间 ( − ∞ , x ] (−∞,x] (−∞,x] 内的概率,所以分布函数就是定义域为 R R R 的一个普通函数,因此我们可以把概率问题转化为函数问题,从而可以利用普通的函数知识来研究概率问题,增大了概率的研究范围
二项分布可以认为是一种只有两种结果(成功/失败)的单次试验重复多次后成功次数的分布概率。
二项分布需要满足以下条件:
在n次试验中,单次试验成功率为p,失败率q=1-p,则出现成功次数的概率为
P ( X = x ) = C n x p x q n − x P(X=x) = C_n^x p^x q^{n-x} P(X=x)=Cnxpxqn−x
泊松分布是用来描述泊松试验的一种分布,满足以下两个特征的试验可以认为是泊松试验:
泊松分布需要满足一些条件:
泊松分布的一些例子:
一个服从泊松分布的随机变量X,在具有比率参数(rate parameter) λ \lambda λ 的一段固定时间间隔内,事件发生次数为i的概率为
P { X = i } = e − λ λ i i ! P\lbrace X= i \rbrace = e^{-λ} \frac{λ^i}{i!} P{X=i}=e−λi!λi
值得注意的是,在泊松分布中:
λ = n p \lambda = np λ=np
这三个分布之间具有非常微妙的关联。
当n很大,p很小时,如n ≥ 100 and np ≤ 10时,二项分布可以近似为泊松分布。
当λ很大时,如λ≥1000时,泊松分布可以近似为正态分布。
当n很大时,np和n(1-p)都足够大时,如n ≥ 100 , np ≥10,n(1-p) ≥10时,二项分布可以近似为正态分布。
这里列举一下其他常见的离散型随机分布
考虑独立重复试验,几何分布描述的是经过k次试验才首次获得成功的概率,假定每次成功率为p,
P { X = n } = ( 1 − p ) n − 1 p P\lbrace X= n \rbrace = {(1-p)}^{n-1} p P{X=n}=(1−p)n−1p
考虑独立重复试验,负二项分布描述的是试验一直进行到成功r次的概率,假定每次成功率为p,
P { X = n } = C n − 1 r − 1 p r ( 1 − p ) n − r P\lbrace X= n \rbrace = C_{n-1}^{r-1} p^r {(1-p)}^{n-r} P{X=n}=Cn−1r−1pr(1−p)n−r
超几何分布描述的是在一个总数为N的总体中进行有放回地抽样,其中在总体中k个元素属于一组,剩余N-k个元素属于另一组,假定从总体中抽取n次,其中包含x个第一组的概率为
P { X = n } = C k x C N − k n − x C N n P\lbrace X= n \rbrace = \frac {C_{k}^{x} C_{N-k}^{n-x}} {C_{N}^{n}} P{X=n}=CNnCkxCN−kn−x
均匀分布指的是一类在定义域内概率密度函数处处相等的统计分布。
若X是服从区间[a,b]上的均匀分布,则记作X~U[a,b]。
均匀分布X的概率密度函数为
f ( x ) = { 1 b − a , a ≤ x ≤ b 0 , o t h e r s f(x)= \begin{cases} \frac {1} {b-a} , & a \leq x \leq b \\ 0, & others \end{cases} f(x)={b−a1,0,a≤x≤bothers
分布函数为
F ( x ) = { 0 , x < a ( x − a ) ( b − a ) , a ≤ x ≤ b 1 , x > b F(x)=\begin{cases} 0 , & x< a \\ (x-a)(b-a), & a \leq x \leq b \\ 1, & x>b \end{cases} F(x)=⎩⎪⎨⎪⎧0,(x−a)(b−a),1,x<aa≤x≤bx>b
均匀分布的一些例子:
正态分布,也叫做高斯分布,是最为常见的统计分布之一,是一种对称的分布,概率密度呈现钟摆的形状,其概率密度函数为
f ( x ) = 1 2 π σ e − ( x − u ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2π}\sigma}e^{\frac{-(x-u)^2}{2\sigma^2}} f(x)=2πσ1e2σ2−(x−u)2
记为X ~ N(μ, σ 2 σ^2 σ2) , 其中μ为正态分布的均值,σ为正态分布的标准差
有了一般正态分布后,可以通过公式变换将其转变为标准正态分布 Z ~ N(0,1),
Z = X − μ σ Z=\frac {X-μ} {σ} Z=σX−μ
正态分布的一些例子:
正态分布在现实生活有着非常多的例子,这一点可以从中心极限定理来解释,中心极限定理说的是一组独立同分布的随机样本的平均值近似为正态分布,无论随机变量的总体符合何种分布。
指数分布通常被广泛用在描述一个特定事件发生所需要的时间,在指数分布随机变量的分布中,有着很少的大数值和非常多的小数值。
指数分布的概率密度函数为
f ( x ) = { λ e − λ x , x ≥ 0 0 , x < 0 f(x)= \begin{cases} λe^{-λx} , & x \geq 0 \\ 0, & x < 0 \end{cases} f(x)={λe−λx,0,x≥0x<0
记为 X~E(λ), 其中λ被称为率参数(rate parameter),表示每单位时间发生该事件的次数。
分布函数为
F ( a ) = P { X ≤ a } = 1 − e − λ a , a ≥ 0 F(a) = P\{X \leq a\} = 1-e^{-λa}, a\geq 0 F(a)=P{X≤a}=1−e−λa,a≥0
指数分布的一些例子:
关于指数分布还有一个有趣的性质的是指数分布是无记忆性的,假定在等候事件发生的过程中已经过了一些时间,此时距离下一次事件发生的时间间隔的分布情况和最开始是完全一样的,就好像中间等候的那一段时间完全没有发生一样,也不会对结果有任何影响,用数学语言来表述是
P { X > s + t ∣ X > t } = P { X > s } P\{X>s+t | X> t\} =P\{X>s\} P{X>s+t∣X>t}=P{X>s}
常用来描述某个事件总共要发生n次的等待时间的分布
常用来描述在工程领域中某类具有“最弱链”对象的寿命
使用numpy库的random类或者scipy库进行随机数生成:
import numpy
# 生成大小为1000的符合b(10,0.5)二项分布的样本集
s = numpy.random.binomial(n=10,p=0.5,size=1000)
# 生成大小为1000的符合P(1)的泊松分布的样本集
s = numpy.random.poisson(lam=1,size=1000)
# 生成大小为1000的符合U(0,1)均匀分布的样本集,注意在此方法中边界值为左闭右开区间
s = numpy.random.uniform(low=0,high=1,size=1000)
# 生成大小为1000的符合N(0,1)正态分布的样本集,可以用normal函数自定义均值,标准差,也可以直接使用standard_normal函数
s = numpy.random.normal(loc=0,scale=1,size=1000)
s = numpy.random.standard_normal(size=1000)
# 生成大小为1000的符合E(1/2)指数分布的样本集,注意该方法中的参数为指数分布参数λ的倒数
s = numpy.random.exponential(scale=2,size=1000)
------------
# 以均匀分布为例,rvs可用来生成一组随机变量的值
from scipy import stats
stats.uniform.rvs(size=10)
Scipy库提供了一组用于计算离散型随机变量PMF和连续型随机变量PDF的方法:
from scipy import stats
# 计算二项分布B(10,0.5)的PMF
x=range(11)
p=stats.binom.pmf(x, n=10, p=0.5)
# 计算泊松分布P(1)的PMF
x=range(11)
p=stats.poisson.pmf(x, mu=1)
# 计算均匀分布U(0,1)的PDF
x = numpy.linspace(0,1,100)
p= stats.uniform.pdf(x,loc=0, scale=1)
# 计算正态分布N(0,1)的PDF
x = numpy.linspace(-3,3,1000)
p= stats.norm.pdf(x,loc=0, scale=1)
# 计算指数分布E(1)的PDF
x = numpy.linspace(0,10,1000)
p= stats.expon.pdf(x,loc=0,scale=1)
只需要将上节中的pmf或者pdf替换为cdf,即可得到分布函数的值:
# 以正态分布为例,计算正态分布N(0,1)的CDF
x = numpy.linspace(-3,3,1000)
p = stats.norm.cdf(x,loc=0, scale=1)
假设检验问题时统计推断中的一类重要问题,在总体的分布函数完全未知或只知其形式,不知其参数的情况,为了推断总体的某些未知特性,提出某些关于总体的假设,这类问题被称为假设检验
一个假设检验问题可以分为5步,无论细节如果变化,都一定会遵循这5个步骤。
最常用的统计检验包括回归检验(regression test),比较检验(comparison test)和关联检验(correlation test)三类。
回归检验
预测变量 | 结果变量 | |
---|---|---|
多重线性回归 | 多个,连续数值 | 连续数值 |
Logistic回归 | 连续数值 | 二元类别 |
比较检验
比较检验适用于预测变量是类别型,结果变量是数值型的情况,根据预测变量的分组数量和结果变量的数量又可以分为以下几种。
预测变量 | 结果变量 | |
---|---|---|
Paired t-test | 两组,类别 | 组来自同一总体,数值 |
Independent t-test | 两组,类别 | 组来自不同总体,数值 |
ANOVA | 两组及以上,类别 | 单个,数值 |
MANOVA | 两组及以上,类别 | 两个及以上,数值 |
关联检验
关联检验常用的只有卡方检验一种,适用于预测变量和结果变量均为类别型的情况。
非参数检验
此外,由于一般来说上述参数检验都需满足一些前提条件,样本之间独立,不同组的组内方差近似和数据满足正态性,所以当这些条件不满足的时候,我们可以尝试用非参数检验来代替参数检验。
非参数检验 | 用于替代的参数检验 |
---|---|
Spearman | 回归和关联检验 |
Sign test | T-test |
Kruskal–Wallis | ANOVA |
ANOSIM | MANOVA |
Wilcoxon Rank-Sum test | Independent t-test |
Wilcoxon Signed-rank test | Paired t-test |
事实上当我们进行假设检验的过程中是存在犯错误的可能的,并且理论上来说错误是无法完全避免的。根据定义,错误分为两类,一类错误(type I error)和二类错误(type II error)。
一类错误:拒绝真的原假设
二类错误:接受错误的原假设
一类错误可以通过α值来控制,在假设检验中选择的 α(显著性水平)对一类错误有着直接影响。α可以认为是我们犯一类错误的最大可能性。以95%的置信水平为例,a=0.05,这意味着我们拒绝一个真的原假设的可能性是5%。从长期来看,每做20次假设检验会有一次犯一类错误的事件发生。
二类错误通常是由小样本或高样本方差导致的,二类错误的概率可以用β来表示,和一类错误不同的是,此类错误是不能通过设置一个错误率来直接控制的。对于二类错误,可以从功效的角度来估计,首先进行功效分析(power analysis)计算出功效值1-β,进而得到二类错误的估计值β。
一般来说这两类错误是无法同时降低的,在降低犯一类错误的前提下会增加犯二类错误的可能性,在实际案例中如何平衡这两类错误取决于我们更能接受一类错误还是二类错误。