# [R] Convergence and singularity in glmmPQL

Andrew Perrin clists at perrin.socsci.unc.edu
Fri May 31 22:37:18 CEST 2002

```Greetings-

Using R 1.5.0 under linux and the latest MASS and nlme, I am trying to
develop a three-level (two levels of nesting) model with a dichotomous
oucome variable. The unconditional model is thus:

> doubt1.pql<-glmmPQL(fixed = r.info.doubt ~ 1, random = ~1 |
groupid/participantid,
+ family = binomial, data = fgdata.10statements.df)
iteration 1
iteration 2
iteration 3
iteration 4
iteration 5
> summary(doubt1.pql)
Linear mixed-effects model fit by maximum likelihood
Data: fgdata.10statements.df
AIC      BIC    logLik
35838.51 35864.14 -17915.26

Random effects:
Formula: ~1 | groupid
(Intercept)
StdDev:   0.9113356

Formula: ~1 | participantid %in% groupid
(Intercept)  Residual
StdDev:    1.222692 0.8411629

Variance function:
Structure: fixed weights
Formula: ~invwt
Fixed effects: r.info.doubt ~ 1
Value Std.Error   DF   t-value p-value
(Intercept) -5.523606 0.3170107 4351 -17.42404  <.0001

Standardized Within-Group Residuals:
Min          Q1         Med          Q3         Max
-0.54548030 -0.06825715 -0.05379631 -0.04567625 18.29733311

Number of Observations: 4480
Number of Groups:
groupid participantid %in% groupid
21                        129

---

The most interesting question, though, is the effect of the dummy
variables is.prot, is.cath, is.union, is.sport, and is.busi. Each of these
is a dichotomous variable. I tried:

> doubt5.pql<-glmmPQL(random = ~ 1 | groupid/participantid,
+                     fixed = r.info.doubt ~  is.prot + is.cath + is.union
+                     is.sport + is.busi,
+                     data = fgdata.10statements.df,
+                     na.action=na.omit,
+                     niter=50,
+                     family = binomial)

(the version without niter=50 just failed to converge after 10

iteration 1
...
iteration 26
Error in solve.default(estimates[dimE[1] - (p:1), dimE[2] - (p:1), drop =
FALSE]) :
singular matrix `a' in solve
Algorithm did not converge in: (if (is.empty.model(mt)) glm.fit.null else
glm.fit)(x = X, y = Y,

---

Can someone help with interpreting this? What strategies might be fruitful
in gaining convergence? This particular outcome variable is very sparse
(28 positive values in an N of 4480); is that likely part of the problem?

Thanks.

----------------------------------------------------------------------
Andrew J Perrin - http://www.unc.edu/~aperrin
Assistant Professor of Sociology, U of North Carolina, Chapel Hill
clists at perrin.socsci.unc.edu * andrew_perrin (at) unc.edu

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```