[R] an error to call 'gee' function in R

Qinglin Wu qwu5 at yahoo.com
Sun Sep 7 16:31:44 CEST 2008


Dear List:

I found an error when I called the 'gee' function.  I cannot solve and explain it.  There are no errors when I used the 'geeglm' function.  Both functions fit the gee model.  The project supervisor recommends me to use the 'gee' function.  But I cannot explain to him why this error happens.   Would you help me solve this problem?  I appreciate your help.

In this project I will use the 'gee' or 'geeglm' and 'glmer' to fit the simulated multivariate count responses.  I generated the data like this:

Set β0 = β1 = 1, μ0 = 3, and n = 50.
For each 1 ≤ i ≤ n,
Simulate xi from N (1, 1).
Simulate zi0 and zit from
zi0 follows i.d. Poisson (μ0) ,
zit | xi follows i.d. Poisson (μit) , 1 ≤ t ≤ 3,
log (μit) = log(E (zit | xi)) = β0t + xiβ1t = 1+xi.
Let yit = zi0 + zit, 1 ≤ t ≤ 3.

So my data frame, let me call it 'simdata', the first 10 rows look like this:
  id y.1 y.2 y.3           x
   1   3   5   6 -0.06588626
   2   6   7   6 -0.08265981
   3   6   8  13  0.58307719
   4  22  21  28  2.21099940
   5   5  12   8  1.06299869
   6   8  21  24  1.47615784
   7  11   8   9  0.83748390
   8  16  15  16  1.67011313
   9   9   7   7 -0.14181264
  10  31  37  40  2.56751453


This is the longitudinal data.  I will change its shape to analyze it.  The changed 'newdata' looks like this:
  id           x time  y
   1 -0.06588626    1  3
   2 -0.08265981    1  6
   3  0.58307719    1  6
   4  2.21099940    1 22
   5  1.06299869    1  5
   6  1.47615784    1  8
   7  0.83748390    1 11
   8  1.67011313    1 16
   9 -0.14181264    1  9
  10  2.56751453    1 31
 ...........................
   1 -0.06588626    2  5
   2 -0.08265981    2  7
   3  0.58307719    2  8
   4  2.21099940    2 21
   5  1.06299869    2 12
   6  1.47615784    2 21
   7  0.83748390    2  8
   8  1.67011313    2 15
   9 -0.14181264    2  7
  10  2.56751453    2 37
 ...........................
   1 -0.06588626    3  6
   2 -0.08265981    3  6
   3  0.58307719    3 13
   4  2.21099940    3 28
   5  1.06299869    3  8
   6  1.47615784    3 24
   7  0.83748390    3  9
   8  1.67011313    3 16
   9 -0.14181264    3  7
  10  2.56751453    3 40
 ...........................


My data 'y' comes from x.  So their correlations are not independent.  What does the argument 'corstr' mean it defined in the function.  I tried all choices.  But the error was still there.  Here was the function I used in my programming:

 mfit1 <- gee(y~x,data=newdata,family=poisson(link="log"),id=id,corstr="exchangeable")

 GEE:  GENERALIZED LINEAR MODELS FOR DEPENDENT DATA
 gee S-function, version 4.13 modified 98/01/27 (1998)

 Model:
 Link:                      Logarithm
 Variance to Mean Relation: Poisson
 Correlation Structure:     Exchangeable

 Call:
 gee(formula = y ~ x, id = id, data = newdata, family = poisson(link = "log"),
    corstr = "exchangeable")

 Number of observations :  150

 Maximum cluster size   :  1

 Coefficients:
 (Intercept)           x
  1.5849653   0.7937203

 Estimated Scale Parameter:  1.162505
 Number of Iterations:  1

 Working Correlation[1:4,1:4]
 Error in print(x$working.correlation[1:4, 1:4], digits = digits) :
  subscript out of bounds



Is this kind of data not fit for the function 'gee'?  Because when I tested this two functions  by using the R data 'warpbreaks' they worked perfect although some returned objects were different. I used the following to do it:
 1.  (summary(gee(breaks ~ tension, id=wool, data=warpbreaks, corstr="exchangeable"))
 2.  summary(geeglm(breaks ~ tension, id=wool, data=warpbreaks, corstr="exchangeable"))).

The first one is from the example of ?gee file.

I will attach the part of my programming as .R file.  You can excute in R software.  Thanks a lot.


 I appreciate your help.


 Best regards.

 Sincerely,
 Cynthia Wu



      


More information about the R-help mailing list