Ошибка при подборе байесовской модели с помощью пакета Rethinking R

Я пытаюсь использовать очень простую модель для оценки распространенности заболеваний, как описано здесь https://www.ecdc.europa.eu/sites/default/files/documents/Methodology-estimating-point-распространенность%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

Что я делаю не так?


person Bakaburg    schedule 05.06.2020    source источник
comment
Состоят ли ваши данные из одного наблюдения? Я никогда не использовал пакет rethinking, но в большинстве сэмплеров (rjags, rstan и т. д.) мы ожидаем здесь список списков или векторов...   -  person dario    schedule 05.06.2020
comment
Да, это данные подсчета. это не должно быть проблемой, я считаю. По крайней мере, версия Стэна той же модели не жалуется.   -  person Bakaburg    schedule 05.06.2020
comment
Ok. тогда не беспокойся ;)   -  person dario    schedule 05.06.2020


Ответы (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 
person Lstat    schedule 05.06.2020
comment
Благодарю вас! у вас есть идеи, почему? - person Bakaburg; 05.06.2020
comment
Я точно не знаю, почему, поскольку я не проверял код quap. Я всегда следовал структуре правдоподобия, за которой следуют априорные значения, как это расплывчато написано в справке quap (flist должен быть либо одной формулой, определяющей функцию правдоподобия, либо, скорее, списком формул, определяющих вероятность и априорные значения для параметров. См. примеры ниже.) - person Lstat; 06.06.2020