Я пытаюсь скопировать некоторое подмножество lme4 в Haskell. Я справился с частью lmer
, более или менее, с результатами, которые соответствуют примерам Бейтса (2009) «Реализация линейной смешанной модели в lme4». Так что теперь я перехожу к обобщенному. Немного обнадеживает то, что я могу выполнить свой блестящий эквивалент на примерах lmer, используя семейство Гаусса и функцию тождественной ссылки. Так что все не 10000 * дико неправильно. Но когда я пытаюсь соответствовать примеру cbpp, даже очень упрощенная версия, где я просто пытаюсь соответствовать
example <- glmer(incidence/size ~ 1 + (1 | herd), data = cbpp,
family = binomial(), weights = size)
Все не работает. Под этим я подразумеваю, что моя версия на Haskell (https://github.com/adamConnerSax/glm-haskell/blob/GLMMs/test/glm/GLMM-test.hs) не сходится к одному и тому же ответу.
Было бы очень полезно две вещи:
Isесть лучшая ссылка на алгоритм glmer, чем в различных статьях Бейтса (2007, 2009, 2018)? Все они имеют много специфических особенностей в части LMM, но намного меньше в бите GLMM.
Предположим, я выполнил приведенный выше код с результатом в example
. В lme4, есть ли способ просто получить значение различных функций отклонения для данных beta
и u
вместо решения? Могу ли япросто запустите итеративно взвешенные наименьшие квадраты для фиксированного значения theta
, вместо того, чтобы запускать весь цикл оптимизации? Чем больше у меня точек сравнения между R и моим кодом на Haskell, тем проще для меня это будетчтобы увидеть, где я ошибся.