Подгонка к сумме случайных величин в JAGS (R) - PullRequest
0 голосов
/ 31 октября 2019

Итак, в настоящее время у меня есть модель, которая соответствует некоторому «количеству испытаний, где ответ - да»

Вам не нужно знать детали, которые я считаю, но это иерархическая модель, в которой данные3d массив (2 условия * 48 участников * 7 типов проб). Последняя строка -

    resp_diff[i,j,k] ~ dbin(pdiff[i,j,k],trials[i,j,k])

. Это означает, что предсказанное количество ответов «да» построено биномиально с вероятностью pdiff [i, j, k] в течение ряда испытаний в этом испытании типа / условия / участника. [i, j, k].

Это прекрасно работает и дает мне хорошие подгонки и разумные оценки параметров.

Однако теперь я хотел бы добавить возможность того, что ответ «да» вообще не связан с pdiff, а вместо этого для некоторой доли испытаний является случайным решением (например, участник не обращал внимания, неправильно щелкнуло, что угодно).

Итак, я добавил в промежутке между узлами [i] для каждого участника, который должен представлять вероятность «угадывания» в любом одном испытании. Вместо этого нижняя строка заменяется на

            trials_lapse[i,j,k] ~ dbin(lapse[i],trials[i,j,k])
            trials_reg[i,j,k] <- trials[i,j,k]-trials_lapse[i,j,k]
            diff_lapse[i,j,k] ~ dbin(0.5,trials_lapse[i,j,k])
            diff_reg[i,j,k] ~ dbin(pdiff[i,j,k],trials_reg[i,j,k])
            resp_diff[i,j,k] ~ dsum(diff_reg[i,j,k],diff_lapse[i,j,k])

То есть теперь мы разделяем общее количество испытаний [i, j, k] на «обычные» испытания (ответы которых зависят от модели. выше) и промежуточных испытаний (где концентрация «истекла»), а затем нарисуйте отдельно для каждого из тех, сколько ответов «да» мы получаем из-за догадок и сколько из-за ответов на основе модели. Затем они суммируются в конце, и у нас все еще есть то, что resp_diff [i, j, k] подгоняется к массиву R resp_diff, данные которого передаются в модель JAGS.

Это не работает, я получаю ошибку

    Error in node diff_reg[1,1,1]
    Node inconsistent with parents

Я не могу понять, почему это происходит, но я предполагаю, что это как-то связано с моим неправильным пониманиемфункция dsum. Я тоже безуспешно пробовал обычную «сумму».

Что я здесь не так делаю? Любая помощь будет принята с благодарностью!

Спасибо,

H

...