これは私の最初の投稿であり、コミュニティのすべてのルールに従うことを願っています.
モザイク パッケージの関数 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
問題は、これらのパラメーターを使用したガンマ分布の分散が 2*3^2 = 18 (ガンマ分布に関する Wiki ページ)に等しくなければならないため、得られる数値が意味をなさないことです。さらに、variance() の上限 (デフォルトの下限は 0) として 10^4 を指定すると、次のように返されます。
variance(10^4)
## [1] 18
10^4 から 10^5 までの積分は次のようになります。
variance(10^5) - variance(10^4)
## [1] -18
variance(10^5)
この場合、なぜ無意味な結果が生じるのか誰か知っていますか? また、投稿のスタイルに関する追加のコメントにも感謝します。