Ошибка в glmer: NA/NaN/Inf в вызове сторонней функции (arg 1)

Я пытаюсь соответствовать модели

glmer(trans.dummy ~ pop + year + (year | munname), 
      data=pool, family=binomial(link = "logit"), REML=T, verbose=T)

но я продолжаю получать следующую ошибку:

Error in glm.fit(fr$X, fr$Y, weights = wts, offset = offset, family = family,  : 
NA/NaN/Inf in foreign function call (arg 1)

Я опустил NA, изменил спецификацию модели, преобразовал pop в log(pop), но ничего не решило проблему. Я думаю, что проблема в переменной 'pop', поскольку она единственная, которая вызывает эту проблему. Когда я бегу

mod6 <- glmer(trans.dummy ~ constituency.coa + I(governat.part) + I(district2) + 
                        gdp.cap + year + ifdm + year + (year | munname) + (year | uf), 
              data=pool, family=binomial(link = "logit"), REML=T, verbose=T)

У меня нет никаких проблем.

Любая идея о том, что происходит?

РЕДАКТИРОВАТЬ:

Это структура моих данных:

'data.frame':   41484 obs. of  50 variables:
 $ munname         : Factor w/ 5392 levels "ACACRELANDIA",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ uf              : Factor w/ 26 levels "AC","AL","AM",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ year            : int  2003 2003 2003 2003 2003 2003 2003 2003 2003 2003 ...
 $ party           : Factor w/ 30 levels "DEM","PAN","PC do B",..: 21 25 25 8 21 10 10 25 10 10 ...
 $ candidate       : Factor w/ 12600 levels "AARAO CRUZ MENDES",..: 11452 8535 6389 5910 8095 1995 6087 3996 4313 8417 ...
 $ may.coalit      : Factor w/ 10442 levels "DEM","DEM / PC do B / PRB / PRP / PTN / PSL",..: 7987 10118 10119 4023 8004 10442 4023 10114 4023 3945 ...
 $ governat.part   : Factor w/ 9 levels "PDT","PFL","PMDB",..: 9 9 9 9 9 9 9 9 9 9 ...
 $ transfers       : num  920 100920 183698 200920 919 ...
 $ pop             : num  8695 3667 17944 6641 6096 ...
 $ gdp             : num  68507 17492 101626 47936 37903 ...
 $ bf              : num  703 330 1339 335 455 ...
 $ ifdm            : num  0.422 0.442 0.404 0.511 0.396 ...
 $ elec.num        : int  45 13 13 15 45 11 11 13 11 11 ...
 $ may.votes       : int  2394 1345 3864 1415 1434 9422 2313 5423 1078 3348 ...
 $ may.round       : int  1 1 1 1 1 1 1 1 1 1 ...
 $ may.perc.votes  : num  0.59 0.586 0.441 0.544 0.615 ...
 $ pt.position     : Factor w/ 5 levels "0.No PT","1.PT mayor winner",..: 4 2 2 3 4 5 5 2 3 5 ...
 $ numb.cand       : int  2 2 3 3 2 4 3 2 2 2 ...
 $ runup           : Factor w/ 3 levels "1.PT","2.Coalition",..: 3 3 2 1 3 2 2 3 1 2 ...
 $ voters          : num  6422 3158 12234 3721 3682 ...
 $ nation.turnout  : num  4282 2150 7989 2624 2138 ...
 $ lula.vote       : num  2202 1197 4579 1431 1138 ...
 $ lula.perc.vote  : num  0.514 0.557 0.573 0.545 0.532 ...
 $ reelec          : Factor w/ 2 levels "Able to Run",..: 1 1 1 2 2 1 1 1 1 1 ...
 $ constituency.pt : num  9.37e-05 9.41e-05 3.83e-04 4.92e-05 5.38e-05 ...
 $ constituency.coa: num  4.10e-05 1.64e-05 6.87e-05 2.88e-05 1.34e-05 ...
 $ constituency.opp: num  4.81e-05 1.16e-05 2.47e-05 2.41e-05 3.55e-05 ...
 $ transfers.cap   : num  0.106 27.521 10.237 30.254 0.151 ...
 $ gdp.cap         : num  7.88 4.77 5.66 7.22 6.22 ...
 $ bf.cap          : num  0.0808 0.0899 0.0746 0.0504 0.0747 ...
 $ lula.power      : num  1.32e-64 7.16e-65 2.74e-64 8.56e-65 6.80e-65 ...
 $ mun.vote        : int  1 1 1 1 1 0 1 1 1 0 ...
 $ mun.vote2       : Factor w/ 2 levels "PSDB","PT": 2 2 2 2 2 1 2 2 2 1 ...
 $ mun.vote3       : Factor w/ 2 levels "0.PT","1.PSDB": 1 1 1 1 1 2 1 1 1 2 ...
 $ core            : Factor w/ 3 levels "Lula Core Municipality",..: 3 3 3 3 3 3 3 1 3 3 ...
 $ mayor.party.r   : int  0 2 2 1 0 0 0 2 0 0 ...
 $ mayor.party.r2  : Factor w/ 3 levels "0.PT","1.Coalition",..: 3 1 1 2 3 3 3 1 3 3 ...
 $ pt.dummy        : int  0 1 1 0 0 0 0 1 0 0 ...
 $ trans.dummy     : int  1 1 1 1 1 1 1 0 1 1 ...
 $ year2           : Factor w/ 4 levels "2003-2004","2005-2006",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ district        : Factor w/ 6 levels "PSDB/Coal","PSDB/Opo",..: 5 6 6 4 5 2 5 6 5 2 ...
 $ term            : int  0 0 0 0 0 0 0 0 0 0 ...
 $ time            : int  1 1 1 1 1 1 1 1 1 1 ...
 $ pt.pt           : int  0 1 1 0 0 0 0 1 0 0 ...
 $ pt.coa          : int  0 0 0 1 0 0 0 0 0 0 ...
 $ pt.opp          : int  1 0 0 0 1 0 1 0 1 0 ...
 $ psdb.pt         : int  0 0 0 0 0 0 0 0 0 0 ...
 $ psdb.coa        : int  0 0 0 0 0 0 0 0 0 0 ...
 $ psdb.opp        : int  0 0 0 0 0 1 0 0 0 1 ...
 $ district2       : Factor w/ 5 levels "Coal/Coal","Opp/Opp",..: 2 4 4 5 2 3 3 4 5 3 ...
 - attr(*, "na.action")=Class 'omit'  Named int [1:1316] 59 235 242 409 437 555 588 594 645 673 ...
  .. ..- attr(*, "names")= chr [1:1316] "59" "235" "242" "409" ...

person user1172558    schedule 15.02.2012    source источник
comment
Этот вопрос будет легче решить, если вы покажете нам свои данные. Как выглядит pool$pop? Содержит ли он значения NaN или Inf?   -  person Richie Cotton    schedule 15.02.2012
comment
R имеет активный список рассылки смешанных моделей: stat.ethz.ch/mailman /listinfo/r-sig-mixed-models, если вы не получили точного ответа, попробуйте там.   -  person tim riffe    schedule 15.02.2012
comment
@тим Спасибо! Я также опубликую свой вопрос в списке.   -  person user1172558    schedule 15.02.2012
comment
@Richie: я не могу показать данные, потому что они огромны. У меня 43000 наблюдений. 5000 предметов (муннаме) повторяются в течение 8 лет.   -  person user1172558    schedule 15.02.2012
comment
Вы должны по крайней мере опубликовать str() и summary() в своих переменных «pop» и «year».   -  person IRTFM    schedule 15.02.2012
comment
Я собираюсь проголосовать, чтобы закрыть это как недостаточно информации. Существует достаточное количество информации, которую было бы полезно получить от OP / вещей, которые они могли бы попытаться диагностировать, даже если они не публикуют данные где-либо (или генерируют случайный набор данных, которые воссоздают проблему). В последний раз ОП видели в 2014 году, так что я сомневаюсь, что они вернутся…   -  person Ben Bolker    schedule 14.01.2017


Ответы (1)


Похоже, что (по крайней мере) одна из ваших категорий серьезно несбалансирована, возможно, все «транс.манекены» находятся на одном уровне в одной или нескольких неявных перекрестных классификациях, созданных спецификацией вашей модели. Способ приблизиться к этому — отобразить таблицы. Вы можете начать с:

with(pool, table(trans.dummy, year ,munname) )
person IRTFM    schedule 15.02.2012
comment
Есть ли более простой способ проверить это, когда данные огромны? У меня 43000 наблюдений. 5000 предметов (муннаме) повторяются в течение 8 лет. Таблица не помогает. Но спасибо за ваш ответ. - person user1172558; 15.02.2012