在使用 MCMC 和 JAGS 拟合广义帕累托分布时,我应该如何解释这些奇怪的密度和混合图?

机器算法验证 分布 贝叶斯 马尔可夫链蒙特卡罗 帕累托分布
2022-04-03 17:12:09

我正在尝试使用 JAGS 和 runjags 将广义帕累托分布拟合到模拟数据集。这样做时,我会得到非常奇怪的 mu 参数密度和混合图。sigma 和 xi 参数按预期估计。

我应该如何解释这些图,并继续修复我的模型? 该图和可重现的模型如下。

mu的诊断

# Simulate gpd
require(evir)
N <- 1000
set.seed(1984)
x <- rgpd(N, xi = 0.5, mu = 5, beta = 2000)

# fit distribution using JAGS
require(runjags)
require(rjags)

library(mcmcplots)

model <- "model {
  for (i in 1:N) { #data# N
        x[i] ~ dgenpar(sigma, mu, xi) #data# x
    }
    mu ~ dunif(0.0001, 1e6)
  xi ~ dgamma(0.001, 0.00001)
    sigma ~ dunif(0.000001, 10000)
#monitor# sigma, mu, xi
}"

results <- run.jags(model, method="rjags", n.chains = 3, modules="runjags", inits = list(list(sigma=1, mu=5, xi=1), 
                                                                           list(sigma=5, mu=1, xi=10), 
                                                                           list(sigma=100, mu=0.1, xi=50)))
load.runjagsmodule()

mcmcplot(results, dir=getwd())

请注意,增加链长并不能解决问题。将样本从 4,000 增加到 400,000 后,mu 的密度不像以 5 为中心的单峰分布: 在此处输入图像描述

1个回答

广义帕累托分布有的限制。因此,正如 COOLSerdash 所指出的,后验密度的上限为 x。这是预期的行为,而不是错误。mu<x

数据中较小的、最左侧的峰值是由于先验分布被错误地指定为下限为零。