Я подгоняю модель случайных эффектов glmer
к некоторым бизнес-данным. Цель состоит в том, чтобы проанализировать показатели продаж по дистрибьюторам с учетом региональных различий. У меня есть следующие переменные:
distcode
: идентификатор дистрибьютора, около 800 уровнейregion
: географический идентификатор верхнего уровня (север, юг, восток, запад)zone
: география среднего уровняregion
, около 30 уровней во всехterritory
: низкоуровневая географияzone
, около 150 уровней
Каждый дистрибьютор работает только на одной территории. Сложность в том, что это сводные данные, с одной точкой данных на каждого дистрибьютора. Таким образом, у меня есть 800 точек данных, и я пытаюсь соответствовать (по крайней мере) 800 параметрам, хотя и упорядоченным образом.
Я приспособил модель следующим образом:
glmer(ninv ~ 1 + (1|region/zone/territory) + (1|distcode), family=poisson)
Это работает без проблем, хотя и печатает заметку:
Количество уровней группирующего фактора для случайных воздействий равно n числу наблюдений
Это разумная вещь? Я получаю конечные оценки всех коэффициентов, и AIC также не является необоснованным. Если я попробую пуассоновский GLMM с идентификационной связью, AIC будет намного хуже, поэтому ссылка на лог является, по крайней мере, хорошей отправной точкой.
Если я построю подгонянные значения по сравнению с ответом, я получу то, что по сути идеально подходит, что, я думаю, потому, что у меня есть одна точка данных на каждого дистрибьютора. Это разумно, или я делаю что-то совершенно глупое?
Это использует данные за один месяц. Я могу получать данные за несколько месяцев и получать репликацию таким образом, но мне придется добавить новые условия для ежемесячных изменений и возможных взаимодействий, правильно?
ETA: я снова запустил вышеупомянутую модель, но без family
аргумента (так что это просто гауссовский LMM, а не GLMM). Теперь lmer
дал мне следующую ошибку:
Ошибка в (функция (fr, FL, start, REML, verbose): количество уровней фактора группировки для случайных эффектов должно быть меньше количества наблюдений
Таким образом, я предполагаю, что я не делаю что-то разумное, поскольку смена семьи не должна иметь никакого эффекта. Но теперь возникает вопрос: почему это сработало?
источник
glmer
любом случае (несмотря на то, что не слишком доволен этим).Один уровень на наблюдение может быть очень полезным, если в качестве переменной отклика у вас есть данные о избыточном распределении. Это равносильно тому, что вы ожидаете, что ваши данные подсчета поступят из логарифмического распределения Пуассона, то есть, что лямбда-параметр вашего распределения Пуассона не полностью определяется предикторными переменными в вашей модели и что возможности распределены логически ненормально.
Бен Болкер (Ben Bolker), один из разработчиков lme4, сделал два примера, похожих на учебники. Первый из них, с синтетическими данными, немного подробнее. Вы можете найти PDF здесь . Он также прошел предварительный анализ данных на реальных данных с участием сов (pdf и R-код доступны здесь ).
источник
glmer
концептуальное мнение.distributor
интерес представляет эффект: я хочу посмотреть, как дистрибьюторы работают относительно друг друга, когда учитывают другие переменные. Таким образом, это более сравнимо с обычной линейной смешанной моделью, где переоснащение является серьезной проблемой.