1

这是我在这里的第一篇文章,我希望我会遵守社区的所有规则。

我正在尝试使用来自镶嵌包的函数 antiD 计算 R 中形状参数 2 和比例参数 3 的伽马分布方差。我使用的R代码如下

stopifnot(require(mosaic))

f <- function(y) {
     dgamma(y, shape = 2, scale = 3)
}

mean_integral <- antiD( z*f(z) ~ z )
mn <- mean_integral(10^4)

g <- function(y) {
     (y - mn)^2
}

variance <- antiD(f(x)*g(x) ~ x)
variance(10^5)
## [1] 7.115334e-09

问题是我得到的数字没有意义,因为这些参数的 Gamma 分布的方差应该等于 2*3^2 = 18 (关于 Gamma 分布的 Wiki 页面)。此外,如果我将 10^4 作为variance() 的上限(默认下限为0),它将返回以下内容:

variance(10^4)
## [1] 18

从 10^4 到 10^5 的积分将是:

variance(10^5) - variance(10^4)
## [1] -18

有谁知道为什么variance(10^5)在这种情况下会产生荒谬的结果?我也将不胜感激对帖子风格的任何其他评论。

4

0 回答 0