结合来自多项研究的信息以估计正态分布数据的均值和方差-贝叶斯与荟萃分析方法


21

我已经审查了一组论文,每个论文都报告了在已知大小相应样本中的观测值的平均值和SD 。我想对我正在设计的一项新研究中同一度量的可能分布进行最大可能的猜测,以及该猜测的不确定性。我很高兴假设)。XñXñμσ2

我的第一个想法是荟萃分析,但是通常使用的模型着重于点估计和相应的置信区间。但是,我想说一些关于充分分布,在这种情况下也将包括作出的猜测有关的方差,σ 2Xσ2

我一直在阅读有关根据先验知识估算给定分布的完整参数集的可能的Bayeisan方法。通常,这对我来说更有意义,但是我对贝叶斯分析的经验为零。这似乎是一个直截了当,相对简单的问题。

1)考虑到我的问题,哪种方法最有意义,为什么?荟萃分析还是贝叶斯方法?

2)如果您认为贝叶斯方法是最好的,您能指出我一种实现此方法的方法(最好在R中)吗?

相关问题

编辑:

我一直试图以我认为是“简单”的贝叶斯方式来解决这个问题。

正如我如上所述,我不只是有兴趣在估计平均,,而且方差,σ 2,在光的事先信息,即P μ σ 2 | ÿ μσ2Pμσ2|ÿ

同样,我对实践中的贝叶斯主义一无所知,但是不久之后,发现均值和方差未知的正态分布的后部通过共轭具有正态-反伽马分布的封闭形式解。

问题是重新表述为Pμσ2|ÿ=Pμ|σ2ÿPσ2|ÿ

估计与正常分布; P σ 2 | Ý 与逆伽马分布。Pμ|σ2ÿPσ2|ÿ

我花了一段时间才能得到我的头周围,但是从这些链接(12)我能,我认为,排序如何R.做到这一点

我从一个数据帧开始,该数据帧由33个研究/样本中的每行组成,并由均值,方差和样本量组成。我使用第1行第一个研究的平均值,方差和样本量作为我的先前信息。我然后用来自下一研究的信息来更新此,计算出的相关参数,并从正常反向伽马采样,以得到的分布σ 2。重复进行直到所有33个研究都包括在内。μσ2

# Loop start values values

  i <- 2
  k <- 1

# Results go here

  muL      <- list()  # mean of the estimated mean distribution
  varL     <- list()  # variance of the estimated mean distribution
  nL       <- list()  # sample size
  eVarL    <- list()  # mean of the estimated variance distribution
  distL    <- list()  # sampling 10k times from the mean and variance distributions

# Priors, taken from the study in row 1 of the data frame

  muPrior  <- bayesDf[1, 14]    # Starting mean
  nPrior   <- bayesDf[1, 10]    # Starting sample size
  varPrior <- bayesDf[1, 16]^2  # Starting variance

  for (i in 2:nrow(bayesDf)){

# "New" Data, Sufficient Statistics needed for parameter estimation

    muSamp    <- bayesDf[i, 14]          # mean
    nSamp     <- bayesDf[i, 10]          # sample size
    sumSqSamp <- bayesDf[i, 16]^2*(nSamp-1)  # sum of squares (variance * (n-1))

# Posteriors

    nPost   <- nPrior + nSamp
    muPost  <- (nPrior * muPrior + nSamp * muSamp) / (nPost)  
    sPost   <- (nPrior * varPrior) + 
                sumSqSamp + 
               ((nPrior * nSamp) / (nPost)) * ((muSamp - muPrior)^2)
    varPost <- sPost/nPost
    bPost   <- (nPrior * varPrior) + 
                sumSqSamp + 
               (nPrior * nSamp /  (nPost)) * ((muPrior - muSamp)^2)
# Update 

    muPrior   <- muPost
    nPrior    <- nPost
    varPrior  <- varPost

# Store

    muL[[i]]   <-  muPost
    varL[[i]]  <-  varPost
    nL[[i]]    <-  nPost
    eVarL[[i]] <- (bPost/2) / ((nPost/2) - 1)

# Sample

    muDistL  <- list()  
    varDistL <- list()

    for (j in 1:10000){
      varDistL[[j]] <- 1/rgamma(1, nPost/2, bPost/2)
      v             <- 1/rgamma(1, nPost/2, bPost/2)
      muDistL[[j]]  <- rnorm(1, muPost, v/nPost)
    }

# Store 

    varDist    <- do.call(rbind, varDistL)
    muDist     <- do.call(rbind, muDistL)
    dist       <- as.data.frame(cbind(varDist, muDist))
    distL[[k]] <- dist

# Advance

    k <- k+1 
    i <- i+1

  }

  var     <- do.call(rbind, varL)
  mu      <- do.call(rbind, muL)
  n       <- do.call(rbind, nL)
  eVar    <- do.call(rbind, eVarL)
  normsDf <- as.data.frame(cbind(mu, var, eVar, n)) 
  colnames(seDf) <- c("mu", "var", "evar", "n")
  normsDf$order <- c(1:33)

ËμËσ2

在此处输入图片说明

以下是基于每次更新的均值和方差的估计分布采样得出的目的。

在此处输入图片说明

在此处输入图片说明

我只是想添加一下,以免对其他人有帮助,以便知情的人可以告诉我这是否明智,有缺陷等。

Answers:


11

这两种方法(元分析和贝叶斯更新)并没有那么明显。实际上,元分析模型通常被构造为贝叶斯模型,因为在现有现象的先验知识中添加证据的想法(可能非常模糊)很自然地适合于元分析。描述此连接的文章是:

布朗尼克,MT(2001)。经验贝叶斯荟萃分析对测试验证的意义。应用心理学杂志,86(3),468-480。

(作者使用相关性作为荟萃分析的结果度量,但无论度量如何,原理都是相同的)。

关于贝叶斯元分析方法的更一般的文章是:

Sutton,AJ和Abrams,KR(2001)。贝叶斯方法进行荟萃分析和证据综合。医学研究中的统计方法,10(4),277-303。

您似乎想得到的(除了一些组合的估计值之外)是一个预测/可信区间,该区间描述了未来研究中实际结果/效果可能下降的位置。可以从“传统”荟萃分析或贝叶斯荟萃分析模型中获得这样的间隔。例如,在以下方面描述了传统方法:

Riley,RD,Higgins,JP和Deeks,JJ(2011)。随机效应荟萃分析的解释。英国医学杂志,342,d549。

θ一世θ一世一世θ一世


3
除此之外,从荟萃分析的结果得出许多贝叶斯先验。
Fomite

2

ÿ一世Ĵñμσ2一世=1个ñĴĴ=1个ķμ

μ^=1个ñĴ=1个ķñĴÿ¯Ĵñ=Ĵ=1个ķñĴ
σσ2
σ2=1个ñ-ķĴ=1个ķñĴ-1个sĴ2
ñķ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.