R多元正态CDF

机器算法验证 r 正态分布 累积分布函数
2022-03-24 22:03:38

我正在尝试估计某些给定范围([-Inf,mu]、[mu,mu+3]、[mu+3,Inf])的 MVN 分布的 CDF。在使用包 mvtnorm 和函数 pmvnorm 的 R 中,带有一些虚拟数据:

mu=c(13,15,12)
co=matrix(c(6,2,3,2,4,2,3,2,5),nrow=3,byrow=T)

library(mvtnorm)
pmvnorm(lower=-Inf,
        upper=mu,
        mean=mu,
        sigma=co)[1]

pmvnorm(lower=mu,
        upper=mu+3,
        mean=mu,
        sigma=co)[1]

pmvnorm(lower=mu+3,
        upper=Inf,
        mean=mu,
        sigma=co)[1]
[1] 0.2415246
[1] 0.1123291
[1] 0.01065227

显然,这并不等于 1,即使我从 -Inf 转到 Inf。为什么不?

此外,如果我尝试将其中一个范围估计为当前减去前一个的差值,例如。对于 [mu+3,Inf] = [-Inf,Inf] - [-Inf,mu+3] 中的最后一个区间:

pmvnorm(lower=-Inf,upper=Inf,mean=mu,sigma=co)[1]-
pmvnorm(lower=-Inf,upper=mu+3,mean=mu,sigma=co)[1]
[1] 0.2010412

结果与之前的估计不同。为什么?

1个回答

第一个计算AND AND全部同时发生pmvnorm 的概率。每个单独变量满足该标准的概率为 0.5,但联合概率不会为 0.5variable 1 <=13variable 2 <=15variable <=12

如果我们使用一个所有变量都不相关的例子

mu=c(13,15,12)
co=matrix(c(1,0.0,0,0,1,0,0,0,1),nrow=3,byrow=T)

pmvnorm(lower=-Inf,
        upper=mu,
        mean=mu,
        sigma = co)

这返回

[1] 0.125

这是概率来自三个不相关事件同时发生的概率,即0.5^3 = 0.125在您的数据中,变量似乎是相关的,这就是概率大于 0.125 的原因。

基本上,概率总和不等于 1 的原因是上面的计算不包括所有可能的坐标。例如,坐标可能是(10, 17,14),不包括在内。

至于估计的差异,我认为pmvnorm使用某种采样算法可能会导致概率差异。