如何获得N对值,它们代表更大的值对的联合概率(2d密度)?
我对一个函数的参数进行MCMC采样,我想通过绘制20个半透明线来显示该函数的密度,这些线可视化函数的密度。我知道我可以制作一个足够大的样本来近似密度(like this),但这可能会使图形混乱。相反,我想象百分位数会起作用。例如。百分位数每变化2%,一对应使用50对精确描绘密度。
具体来说,我是从具有双参数几何级数的贝叶斯模型中采样的。密度不一定是单调增加的(可能有几个峰值)。这有点复杂,但只是为了开始,多变量法线将更少使用:
library(MASS)
pairs = mvrnorm(10000, c(1,3), rbind(c(0.2, 0.1), c(0.1, 0.2)))
# Easy to just sample the rows to get an approximate representation:
pairs[sample(nrow(pairs), size=50, replace=FALSE)
# But how to get more certainty that the samples are really representative?
# This would probably start with the density
dens = kde2d(pairs[,1], pairs[,2], n=100)
此处,dens$z
是一个100 * 100矩阵,其中包含dens$x
和dens$y
的每个组合的密度,即pairs
中的(分箱)对。这是一个image(dens)
可视化: