平坦先验的重要性抽样问题

机器算法验证 贝叶斯 蒙特卡洛 t分布 重要性抽样 无信息先验
2022-04-01 13:10:17

我正在尝试通过参数的重要性采样来得出贝叶斯推断ξ附有(无界)平坦先验。这似乎有问题,因为这显然不是概率测度,而是质量无穷大的测度。下一个t- 已知的分布似然σ2ν我得到

logL(y|ξ)=ν12t=1Tlog(1+(ytξ)2νσ2)

这是已知概率分布的核吗ξi?

正如我所怀疑的那样,我正在寻找一个可以帮助我计算合理权重的重要性密度。例如,如果我选择ξiN(μ,σξ2)作为重要性密度,我的权重看起来像

wi=exp(log{L(y|ξi)}+12σξ2(ξiμ)2).
模拟给了我非常多的权重,等于0.

我该如何克服这个问题?

**备注:由于错误,我更新了符号。**

1个回答

初步:该问题与使用平面先验无关。一个常规的先验会导致一个非标准的后验。

这个模型意味着你观察T随机变量t分布与ν自由度并使用高斯作为您的重要性建议。这完全有道理,因为后面ξ,虽然非标准,但非常接近高斯。而精确的后验方差ξ未知,应该接近s2/T,数据的经验方差除以样本量。我建议使用y¯n为了μ100s2/T为了σξ2为了确保足够广泛的模拟。(这可以通过查看似然值来校准。例如,用于plot(prop,like(prop))观察似然性上升然后再次下降。我从因子 4 开始,这太小了。)

有了这样的提议,这里有一个运行上述重要性抽样实验的 R 代码,没有明显的困难:

n=35 #your T
T=1e5 #my importance sample size
deg=3 #nu
data=rt(n,df=deg)
like=function(the){
  if (length(the)>1){
   ou=rep(0,length(the))
   for (i in 1:length(the))
    ou[i]=sum(dt(data-the[i],df=deg,log=TRUE))
  }else{
  ou=sum(dt(data-the,df=deg,log=TRUE))}
  return(ou)}
prop=rnorm(T,mean=mean(data),sd=10*sd(data)/n)
iw=like(prop)-dnorm(prop,mean=mean(data),sd=10*sd(data)/n,log=TRUE)
iw=exp(iw-max(iw))

例如,这里是重要性权重的范围:

> range(iw)
[1] 0.0003463474 1.0000000000

这是加权直方图和归一化目标后验密度之间的拟合。 在此处输入图像描述