Предположим, вы моделируете биномиальные данные, где каждый ответ представляет собой ряд успехов (y) из ряда испытаний (N) с некоторыми объясняющими переменными (a и b). Там есть несколько функций, которые делают такие вещи, и все они, кажется, используют разные методы для указания y и N.
В glm вы выполняете glm(cbind(y,N-y)~a+b, data = d)
(матрица успеха/сбой на LHS)
В inla вы выполняете inla(y~a+b, Ntrials=d$N, data=d)
(укажите количество испытаний отдельно)
В glmmBUGS вы выполняете glmmBUGS(y+N~a+b,data=d)
(укажите успешные + испытания как термины на LHS)
При программировании новых методов я всегда считал, что лучше всего следить за тем, что делает glm, так как обычно люди сталкиваются с данными биномиального ответа. Тем не менее, я никогда не запомню, если его cbind(y,N-y)
или cbind(y,N)
- и у меня обычно, кажется, есть успех/количество проб в моих данных, а не успех/число сбоев - YMMV.
Конечно, возможны и другие подходы. Например, используя функцию в RHS, чтобы отметить, является ли переменная числом проб или числом сбоев:
myblm( y ~ a + b + Ntrials(N), data=d)
myblm( y ~ a + b + Nfails(M), data=d) # if your dataset has succ/fail variables
или определяя оператор, чтобы просто сделать cbind, чтобы вы могли:
myblm( y %of% N ~ a + b, data=d)
таким образом, придавая значение LHS, что делает его явным.
Есть ли у кого-нибудь лучшие идеи? Какой правильный способ сделать это?