提问人:stats134711 提问时间:9/28/2023 更新时间:9/28/2023 访问量:42
等效积分在单积分和双积分下不给出相同的数值结果
Equivalent integrals not giving same numerical result with single and double integration
问:
我有以下等效积分,涉及标准正态分布的 pdf 和 cdf,分别用 $\phi(x)$ 和 $\Phi(x)$ 表示。对于背景,积分表示三个观测值的样本范围的概率分布,这三个观测值是独立的,并且作为标准正态分布相同。
我使用以下中的包对第一个双积分和最后一个单积分进行编码:pracma
R
library(pracma)
t = 0.2
single_int <- function(x) 3*dnorm(x)*(pnorm(x+t)-pnorm(x))^2
I1 = integral(single_int,-999,999)
double_int <- function(x,y) 6*dnorm(x)*dnorm(x+y)*(pnorm(x+y)-pnorm(x))
I2 = integral2(double_int,-999,999,-999,t)$Q
输出为:
> I1
[1] 0.01096555
> I2
[1] 0
当基础积分相同时,为什么这些会给出不同的结果吗?
答:
5赞
Stéphane Laurent
9/28/2023
#1
你的积分对你用来替换无穷大的边界的选择是明智的。在 中,可以使用 和 。在 中,你不能。我会改用 cubature 包。当积分边界为无限时,它会自动执行变量更改以归结为有限边界。integral
-Inf
Inf
integral2
library(cubature)
f <- function(xy) {
x <- xy[1]; y <- xy[2]
6 * dnorm(x) * dnorm(x+y) * (pnorm(x+y) - pnorm(x))
}
hcubature(
f, lowerLimit = c(-Inf, 0), upperLimit = c(Inf, 0.2)
)
# 0.01096558
评论
integral2
t