随机变量之和的概率分布:卷积定理的简单应用

本文链接:个人站 | | CSDN
版权声明:除特别声明外,本博客文章均采用 BY-NC-SA 许可协议。转载请注明出处。

我们在《一个最大化条件概率问题》一文中提到,为了满足商品采购业务的需要,我们首先预测每一天的需求所服从的概率分布,然后计算若干天总需求所服从的概率分布。那么,如何将日需求的分布转化为总需求的分布呢?

方法

考虑一组独立的随机变量 ,令



也就是说,多个随机变量的和总可以还原回两个随机变量的和的情况。因此,我们只需要知道如何计算两个随机变量的和的分布就可以了。

假设 和 是两个独立的随机变量,令 。

  • 若 和 是离散型随机变量,则 的概率质量函数为 的概率质量函数与 的概率质量函数的离散卷积:

  • 若 和 是连续型随机变量,则 的概率密度函数为 的概率密度函数与 的概率密度函数的卷积:

卷积怎么算呢?根据定义直接算,可以,但没必要。复习一下卷积定理:

函数卷积的傅里叶变换是函数傅里叶变换的乘积。

对于离散型随机变量,我们只需要用 FFT 算法计算 和 的概率质量函数的离散傅里叶变换,然后作乘积,再作一次逆变换,即可求得 的概率质量函数。对于连续型随机变量,则可以先离散化,然后用上述方法近似求解 的概率密度函数。

作为调包工程师,我们直接调用 scipy.signal.fftconvolve 实现来上述操作。

例子

我们来验证一下。

假设 ,,则 。

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
from scipy.signal import fftconvolve

x = norm.pdf(np.arange(100), loc=30, scale=10)
y = norm.pdf(np.arange(100), loc=60, scale=5)
z = norm.pdf(np.arange(200), loc=90, scale=np.sqrt(125))
z_tilde = fftconvolve(x, y)

plt.subplot(121)
plt.plot(x, color='b', label='pdf of X')
plt.plot(y, color='g', label='pdf of Y')
plt.legend()
plt.subplot(122)
plt.plot(z, color='r', label='analytical pdf of Z')
plt.plot(z_tilde, color='y', label='numerical pdf of Z')
plt.legend()
plt.show()
正态分布之和

再看一个例子。

考虑一组独立的随机变量 ,满足 ,即每个 均服从成功概率 的伯努利分布。令 ,即 是 100 次独立重复试验中成功的次数。根据定义, 服从二项分布。

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom
from scipy.signal import fftconvolve
from functools import reduce

xs = [[0.7, 0.3] for _ in range(100)]
z = binom.pmf(np.arange(100), n=100, p=0.3)
z_tilde = reduce(fftconvolve, xs)

plt.plot(z, label='analytical pmf of Z')
plt.plot(z_tilde, label='numerical pmf of Z')
plt.legend()
plt.show()
伯努利分布之和

最后看看实际计算总需求时的效果:


从日需求到总需求

附录

附上卷积定理的简单推导:

考虑函数 和 ,以及它们的卷积 。 和 的傅里叶变换分别为


而 的傅里叶变换为
\begin{aligned} \hat h(\omega) &= \int_{-\infty}^{+\infty}h(t)\mathrm e^{-i\omega t}\mathrm dt\\ &= \int_{-\infty}^{+\infty}\left[\int_{-\infty}^{+\infty}f(\tau)g(t-\tau)\mathrm d\tau\right]\mathrm e^{-i\omega t}\mathrm dt\\ &= \int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}f(\tau)g(t-\tau)e^{-i\omega t}\mathrm dt\mathrm d\tau \end{aligned}
令 ,则 ,
\begin{aligned} \hat h(\omega) & = \int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}f(\tau)g(s)e^{-i\omega (\tau+s)}\mathrm ds\mathrm d\tau\\ &= \int_{-\infty}^{+\infty}f(\tau)e^{-i\omega \tau}\mathrm d\tau\int_{-\infty}^{+\infty}g(s)e^{-i\omega s}\mathrm ds\\ &=\hat f(\omega)\cdot\hat g(\omega) \end{aligned}

参考文献

  • Convolution - Wikipedia

你可能感兴趣的:(随机变量之和的概率分布:卷积定理的简单应用)