这是我在这里的第一篇文章,我希望我能遵守社区的所有规则。
我正在尝试使用镶嵌包中的函数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(Wiki page on Gamma distribution)。此外,如果我将10 ^ 4作为variance()的上限(默认下限为0),它将返回以下内容:
variance(10^4)
## [1] 18
从10 ^ 4到10 ^ 5的积分将是:
variance(10^5) - variance(10^4)
## [1] -18
有人知道为什么variance(10^5)
在这种情况下会产生无意义的结果吗?我也将非常感谢有关该职位风格的任何其他评论。