本文链接:个人站 | 简书 | 优快云
版权声明:除特别声明外,本博客文章均采用 BY-NC-SA 许可协议。转载请注明出处。
之前在介绍 DeepAR 等时间序列预测模型时,为了简单起见,我们使用了大家比较熟悉的正态分布作为示例。在实际应用中,需要根据数据本身的特点选择合适的分布。泊松分布、二项分布、以及负二项分布都可以用来刻画计数类数据。其中,泊松分布的 μ = σ 2 \mu=\sigma^2 μ=σ2,二项分布的 μ ≥ σ 2 \mu\geq\sigma^2 μ≥σ2,负二项分布的 μ ≤ σ 2 \mu\leq\sigma^2 μ≤σ2。在我日常接触的业务场景中, μ ≤ σ 2 \mu\leq\sigma^2 μ≤σ2 较为常见,为此免不了要跟负二项分布打交道。
虽然没什么必要,但是本着「有困难要上,没困难创造困难也要上」的精神,我们还是来推导一下负二项分布的相关公式。
1. 定义
一个成功概率为 p p p 的伯努利试验,不断重复,直至失败 r r r 次。此时成功的次数为一个随机变量,用 X X X 表示。称 X X X 服从负二项分布,记作 X ∼ N B ( r , p ) X\sim NB(r, p) X∼NB(r,p)。
需要注意的是,负二项分布的定义并不唯一。例如 tensorflow_probability 使用的定义与本文一致,而 scipy 则将
X
X
X 定义为伯努利试验成功
r
r
r 次时的失败次数。使用前一定要先看清楚,别问我怎么知道的。此外,Wikipedia 词条不同段落使用的定义竟然也不完全一致,或许是由不同的人编辑的。
2. 概率质量函数
X
=
k
X=k
X=k 时总共进行了
k
+
r
k+r
k+r 次试验,最后一次为失败,故前
k
+
r
−
1
k+r-1
k+r−1 次试验总共成功了
k
k
k 次,失败了
r
−
1
r-1
r−1 次。因此
f
(
k
;
r
,
p
)
≡
P
r
(
X
=
k
)
=
(
k
+
r
−
1
k
)
p
k
(
1
−
p
)
r
f(k; r, p)\equiv Pr(X=k)=\tbinom{k+r-1}{k}p^k(1-p)^r
f(k;r,p)≡Pr(X=k)=(kk+r−1)pk(1−p)r
3. 期望
根据定义
E
X
=
∑
k
=
0
∞
k
f
(
k
;
r
,
p
)
=
∑
k
=
1
∞
k
f
(
k
;
r
,
p
)
=
∑
k
=
1
∞
k
(
k
+
r
−
1
)
!
k
!
(
r
−
1
)
!
p
k
(
1
−
p
)
r
=
r
p
1
−
p
∑
k
=
1
∞
[
(
k
−
1
)
+
(
r
+
1
)
−
1
]
!
(
k
−
1
)
!
[
(
r
+
1
)
−
1
]
!
p
k
−
1
(
1
−
p
)
r
+
1
=
r
p
1
−
p
∑
k
=
1
∞
f
(
k
−
1
;
r
+
1
,
p
)
\begin{aligned} \mathbb{E}X &=\sum\limits_{k=0}^{\infty}kf(k;r,p)\\ &=\sum\limits_{k=1}^{\infty}kf(k;r,p)\\ &=\sum\limits_{k=1}^{\infty}k\frac{(k+r-1)!}{k!(r-1)!}p^k(1-p)^r\\ &=\frac{rp}{1-p} \sum\limits_{k=1}^{\infty}\frac{[(k-1)+(r+1)-1]!}{(k-1)![(r+1)-1]!}p^{k-1}(1-p)^{r+1}\\ &=\frac{rp}{1-p} \sum\limits_{k=1}^{\infty}f(k-1;r+1,p) \end{aligned}
EX=k=0∑∞kf(k;r,p)=k=1∑∞kf(k;r,p)=k=1∑∞kk!(r−1)!(k+r−1)!pk(1−p)r=1−prpk=1∑∞(k−1)![(r+1)−1]![(k−1)+(r+1)−1]!pk−1(1−p)r+1=1−prpk=1∑∞f(k−1;r+1,p)
令
k
′
=
k
−
1
k'=k-1
k′=k−1、
r
′
=
r
+
1
r'=r+1
r′=r+1,显然
∑
k
=
1
∞
f
(
k
−
1
;
r
+
1
,
p
)
=
∑
k
′
=
0
∞
f
(
k
′
;
r
′
,
p
)
=
1
\sum\limits_{k=1}^{\infty}f(k-1;r+1,p)=\sum\limits_{k'=0}^{\infty}f(k';r',p)=1
k=1∑∞f(k−1;r+1,p)=k′=0∑∞f(k′;r′,p)=1
故
E
X
=
r
p
1
−
p
\mathbb{E}X = \frac{rp}{1-p}
EX=1−prp
4. 方差
首先计算
E
X
2
=
∑
k
=
0
∞
k
2
f
(
k
;
r
,
p
)
=
r
p
1
−
p
∑
k
=
1
∞
k
f
(
k
−
1
;
r
+
1
,
p
)
\begin{aligned} \mathbb{E}X^2 &=\sum\limits_{k=0}^{\infty}k^2f(k;r,p)\\ &=\frac{rp}{1-p}\sum\limits_{k=1}^{\infty}kf(k-1;r+1,p) \end{aligned}
EX2=k=0∑∞k2f(k;r,p)=1−prpk=1∑∞kf(k−1;r+1,p)
令
k
′
=
k
−
1
k'=k-1
k′=k−1、
r
′
=
r
+
1
r'=r+1
r′=r+1,考虑服从负二项分布的随机变量
Y
∼
N
B
(
r
′
,
p
)
Y\sim NB(r', p)
Y∼NB(r′,p),其概率质量函数为
f
(
k
′
;
r
′
,
p
)
f(k';r',p)
f(k′;r′,p),显然
∑
k
=
1
∞
k
f
(
k
−
1
;
r
+
1
,
p
)
=
∑
k
′
=
0
∞
(
k
′
+
1
)
f
(
k
′
;
r
′
,
p
)
=
E
(
Y
+
1
)
=
E
Y
+
1
=
r
′
p
1
−
p
+
1
=
(
r
+
1
)
p
1
−
p
+
1
=
r
p
+
1
1
−
p
\begin{aligned} \sum\limits_{k=1}^{\infty}k f(k-1;r+1,p) &= \sum\limits_{k'=0}^{\infty}(k'+1)f(k';r',p)\\ &= \mathbb{E}(Y+1)\\ &= \mathbb{E}Y + 1\\ &= \frac{r'p}{1-p} + 1\\ &= \frac{(r+1)p}{1-p} + 1\\ &= \frac{rp+1}{1-p} \end{aligned}
k=1∑∞kf(k−1;r+1,p)=k′=0∑∞(k′+1)f(k′;r′,p)=E(Y+1)=EY+1=1−pr′p+1=1−p(r+1)p+1=1−prp+1
故
E
X
2
=
r
p
1
−
p
⋅
r
p
+
1
1
−
p
=
r
2
p
2
+
r
p
(
1
−
p
)
2
\mathbb{E}X^2 = \frac{rp}{1-p}\cdot \frac{rp+1}{1-p}= \frac{r^2p^2+rp}{(1-p)^2}
EX2=1−prp⋅1−prp+1=(1−p)2r2p2+rp
而根据定义
V
a
r
X
=
E
(
X
−
E
X
)
2
=
E
[
X
2
−
2
X
E
X
+
(
E
X
)
2
]
=
E
X
2
−
(
E
X
)
2
=
r
2
p
2
+
r
p
(
1
−
p
)
2
−
r
2
p
2
(
1
−
p
)
2
=
r
p
(
1
−
p
)
2
\begin{aligned} \mathrm{Var}X &= \mathbb{E}(X-\mathbb{E}X)^2\\ &=\mathbb{E}[X^2-2X\mathbb{E}X + (\mathbb{E}X)^2]\\ &= \mathbb{E}X^2 - (\mathbb{E}X)^2\\ &= \frac{r^2p^2+rp}{(1-p)^2} - \frac{r^2p^2}{(1-p)^2}\\ &= \frac{rp}{(1-p)^2} \end{aligned}
VarX=E(X−EX)2=E[X2−2XEX+(EX)2]=EX2−(EX)2=(1−p)2r2p2+rp−(1−p)2r2p2=(1−p)2rp
我们在文章开头提到,负二项分布的 σ 2 ≥ μ \sigma^2\geq\mu σ2≥μ。由于 0 ≤ p ≤ 1 0\leq p\leq1 0≤p≤1,这个结论是显而易见的。
5. 累积分布函数
负二项分布的累积分布函数可以表示为正则不完全 Beta 函数:
F
(
k
;
r
,
p
)
=
I
1
−
p
(
r
,
k
+
1
)
F(k;r,p)=I_{1-p}(r, k+1)
F(k;r,p)=I1−p(r,k+1)
证明如下:
F
(
k
;
r
,
p
)
≡
P
(
X
≤
k
)
=
∑
x
=
0
k
f
(
x
;
r
,
p
)
=
∑
x
=
0
k
(
x
+
r
−
1
x
)
p
x
(
1
−
p
)
r
\begin{aligned} F(k;r,p) &\equiv P(X\leq k)\\ &=\sum_{x=0}^kf(x;r,p)\\ &=\sum_{x=0}^k \tbinom{x+r-1}{x}p^x(1-p)^r \end{aligned}
F(k;r,p)≡P(X≤k)=x=0∑kf(x;r,p)=x=0∑k(xx+r−1)px(1−p)r
令
q
=
1
−
p
q=1-p
q=1−p,有
F
(
k
;
r
,
p
)
=
F
(
k
;
r
,
1
−
q
)
=
∑
x
=
0
k
(
x
+
r
−
1
x
)
(
1
−
q
)
x
q
r
F(k;r,p) = F(k;r,1-q) = \sum_{x=0}^k \tbinom{x+r-1}{x}(1-q)^xq^r
F(k;r,p)=F(k;r,1−q)=x=0∑k(xx+r−1)(1−q)xqr
对
q
q
q 求偏导,得
∂
F
∂
q
=
∑
x
=
0
k
(
x
+
r
−
1
x
)
[
−
x
(
1
−
q
)
x
−
1
q
r
+
r
(
1
−
q
)
x
q
r
−
1
]
=
∑
x
=
0
k
(
x
+
r
−
1
x
)
[
−
x
(
1
−
q
)
x
−
1
q
r
+
r
(
1
−
q
)
x
q
r
−
1
]
=
∑
x
=
0
k
(
x
+
r
−
1
x
)
[
x
[
(
1
−
q
)
−
1
]
(
1
−
q
)
x
−
1
q
r
−
1
+
r
(
1
−
q
)
x
q
r
−
1
]
=
∑
x
=
0
k
(
x
+
r
−
1
x
)
[
−
x
(
1
−
q
)
x
−
1
q
r
−
1
+
(
x
+
r
)
(
1
−
q
)
x
q
r
−
1
]
=
−
∑
x
=
0
k
x
(
x
+
r
−
1
x
)
(
1
−
q
)
x
−
1
q
r
−
1
+
∑
x
=
0
k
(
x
+
r
)
(
x
+
r
−
1
x
)
(
1
−
q
)
x
q
r
−
1
=
−
∑
x
=
1
k
x
(
x
+
r
−
1
x
)
(
1
−
q
)
x
−
1
q
r
−
1
+
∑
x
=
0
k
(
x
+
r
)
(
x
+
r
−
1
x
)
(
1
−
q
)
x
q
r
−
1
=
−
∑
x
=
1
k
(
x
+
r
−
1
)
!
(
x
−
1
)
!
(
r
−
1
)
!
(
1
−
q
)
x
−
1
q
r
−
1
+
∑
x
=
0
k
(
x
+
r
)
!
x
!
(
r
−
1
)
!
(
1
−
q
)
x
q
r
−
1
=
−
r
q
2
∑
x
=
1
k
(
x
+
r
−
1
)
!
(
x
−
1
)
!
r
!
(
1
−
q
)
x
−
1
q
r
+
1
+
r
q
2
∑
x
=
0
k
(
x
+
r
)
!
x
!
r
!
(
1
−
q
)
x
q
r
+
1
=
−
r
q
2
∑
x
′
=
0
k
−
1
(
x
′
+
r
)
!
x
′
!
r
!
(
1
−
q
)
x
′
q
r
+
1
+
r
q
2
∑
x
=
0
k
(
x
+
r
)
!
x
!
r
!
(
1
−
q
)
x
q
r
+
1
=
−
r
q
2
F
(
k
−
1
;
r
+
1
,
1
−
q
)
+
r
q
2
F
(
k
;
r
+
1
,
1
−
q
)
=
r
q
2
f
(
k
;
r
+
1
,
1
−
q
)
\begin{aligned} \frac{\partial F}{\partial q} & = \sum_{x=0}^k \tbinom{x+r-1}{x}\left[-x(1-q)^{x-1}q^r+r(1-q)^x q^{r-1}\right]\\ & = \sum_{x=0}^k \tbinom{x+r-1}{x}\left[-x(1-q)^{x-1}q^r+r(1-q)^x q^{r-1}\right]\\ & = \sum_{x=0}^k \tbinom{x+r-1}{x}\left[x[(1-q)-1](1-q)^{x-1}q^{r-1}+r(1-q)^x q^{r-1}\right]\\ & = \sum_{x=0}^k \tbinom{x+r-1}{x}\left[-x(1-q)^{x-1}q^{r-1}+(x+r)(1-q)^x q^{r-1}\right]\\ &= - \sum_{x=0}^kx \tbinom{x+r-1}{x}(1-q)^{x-1}q^{r-1}+\sum_{x=0}^k(x+r) \tbinom{x+r-1}{x}(1-q)^x q^{r-1}\\ &= - \sum_{x=1}^kx \tbinom{x+r-1}{x}(1-q)^{x-1}q^{r-1}+\sum_{x=0}^k(x+r) \tbinom{x+r-1}{x}(1-q)^x q^{r-1}\\ &= - \sum_{x=1}^k \frac{(x+r-1)!}{(x-1)!(r-1)!}(1-q)^{x-1}q^{r-1}+\sum_{x=0}^k \frac{(x+r)!}{x!(r-1)!}(1-q)^x q^{r-1}\\ &= - \frac{r}{q^2}\sum_{x=1}^k \frac{(x+r-1)!}{(x-1)! r!}(1-q)^{x-1}q^{r+1}+\frac{r}{q^2}\sum_{x=0}^k \frac{(x+r)!}{x! r!}(1-q)^x q^{r+1}\\ &= - \frac{r}{q^2}\sum_{x'=0}^{k-1} \frac{(x'+r)!}{x' ! r!}(1-q)^{x' }q^{r+1}+\frac{r}{q^2}\sum_{x=0}^k \frac{(x+r)!}{x! r!}(1-q)^x q^{r+1}\\ &= - \frac{r}{q^2} F(k-1;r+1,1-q) + \frac{r}{q^2} F(k;r+1,1-q)\\ &= \frac{r}{q^2} f(k; r+1, 1-q) \end{aligned}
∂q∂F=x=0∑k(xx+r−1)[−x(1−q)x−1qr+r(1−q)xqr−1]=x=0∑k(xx+r−1)[−x(1−q)x−1qr+r(1−q)xqr−1]=x=0∑k(xx+r−1)[x[(1−q)−1](1−q)x−1qr−1+r(1−q)xqr−1]=x=0∑k(xx+r−1)[−x(1−q)x−1qr−1+(x+r)(1−q)xqr−1]=−x=0∑kx(xx+r−1)(1−q)x−1qr−1+x=0∑k(x+r)(xx+r−1)(1−q)xqr−1=−x=1∑kx(xx+r−1)(1−q)x−1qr−1+x=0∑k(x+r)(xx+r−1)(1−q)xqr−1=−x=1∑k(x−1)!(r−1)!(x+r−1)!(1−q)x−1qr−1+x=0∑kx!(r−1)!(x+r)!(1−q)xqr−1=−q2rx=1∑k(x−1)!r!(x+r−1)!(1−q)x−1qr+1+q2rx=0∑kx!r!(x+r)!(1−q)xqr+1=−q2rx′=0∑k−1x′!r!(x′+r)!(1−q)x′qr+1+q2rx=0∑kx!r!(x+r)!(1−q)xqr+1=−q2rF(k−1;r+1,1−q)+q2rF(k;r+1,1−q)=q2rf(k;r+1,1−q)
而根据正则不完全 Beta 函数的定义,有
I
1
−
p
(
r
,
k
+
1
)
=
I
q
(
r
,
k
+
1
)
=
B
(
q
;
r
,
k
+
1
)
B
(
r
,
k
+
1
)
=
∫
0
q
t
r
−
1
(
1
−
t
)
k
d
t
B
(
r
,
k
+
1
)
\begin{aligned} I_{1-p}(r, k+1) &= I_{q}(r, k+1)\\ &= \frac{B(q; r, k+1)}{B(r, k+1)}\\ &= \frac{ \int_0^qt^{r-1}(1-t)^k\mathrm dt}{B(r, k+1)} \end{aligned}
I1−p(r,k+1)=Iq(r,k+1)=B(r,k+1)B(q;r,k+1)=B(r,k+1)∫0qtr−1(1−t)kdt
同样对
q
q
q 求偏导,得
∂
I
q
∂
q
=
q
r
−
1
(
1
−
q
)
k
B
(
r
,
k
+
1
)
=
Γ
(
r
+
k
+
1
)
Γ
(
r
)
Γ
(
k
+
1
)
q
r
−
1
(
1
−
q
)
k
=
(
r
+
k
)
!
(
r
−
1
)
!
k
!
q
r
−
1
(
1
−
q
)
k
=
r
q
2
(
r
+
k
)
!
r
!
k
!
q
r
+
1
(
1
−
q
)
k
=
r
q
2
f
(
k
;
r
+
1
,
1
−
q
)
\begin{aligned} \frac{\partial I_q}{\partial q} &= \frac{q^{r-1}(1-q)^k}{B(r, k+1)}\\ &= \frac{\Gamma(r+k+1)}{\Gamma(r)\Gamma(k+1)} q^{r-1}(1-q)^k\\ &= \frac{(r+k)!}{(r-1)! k!}q^{r-1}(1-q)^k\\ &= \frac{r}{q^2}\frac{(r+k)!}{r! k!}q^{r+1}(1-q)^k\\ &= \frac{r}{q^2} f(k; r+1,1-q) \end{aligned}
∂q∂Iq=B(r,k+1)qr−1(1−q)k=Γ(r)Γ(k+1)Γ(r+k+1)qr−1(1−q)k=(r−1)!k!(r+k)!qr−1(1−q)k=q2rr!k!(r+k)!qr+1(1−q)k=q2rf(k;r+1,1−q)
也就是说
∂
∂
q
F
(
k
;
r
;
1
−
q
)
=
∂
∂
q
I
q
(
r
,
k
+
1
)
\frac{\partial}{\partial q} F(k;r;1-q)= \frac{\partial}{\partial q}I_q(r, k+1)
∂q∂F(k;r;1−q)=∂q∂Iq(r,k+1)
亦即
F
(
k
;
r
;
1
−
q
)
=
I
q
(
r
,
k
+
1
)
+
C
F(k;r;1-q) = I_q(r, k+1) + C
F(k;r;1−q)=Iq(r,k+1)+C
注意到
q
=
0
q=0
q=0 时有
{
F
(
k
;
r
,
1
)
=
0
I
0
(
r
,
k
+
1
)
=
0
\begin{cases} F(k; r, 1) = 0\\ I_0(r, k+1) = 0 \end{cases}
{F(k;r,1)=0I0(r,k+1)=0
解得常数
C
=
0
C=0
C=0。
证毕。
6. 在时间序列预测模型中的使用
DeepAR 等模型中,网络的输出目标是概率分布的参数。例如正态分布的 μ \mu μ 和 σ \sigma σ。但对于负二项分布而言,让网络直接输出 μ \mu μ 和 σ \sigma σ 是不合适的,因为在训练过程中很难保证输出的值满足 σ 2 ≥ μ \sigma^2\geq\mu σ2≥μ。那么让网络输出 r r r 和 p p p 呢?似乎是可以的,只要保证 r > 0 r>0 r>0, 0 ≤ p ≤ 1 0\leq p\leq 1 0≤p≤1 即可。前者可以使用 softplus 激活函数,后者可以使用 sigmoid 激活函数。有没有办法避免使用 sigmoid 呢?通常的做法是让网络输出 μ \mu μ 和 α = 1 / r \alpha=1/r α=1/r,只要使用 softplus 激活函数确保二者均为正数即可。
参考文献
- Negative binomial distribution - Wikipedia
- Beta function - Wikipedia
- Patil G P. On the evaluation of the negative binomial distribution with examples[J]. Technometrics, 1960, 2(4): 501-505.
本文详细介绍了负二项分布的定义、概率质量函数、期望、方差、累积分布函数,并探讨了其在时间序列预测模型中的使用,特别是在DeepAR等模型中的参数输出策略。
2万+

被折叠的 条评论
为什么被折叠?



