如何计算C ++中随机变量之和的累积密度函数?

时间:2014-05-01 09:04:19

标签: c++ statistics numerical-methods

我有许多已知但可能不同的概率分布(PDF)的随机变量。我需要在特定点 x 计算这些随机变量的的累积分布函数(CDF)的值。

这包括两个步骤:

  1. 计算随机变量PDF的卷积以获得PDF 他们的总和

  2. 计算CDF(x),即摘要PDF从 -infinity x

  3. 的积分

    看起来第二步只能用数值方法完成。第一步可以在一些但不是所有情况下以分析方式完成。

    例如,如果我有一个随机变量分布式日志 - 通常使用PDF:

    PDF_1(x) = e^(-(log(x) -μ)^2/(2 sigma^2))/(sqrt(2 π) x sigma)
    

    和另一个随机变量也正常分布,但使用不同的参数:

    PDF_2(x) = e^(-(log(x) -μ)^2/(2 delta^2))/(sqrt(2 π) x delta)
    

    然后无法通过分析计算其总和(Convolution[PDF_1, PDF_2])的PDF。

    假设分布尾部的任意截止点为1000,并假设参数μ,sigma amd delta是已知的:

    PDF_sum(x) = NumericallyIntegrate (PDF_1(y) PDF_2(y - x) dy), y=0 to 1000
    

    现在:

    CDF(x) = NumericallyIntegrate (PDF_sum(y) dy), y=0 to x
    


    如何在C ++中写下CDF计算的代码,以及你建议的库?

0 个答案:

没有答案