我使用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"
答案 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在评论中建议的那样。