【问题标题】:Error when fitting Bayesian model with the Rethinking R package使用 Rethinking R 包拟合贝叶斯模型时出错
【发布时间】:2020-09-24 12:03:24
【问题描述】:

我正在尝试使用 Rethinking R 包拟合一个非常简单的模型来估计疾病的患病率,如第 6 页上的https://www.ecdc.europa.eu/sites/default/files/documents/Methodology-estimating-point-prevalence%20-SARS-CoV-2-infection-pooled-RT-PCR-testing.pdf 所述

这是我的代码:

quap(alist(
    p ~ dbeta(.3, .3),
    p_test ~ 1 - dbinom(0, s, p), # I tried also p_test <- 1 - dbinom(0, s, p)
    k ~ dbinom(w, p_test)
), data = list(s = 10, k = 30, w = 200))

但我收到错误: Error in pars[[i]] : subscript out of bounds in quap

我做错了什么?

【问题讨论】:

  • 包含您的单个观察数据?我从未使用过rethinking 包,但在大多数采样器(rjags、rstan 等)中,我们希望这里有一个列表或向量列表...
  • 是的,是计数数据。我相信这不应该是一个问题。同一型号的 Stan 版本至少不会抱怨。
  • 好的。那没关系;)

标签: r syntax-error bayesian model-fitting


【解决方案1】:

重新排序alist 中的定义可以解决问题。

quap(
 alist(
    k ~ dbinom(w, p_test),
    p ~ dbeta(.3, .3),
    p_test ~ 1 - dbinom(0, s, p) 
 ), 
 data = list(s = 10, k = 30, w = 200)
)

此代码返回:

Quadratic approximate posterior distribution

Formula:
k ~ dbinom(w, p_test)
p ~ dbeta(0.3, 0.3)
p_test ~ 1 - dbinom(0, s, p)

Posterior means:
         p 
0.01575975 

Log-likelihood: -2.55 

【讨论】:

  • 谢谢!你知道为什么吗?
  • 我不知道具体原因,因为我没有检查quap 的代码。我一直遵循似然的结构,然后是先验,因为它是在quap 的帮助下模糊地编写的(flist 应该是定义似然函数的单个公式,或者更确切地说是定义参数的似然和先验的公式列表. 见下面的例子。)
猜你喜欢
  • 2013-09-09
  • 1970-01-01
  • 2020-08-09
  • 2020-08-03
  • 2022-10-04
  • 2020-06-28
  • 2021-12-15
  • 2020-07-02
  • 2020-08-03
相关资源
最近更新 更多