R の次の関数に問題があります。
test <- function(alpha, beta, n){
result <- exp(lgamma(alpha) + lgamma(n + beta) - lgamma(alpha + beta + n) - (lgamma(alpha) + lgamma(beta) - lgamma(alpha + beta)))
return(result)
}
次の値を挿入すると、次のようになります。
betabinom(-0.03292708, -0.3336882, 10)
失敗し、NaN. これは、Excel で正確な関数を実装すると、数値ではない結果が得られるためです。J32 は のセルalpha、K32betaと L32 は のセルであるため、Excel での実装は簡単ですN。結果のセルの実装を以下に示します。
=EXP(GAMMALN(J32)+GAMMALN(L32+K32)-GAMMALN(J32+K32+L32)-(GAMMALN(J32)+GAMMALN(K32)-GAMMALN(J32+K32)))
したがって、関数はゼロより大きいアルファとベータ、およびゼロ以上のnに対してのみ定義されているため、これは正しい答えを与えるようです。したがって、ここで何が起こっているのだろうか?パッケージ Rmpf を試して数値精度を上げましたが、何もしていないようです。
ありがとう
