高斯-拉盖尔求积公式在概率论中Gamma分布矩计算的应用
题目描述
考虑Gamma分布的概率密度函数(PDF)为:
\[f(x; k, \theta) = \frac{1}{\Gamma(k) \theta^k} x^{k-1} e^{-x/\theta}, \quad x > 0 \]
其中 \(k > 0\) 是形状参数,\(\theta > 0\) 是尺度参数,\(\Gamma(k)\) 是Gamma函数。Gamma分布的 \(r\)-阶原点矩定义为:
\[\mathbb{E}[X^r] = \int_0^{\infty} x^r f(x; k, \theta) \, dx \]
要求用高斯-拉盖尔(Gauss-Laguerre)求积公式高效计算该积分,并分析参数 \(k, \theta, r\) 对数值精度的影响。
解题过程
步骤1:将积分转化为标准高斯-拉盖尔形式
高斯-拉盖尔求积公式适用于积分:
\[\int_0^{\infty} e^{-x} g(x) \, dx \approx \sum_{i=1}^n w_i g(x_i) \]
其中 \(x_i\) 是 \(n\) 次拉盖尔多项式的零点,\(w_i\) 是对应权重。
将Gamma分布的矩积分重写:
\[\mathbb{E}[X^r] = \int_0^{\infty} x^r \cdot \frac{1}{\Gamma(k) \theta^k} x^{k-1} e^{-x/\theta} \, dx = \frac{1}{\Gamma(k) \theta^k} \int_0^{\infty} x^{k+r-1} e^{-x/\theta} \, dx \]
作变量替换:令 \(t = x/\theta\),则 \(x = \theta t\),\(dx = \theta \, dt\),积分变为:
\[\mathbb{E}[X^r] = \frac{1}{\Gamma(k) \theta^k} \int_0^{\infty} (\theta t)^{k+r-1} e^{-t} \cdot \theta \, dt = \frac{\theta^{k+r-1} \cdot \theta}{\Gamma(k) \theta^k} \int_0^{\infty} t^{k+r-1} e^{-t} \, dt \]
化简系数:
\[= \frac{\theta^{r}}{\Gamma(k)} \int_0^{\infty} t^{k+r-1} e^{-t} \, dt \]
至此,积分已具有标准形式 \(\int_0^{\infty} e^{-t} g(t) \, dt\),其中被积函数:
\[g(t) = t^{k+r-1} \]
权重函数 \(e^{-t}\) 与高斯-拉盖尔求积的权函数匹配。
步骤2:应用高斯-拉盖尔求积公式
取 \(n\) 个节点 \(t_i\) 和权重 \(w_i\)(来自 \(n\) 次拉盖尔多项式),则积分:
\[\int_0^{\infty} t^{k+r-1} e^{-t} \, dt \approx \sum_{i=1}^n w_i \cdot t_i^{k+r-1} \]
因此,矩的近似值为:
\[\mathbb{E}[X^r] \approx \frac{\theta^{r}}{\Gamma(k)} \sum_{i=1}^n w_i \, t_i^{\,k+r-1} \]
这里 \(t_i\) 和 \(w_i\) 是标准高斯-拉盖尔求积的节点和权重(与 \(k, r, \theta\) 无关),可通过查表或数值计算得到。
步骤3:高斯-拉盖尔求积的误差分析
该公式具有最高代数精度:对任意次数 \(\leq 2n-1\) 的多项式 \(g(t)\),求积结果精确。在我们的问题中,\(g(t) = t^{k+r-1}\)。注意:
- 如果 \(k+r-1\) 是非负整数且 \(k+r-1 \leq 2n-1\),则求积精确。
- 如果 \(k\) 或 \(r\) 使得 \(k+r-1\) 不是整数,则 \(g(t)\) 不是多项式,求积存在误差。误差公式为:
\[ E_n = \frac{(n!)^2}{(2n)!} g^{(2n)}(\xi), \quad \xi \in (0, \infty) \]
但此处 \(g(t) = t^{\alpha}\)(\(\alpha = k+r-1\) 为实数),高阶导数可能很大,尤其是当 \(\alpha\) 较大时,需要更多节点 \(n\) 以保证精度。
步骤4:数值实现细节
-
获取节点与权重:
可通过递归关系生成拉盖尔多项式的零点,或调用数值库(如SciPy的scipy.special.roots_laguerre)。 -
计算 \(\Gamma(k)\):
可使用math.gamma(若 \(k\) 较大可用对数Gamma函数避免溢出)。 -
选择节点数 \(n\):
根据 \(\alpha = k+r-1\) 的大小选择。经验上,取 \(n > \alpha + 5\) 可获较好精度。若 \(k\) 或 \(r\) 很大,需增加 \(n\)。 -
示例计算:
设 \(k=2.5, \theta=1.2, r=3\),则 \(\alpha = 2.5+3-1 = 4.5\)。取 \(n=10\):
\[ \mathbb{E}[X^3] \approx \frac{1.2^3}{\Gamma(2.5)} \sum_{i=1}^{10} w_i \, t_i^{\,4.5} \]
将节点 \(t_i\) 和权重 \(w_i\) 代入求和,再乘以系数即得近似值。
步骤5:与解析解对比验证
Gamma分布的 \(r\)-阶矩解析解为:
\[\mathbb{E}[X^r] = \theta^{\,r} \frac{\Gamma(k+r)}{\Gamma(k)} \]
可用此验证数值结果的准确性。定义相对误差:
\[\text{相对误差} = \left| \frac{\text{数值解} - \text{解析解}}{\text{解析解}} \right| \]
增加 \(n\) 可观察误差下降情况。
关键点总结
- 变量替换是关键,将积分核化为 \(e^{-t}\),匹配高斯-拉盖尔权函数。
- 节点权重与分布参数 \(k, \theta, r\) 无关,只需计算一次即可用于不同参数。
- 当 \(k+r-1\) 为非整数时,需更多节点以保证精度;若 \(k+r-1\) 很大,被积函数 \(t^{\alpha}\) 在 \(t>1\) 增长快,但权函数 \(e^{-t}\) 衰减更快,积分仍收敛。
- 该方法避免了直接数值积分的缓慢,特别适合需要多次计算不同参数矩的场景(如参数估计)。