首页 > 解决方案 > 使用 Rethinking R 包拟合贝叶斯模型时出错

问题描述

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

这是我的代码:

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

我究竟做错了什么?

标签: rsyntax-errorbayesianmodel-fitting

解决方案


重新排序中的定义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 

推荐阅读