为什么我的伽马密度图与我的样本直方图不匹配?

机器算法验证 数据可视化 直方图
2022-03-27 22:43:02

我很困惑为什么绘图显示伽玛 PDF 的曲线如此陡峭。我认为从反伽玛绘制绘图应该近似于 PDF,但是它与给定相同参数的绘制的 PDF 不匹配。我取 的倒数,rgamma()如果你能看到我正在使用的变量,这更有意义。但是,我用硬编码值替换了变量,以保持 MWE 的简短。我正在使用 R,我的代码如下:

grid <- seq(0,100,by=0.1) # hard-coded for MWE
sig.post.shape <- 91 # hard-coded for MWE
sig.post.rate <- 1247.52 # hard-coded for MWE
set.seed(1)
hist(1/rgamma(grid, shape = sig.post.shape, rate = sig.post.rate), breaks=10)
plot(grid,1/dgamma(grid, shape = sig.post.shape, rate = sig.post.rate), type = "l")

结果图是:
在此处输入图像描述

2个回答

如果有密度 (pdf)那么没有密度(甚至不是密度)。事实上,变量变化公式告诉我们的密度 是一个“好的”可逆变换时。Xf1/X1/fY:=h(X)

|(h1)(y)|f(h1(y))
h

我给出了一般的公式,因为,这可能会引起一些混乱。hh1(y)=1/yh(x)=1/x

然后用表示模拟 Gamma 分布 ( ) 的密度,您必须将直方图与密度 进行比较:frgamma

1y2f(1y)

grid <- seq(0,100,by=0.1)
sig.post.shape <- 91
sig.post.rate <- 1247.52
set.seed(1); 
hist(1/rgamma(grid, shape = sig.post.shape, rate = sig.post.rate), breaks=10, prob=TRUE)
lines(grid,1/grid^2*dgamma(1/grid, shape = sig.post.shape, rate = sig.post.rate), type = "l")

在此处输入图像描述

这里的问题根本与图形无关。

逆伽马分布的密度不是伽马分布密度的倒数,这就是你最后的语法行所暗示的。为了看到这一点,注意到这样的关系将接近零密度的伽马映射到接近无限密度的逆伽马就足够了。实际上,这就是 R 试图绘制的内容,您会注意到奇怪的结果。您绘制的函数甚至不是密度函数。

更新。Stéphane Laurent 紧随其后,推出了更完整、更权威的版本。我让这个作为米老鼠“执行摘要”的答案。