Я - пользователь Stan, пытаюсь использовать JAGS для проекта, потому что мне нужно отобрать цензурированные данные из дистрибутива с поддержкой целых чисел. У меня возникли проблемы из-за частичного отсутствия (цензура) данных.
Мои данные - это данные о продажах для ряда продуктов и штатов. Я моделирую продажи для каждого штата, исходя из многочлена, sales[s] ~ dmulti(theta, n)
.
Проблема возникает из-за того, что мои данные для разных продуктов доступны на разных уровнях детализации. Для некоторых продуктов у меня есть данные о продажах для каждого штата отдельно. Однако для других продуктов у меня есть только сводные данные, в которых состояния сгруппированы в четыре широких региона. Данные на уровне штата подвергаются цензуре.
Итак, нет проблем, когда вы даете JAGS векторы с отсутствующими выборками данных из некоторого распределения, JAGS заполняет NA. Но нет, JAGS не может сделать это (по любой причине) при выборке из многочлена.
Тем не менее, нет проблем. Я могу извлечь недостающие данные из некоторого распределения и объединить с наблюдаемыми данными (скажем, столбец с отсутствующими данными # 7):
sales_hat[s] ~ dmulti(theta, n);
sales_hat[s] <- c(sales[s, 1:6], missingcolumn[s], sales[s, 8:...]);
missingcolumn[s] ~ dbin(theta[7], n);
JAGS чувствует, что я переопределил sales_hat
.
Хорошо, хорошо. Нет проблем. Давайте пропустим промежуточную переменную:
c(sales[s, 1:6], missingcolumn[s], sales[s, 8:...]) ~ dmulti(theta, n);
missingcolumn[s] ~ dbin(theta[7], n);
В этот момент я получаю syntax error near ","
, что, как я полагаю, означает, что JAGS не хочет, чтобы я таким образом создавал анонимный узел.
Какой правильный синтаксис для обработки этого в JAGS, где я хочу заменить данные, подвергнутые цензуре, выборочными данными и отобрать весь вектор из многочлена?
(Да, я знаю, что есть проблема с n
- Я упрощаю ради примера.)