pmvnorm返回一个负数

时间:2015-11-07 15:52:21

标签: r

我使用pmvnorm来计算R中的多变量正常cdfs 但我在计算中得到一个负数 概率不能为负。有人可以帮助我找到解决方案

代码在这里

library(mvtnorm)
pmvnorm(lower = rep(-Inf, 2), upper = c(-5, -18),
    mean = c(0,0), sigma = matrix(c(1, -0.5, -0.5, 1),
                                  nrow = 2, ncol = 2))

输出

[1] -2.507297e-84
attr(,"error")
[1] 1e-15
attr(,"msg")
[1] "Normal Completion"

1 个答案:

答案 0 :(得分:3)

这是一个数字问题。您可以将其视为零或将algorithm参数指定为更多/更不精确。

玩弄了我这个:

library("mvtnorm")
pmvnorm(lower = rep(-Inf, 2), upper = c(-5, -18),
        mean = c(0,0), sigma = matrix(c(1, -0.5, -0.5, 1), ncol = 2),
        algorithm = Miwa(steps = 1280))
##[1] 8.447235e-132
##attr(,"error")
##[1] NA
##attr(,"msg")
##[1] "Normal Completion"

有关详细信息,请参阅?pmvnorm文档。 因此,您可以调整使用过的算法,也可以像Ben在评论中建议的那样。

相关问题