从2d密度中获取代表值

时间:2016-06-16 21:41:02

标签: r probability sampling percentile probability-density

如何获得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$xdens$y的每个组合的密度,即pairs中的(分箱)对。这是一个image(dens)可视化:

joint probability / density

0 个答案:

没有答案