【发布时间】:2020-06-23 17:06:13
【问题描述】:
我正在尝试集成一个高维集成: ∫∏pj(1-pj)f(pj)dpj,其中 j∈1,...,5。 f(pj)是pj的分布函数,pj~beta(0.3,0.7) 有这种集成的 R 包吗?
【问题讨论】:
-
集成的界限是什么?
-
所有pj属于[0,1]
标签: r multidimensional-array integration
我正在尝试集成一个高维集成: ∫∏pj(1-pj)f(pj)dpj,其中 j∈1,...,5。 f(pj)是pj的分布函数,pj~beta(0.3,0.7) 有这种集成的 R 包吗?
【问题讨论】:
标签: r multidimensional-array integration
被积函数是“可分离的”:它是p1的一个函数的乘积,一个函数
p2,...,p5 的函数。
此外,积分的界限是恒定的。因此多重积分 乘积的乘积等于单积分的乘积:
int_0^1 int_0^1 int_0^1 int_0^1 int_0^1 product( pi(1-pi)f(pi) ) dp1 dp2 dp3 dp4 dp5
= product ( int_0^1 p(1-p)f(p) dp )
因此,您可以计算单个积分int_0^1 p(1-p)f(p) dp 并提高
5 次幂。
然而,虽然这在数学上是正确的,但这会“累积”
数值积分。
然后,在数值上,最好使用多维积分。为此,
使用cubature 包。
但请注意,您以“封闭形式”计算此积分。事实上,f 是
带有参数a 和b 的Beta 分布的pdf。一个有
f(p) = g_{a,b}(p) / beta(a,b) 和 int_0^1 g_{a,b}(p) dp = beta(a,b)。
很容易看出p(1-p)g_{a,b}(p) = g_{a+1,b+1}(p)。
因此,
int_0^1 p(1-p)f(p) dp = 1/beta(a,b) int_0^1 g_{a+1,b+1}(p) dp
= beta(a+1,b+1) / beta(a,b)
因此你的积分结果是(beta(a+1,b+1)/beta(a,b))^5。这可以简化:beta(a+1,b+1)/beta(a,b) = (ab)/((a+b)*(a+b+1))。
【讨论】: