R计算的伽马分布密度错误?

时间:2014-05-02 01:23:46

标签: r numeric gamma-distribution

我正在尝试数值计算边际可能性(边缘化超过正参数)。我使用Gamma分布作为该参数的先验。在这里,我查看了两个特定参数设置的Gamma分布的行为:

s = 28.4; r = 17000
plot(x, dgamma(x, shape=s, rate = r), type = 'l', ylab = 'density')
abline(v = s/r, col = 'red')

我得到了以下结果:

density plot1

然后我尝试以下方法来获得更紧密的Gamma分布:

lines(x, dgamma(x, shape=s*1000, rate = r*1000), col = 'blue')

结果:

density plot2

我很困惑。随着分布变得越来越紧,高度应该越来越高,否则该区域将不会整合到1.我错过了什么吗?还是有任何数字问题?谢谢!

1 个答案:

答案 0 :(得分:3)

您的x变量需要有更多样本来捕获第二个密度函数中的窄峰:

x = seq(0, .01, .000001)
s = 28.4; r = 17000
plot(x, dgamma(x, shape=s, rate = r), type = 'l', ylab = 'density')
abline(v = s/r, col = 'red')
lines(x, dgamma(x, shape=s*1000, rate = r*1000), col = 'blue')

enter image description here