сообщение об ошибке с нулевой случайной моделью R2MLwin - PullRequest
0 голосов
/ 07 октября 2018

Я получаю сообщение об ошибке при установке полной случайной двухуровневой нулевой модели с пакетом R2MLwiN.Мой фрейм данных является подмножеством кластерного обследования с несколькими показателями, разработанного ЮНИСЕФ для Мозамбика.Моя переменная ответа agem.18 двоичная ("Yes", "No"), указывающая, вышла ли женщина замуж в возрасте до 18 лет.

> table(moz.20$agem.18, useNA = "ifany")

  No  Yes 
5934 5405 

Мои два уровня в порядке убывания province и w.id.Это код, который я запускаю

# Random effect
F1 <- logit(agem.18) ~ 1 + (1 | province) + (1 | w.id)
rand.eff <- runMLwiN(Formula = F1, D = "Binomial", data = moz.20)

Это сообщение об ошибке, которое я получаю

Invalid link function specified: NA 
Error in runMLwiN(Formula = F1, D = "Binomial", data = df) :

Сначала я думал, что функция logit была замаскирована пакетом car, ноэто не вариант.Я также подумал, что проблема была в вызове denom в функции ссылки, но я прочитал, что R2MLwiN должен автоматически создать denom как набор единиц.Я не получаю никакой ошибки, если использую пакет lme4 с теми же данными, переменной и уровнями:

(fit <- glmer(agem.18 ~ 1 + (1 | province), family = binomial("logit"), data = moz.20)

Generalized linear mixed model fit by maximum likelihood (Laplace
  Approximation) [glmerMod]
 Family: binomial  ( logit )
Formula: agem.18 ~ 1 + (1 | province)
   Data: moz.20
      AIC       BIC    logLik  deviance  df.resid 
14907.498 14922.170 -7451.749 14903.498     11337 
Random effects:
 Groups   Name        Std.Dev.
 province (Intercept) 0.5366  
Number of obs: 11339, groups:  province, 11
Fixed Effects:
(Intercept)  
   -0.04992

Я не сталкиваюсь с той же проблемой, если использую очень похожую формулу, включенную в demo UserGuide09.R за пакет R2MLwiN.

(mymodel1 <- runMLwiN(logit(use) ~ 1 + lc, D = "Binomial", data = bang))

Мое единственное предположение на данный момент состоит в том, что по некоторым причинам R2MLwiN не может распознать мою переменную ответа agem.18 как двоичную.

Любое предложение?

Спасибо

Маноло

1 Ответ

0 голосов
/ 10 октября 2018

Проблема решена.Похоже, что в R2MLwiN есть ошибка, как отметил Крис Чарлтон на форуме R2MLwiN (см. Сообщение здесь ).Я повторяю код, написанный Крисом, который показывает ошибку.

> library(R2MLwiN)
> data(bang, package = "R2MLwiN")
> (mymodel1 <- runMLwiN(logit(use) ~ 1 + lc, D = "Binomial", data = bang))

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 
MLwiN (version: 3.02)  multilevel model (Binomial) 
Estimation algorithm:  IGLS MQL1        Elapsed time : 0.6s 
Number of obs:  2867 (from total 2867)        The model converged after 4 iterations.
Log likelihood:      NA 
Deviance statistic:  NA 
--------------------------------------------------------------------------------------------------- 
The model formula:
logit(use) ~ 1 + lc
Level 1: l1id      
--------------------------------------------------------------------------------------------------- 
The fixed part estimates:  
                    Coef.   Std. Err.        z    Pr(>|z|)         [95% Conf.   Interval] 
Intercept        -1.12288     0.08348   -13.45    3.05e-41   ***     -1.28650    -0.95926 
lcOne_child       0.93275     0.12156     7.67   1.676e-14   ***      0.69450     1.17100 
lcTwo_children    1.09250     0.12509     8.73   2.466e-18   ***      0.84733     1.33768 
lcThree_plus      0.87224     0.10302     8.47   2.523e-17   ***      0.67033     1.07416 
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1  
--------------------------------------------------------------------------------------------------- 
The random part estimates at the l1id level: 
                Coef.   Std. Err. 
var_bcons_1   1.00000     0.00000 
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 

> bang$use.test <- bang$use
> (mymodel1 <- runMLwiN(logit(use.test) ~ 1 + lc, D = "Binomial", data = bang))
Invalid link function specified: NA 
Error in runMLwiN(logit(use.test) ~ 1 + lc, D = "Binomial", data = bang) : 
...