pmvnorm正在返回一个负数
问题描述:
我正在使用pmvnorm来计算R中的多元正态cdfs 但我在计算中获得负数 概率不能为负数。有人能帮助我找到了解决办法pmvnorm正在返回一个负数
的代码是在这里
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"
答
这是一个数字的问题。您可以将其视为零或指定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在评论中所说的做。
+0
谢谢。我会查看文档。我不太了解浮点运算。 – user3453272
这是*勉强*负 – Dason
这是一个数字零。 – Roland
解决方法:'result