[R-sig-ME] Extractor Functions

Murray Jorgensen maj at waikato.ac.nz
Fri Aug 12 01:36:14 CEST 2011


Thanks John for that great answer which I will also use with other packages.

Thanks Martin for your willingness to entertain new extractor methods 
and for the flattery of being grouped with John and with somewhat 
experienced  *lmer() users!

Cheers,  Murray

On 12/08/11 2:11 AM, Martin Maechler wrote:
>>>>>> John Maindonald<john.maindonald at anu.edu.au>
>>>>>>      on Thu, 11 Aug 2011 20:54:26 +1000 writes:
>
>      >  showMethods(class="mer")
>
> yes, indeed, thank you, John.
>
> And...:
> Murray, John, ...<any somewhat experienced  *lmer() user>  ,
> please  do ask for missing "extractor" methods!
> I use quotes because I mean not just extractors in the
> strict sense, but also other sensible (small) utilities.
>
> For *mer objects, I agree that a user should typically never
> have to use  str(.) and then access the slots directly...
> (though its clearly necessary now, IIRC).
>
> Notably because current lme4  and future lme4
> result objects will partly have very different slots,
> such that only such "extractor" methods will continue to work
> when you switch from lme4 to "future-lme4"..
>
> Martin Maechler, ETH Zurich
> (digressing from finishing his slides for "useR!" next week...)
>
>
>      >  John Maindonald             email: john.maindonald at anu.edu.au
>      >  phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
>      >  Centre for Mathematics&  Its Applications, Room 1194,
>      >  John Dedman Mathematical Sciences Building (Building 27)
>      >  Australian National University, Canberra ACT 0200.
>      >  http://www.maths.anu.edu.au/~johnm
>
>      >  On 11/08/2011, at 8:09 PM, Murray Jorgensen wrote:
>
>      >>  Is there a convenient table or list of available extractor
>      >>  functions for mer and summary.mer objects in lme4 and lme4a?
>      >>
>      >>  Murray Jorgensen
>      >>
>      >>  On 11/08/11 10:00 PM, r-sig-mixed-models-request at r-project.org
>      >>  wrote:
>      >>>  Send R-sig-mixed-models mailing list submissions to
>      >>>  r-sig-mixed-models at r-project.org
>      >>>
>      >>>  To subscribe or unsubscribe via the World Wide Web, visit
>      >>>  https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models or,
>      >>>  via email, send a message with subject or body 'help' to
>      >>>  r-sig-mixed-models-request at r-project.org
>      >>>
>      >>>  You can reach the person managing the list at
>      >>>  r-sig-mixed-models-owner at r-project.org
>      >>>
>      >>>  When replying, please edit your Subject line so it is more
>      >>>  specific than "Re: Contents of R-sig-mixed-models digest..."
>      >>>
>      >>>
>      >>>  Today's Topics:
>      >>>
>      >>>  1. mixed model (Ahmad Rabiee) 2. Re: mixed model (Ben Bolker)
>      >>>
>      >>>
>      >>>  ----------------------------------------------------------------------
>      >>>
>      >>>  Message: 1 Date: Thu, 11 Aug 2011 11:53:20 +1000 From: "Ahmad
>      >>>  Rabiee"<ahmadr at sbscibus.com.au>
>      >>>  To:<r-sig-mixed-models at r-project.org>  Subject: [R-sig-ME]
>      >>>  mixed model
>      >>>  Message-ID:<005b01cc57c9$724ca390$56e5eab0$@com.au>
>      >>>  Content-Type: text/plain
>      >>>
>      >>>  Hi
>      >>>
>      >>>
>      >>>
>      >>>  I have a binomial dataset (0, 1), and would like to run a
>      >>>  "mixed model" logistic regression and also a "nested mixed
>      >>>  model" logistic regression using glmer:
>      >>>
>      >>>
>      >>>
>      >>>  ket.glm1<- glmer(z_ket_1.4 ~ bcs_pre + bhb_date + lact + (1 |
>      >>>  herdno) , family = binomial, data = ket)
>      >>>
>      >>>  #-------------------------------
>      >>>
>      >>>
>      >>>
>      >>>  To account for the overdispersion in the dataset, I used the
>      >>>  following codes (according to lme4 package), but the output is
>      >>>  identical to the first model (above= ket.hlm1). Comments
>      >>>  please?
>      >>>
>      >>>
>      >>>
>      >>>  # Mixed model accounting for overdispersion
>      >>>
>      >>>  ket$obs<- 1:nrow(ket)
>      >>>
>      >>>  ket.glm2<- glmer(z_ket_1.4 ~ bcs_pre + bhb_date + lact + (1 |
>      >>>  herdno) + (1|obs), family = binomial, data = ket)
>      >>>
>      >>>  #-------------------------------------------------
>      >>>
>      >>>
>      >>>
>      >>>  #Nest random effect
>      >>>
>      >>>  When I want to run a nested random effects using "glmer" I get
>      >>>  an error message (below);
>      >>>
>      >>>
>      >>>
>      >>>  # herds nested within studies
>      >>>
>      >>>  ket.glm43<- glmer(z_ket_1.4 ~ bcs_pre + bhb_date + lact +
>      >>>  (1|studyid:herdno) + (1|id), family = binomial, data = ket)
>      >>>
>      >>>
>      >>>
>      >>>  #Error message (What does this mean?)
>      >>>
>      >>>  Error: length(f1) == length(f2) is not TRUE
>      >>>
>      >>>  In addition: Warning messages:
>      >>>
>      >>>  1: In study:herdno :
>      >>>
>      >>>  numerical expression has 2695 elements: only the first used
>      >>>
>      >>>  2: In study:herdno :
>      >>>
>      >>>  numerical expression has 2695 elements: only the first used
>      >>>
>      >>>  #---------------------------------------------------------------------------
>      >>>  ----------
>      >>>
>      >>>
>      >>>
>      >>>  #glmmadmb
>      >>>
>      >>>  I believe my dataset (binomial) is zero-inflated- and Ben
>      >>>  suggested that I should use the "glmmadmb" package to count
>      >>>  for the zero-inflation (Please correct me if I am wrong). I
>      >>>  can run this model (below), when I don't have a random effects
>      >>>  term in the model. But I don't understand the outputs:
>      >>>
>      >>>
>      >>>
>      >>>  # first model (without random effects term)
>      >>>
>      >>>  ket.glmm1<- glmmadmb(z_ket_1.4 ~ bcs_pre + bhb_date + lact ,
>      >>>  family = "binomial", data = ket)
>      >>>
>      >>>  summary(ket.glmm2)
>      >>>
>      >>>
>      >>>
>      >>>  Initial statistics: 10 variables; iteration 0; function
>      >>>  evaluation 0; phase 1
>      >>>
>      >>>  Function value 1.8680316e+03; maximum gradient component mag
>      >>>  1.4283e+01
>      >>>
>      >>>  Var Value Gradient |Var Value Gradient |Var Value Gradient
>      >>>
>      >>>  1 0.00000 1.42834e+01 | 2 0.00000 -1.25533e-01 | 3 0.00000
>      >>>  7.40839e+00
>      >>>
>      >>>  4 0.00000 9.75790e-01 | 5 0.00000 -1.44553e+00 | 6 0.00000
>      >>>  -1.77029e+00
>      >>>
>      >>>  7 0.00000 -1.94537e+00 | 8 0.00000 -1.72752e+00 | 9 0.00000
>      >>>  -9.14276e-01
>      >>>
>      >>>  10 0.00000 -1.12861e+00 |
>      >>>
>      >>>
>      >>>
>      >>>  Intermediate statistics: 10 variables; iteration 10; function
>      >>>  evaluation 14; phase 1
>      >>>
>      >>>  Function value 1.2444800e+03; maximum gradient component mag
>      >>>  -4.4890e-02
>      >>>
>      >>>  Var Value Gradient |Var Value Gradient |Var Value Gradient
>      >>>
>      >>>  1-74.45668 1.75306e-02 | 2 3.38165 1.96037e-02 | 3-39.88270
>      >>>  -8.55544e-03
>      >>>
>      >>>  4 -4.77457 -4.48896e-02 | 5 10.47568 -5.10712e-03 | 6 12.37466
>      >>>  -2.16758e-03
>      >>>
>      >>>  7 13.04031 3.49481e-03 | 8 10.98531 5.92878e-04 | 9 6.74107
>      >>>  -4.27903e-03
>      >>>
>      >>>  10 6.99462 -1.41183e-04 |
>      >>>
>      >>>  10 variables; iteration 20; function evaluation 24; phase 1
>      >>>
>      >>>  Function value 1.2444697e+03; maximum gradient component mag
>      >>>  1.2294e-04
>      >>>
>      >>>  Var Value Gradient |Var Value Gradient |Var Value Gradient
>      >>>
>      >>>  1-74.57412 6.45335e-05 | 2 3.24452 3.17209e-05 | 3-39.84581
>      >>>  -2.93776e-05
>      >>>
>      >>>  4 -4.43904 1.22940e-04 | 5 10.55041 -6.38080e-05 | 6 12.43515
>      >>>  -6.09376e-05
>      >>>
>      >>>  7 13.07189 -2.38280e-05 | 8 11.01902 -1.81564e-05 | 9 6.79542
>      >>>  -2.85983e-05
>      >>>
>      >>>  10 7.02120 -6.17190e-06 |
>      >>>
>      >>>
>      >>>
>      >>>  - final statistics:
>      >>>
>      >>>  10 variables; iteration 21; function evaluation 25
>      >>>
>      >>>  Function value 1.2445e+03; maximum gradient component mag
>      >>>  4.5702e-05
>      >>>
>      >>>  Exit code = 1; converg criter 1.0000e-04
>      >>>
>      >>>  Var Value Gradient |Var Value Gradient |Var Value Gradient
>      >>>
>      >>>  1-74.57453 9.86716e-06 | 2 3.24432 1.00312e-05 | 3-39.84559
>      >>>  3.57290e-05
>      >>>
>      >>>  4 -4.43952 4.57024e-05 | 5 10.55069 -2.73803e-05 | 6 12.43544
>      >>>  -2.03976e-05
>      >>>
>      >>>  7 13.07205 -6.19842e-06 | 8 11.01915 -2.28111e-06 | 9 6.79553
>      >>>  -1.71599e-05
>      >>>
>      >>>  10 7.02125 -2.24921e-06 |
>      >>>
>      >>>  Estimating row 1 out of 10 for hessian
>      >>>
>      >>>  Estimating row 2 out of 10 for hessian
>      >>>
>      >>>  Estimating row 3 out of 10 for hessian
>      >>>
>      >>>  Estimating row 4 out of 10 for hessian
>      >>>
>      >>>  Estimating row 5 out of 10 for hessian
>      >>>
>      >>>  Estimating row 6 out of 10 for hessian
>      >>>
>      >>>  Estimating row 7 out of 10 for hessian
>      >>>
>      >>>  Estimating row 8 out of 10 for hessian
>      >>>
>      >>>  Estimating row 9 out of 10 for hessian
>      >>>
>      >>>  Estimating row 10 out of 10 for hessian
>      >>>
>      >>>  Estimated covariance matrix may not be positive definite
>      >>>
>      >>>  4.44173 4.92261 5.06046 5.06419 5.35787 5.45402 5.62318
>      >>>  6.84209 8.1491 11.1008
>      >>>
>      >>>  Estimated covariance matrix may not be positive definite
>      >>>
>      >>>  4.44173 4.92261 5.06046 5.06419 5.35787 5.45402 5.62318
>      >>>  6.84209 8.1491 11.1008
>      >>>
>      >>>  #-------------------------------------------
>      >>>
>      >>>
>      >>>
>      >>>  When I run "glmmadmb" with a random effects term in the model,
>      >>>  I get an error message. I don't know what I am doing wrong
>      >>>  here. Any help would be greatly appreciated.
>      >>>
>      >>>
>      >>>
>      >>>  # Mixed model (herdno is the random effects term)
>      >>>
>      >>>  ket.glmm2<- glmmadmb(z_ket_1.4 ~ bcs_pre + bhb_date + lact +
>      >>>  (1 | herdno), family = "binomial", data = ket)
>      >>>
>      >>>  summary(ket.glmm2)
>      >>>
>      >>>
>      >>>
>      >>>  #Error message
>      >>>
>      >>>  Error in process_randformula(formula, random, data = data) :
>      >>>
>      >>>  all grouping variables must be factors
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>  Thanks.
>      >>>
>      >>>  Ahmad
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>  #---------------------------------------------------------------------------
>      >>>  ------------
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>  "Try not to become a man of success, but rather try to become
>      >>>  a man of value" Albert Einstein
>      >>>  <http://www.brainyquote.com/quotes/authors/a/albert_einstein.html>
>      >>>
>      >>>
>      >>>
>      >>>  Please note my new email address is
>      >>>  mailto:ahmadr at sbscibus.com.au. Please update your records.
>      >>>
>      >>>
>      >>>
>      >>>
>      >>>  [[alternative HTML version deleted]]
>      >>>
>      >>>
>      >>>
>      >>>  ------------------------------
>      >>>
>      >>>  Message: 2 Date: Thu, 11 Aug 2011 02:34:52 +0000 (UTC) From:
>      >>>  Ben Bolker<bbolker at gmail.com>  To:
>      >>>  r-sig-mixed-models at r-project.org Subject: Re: [R-sig-ME] mixed
>      >>>  model Message-ID:<loom.20110811T042857-460 at post.gmane.org>
>      >>>  Content-Type: text/plain; charset=us-ascii
>      >>>
>      >>>>  Ahmad Rabiee<ahmadr at ...>   writes:
>      >>>
>      >>>  # I have a binomial dataset (0, 1),
>      >>>
>      >>>  this is a key piece of information not stated previously
>      >>>  (or I missed it ...)
>      >>>
>      >>>>  and would like to run a "mixed model" # logistic regression
>      >>>  and also a "nested mixed model" logistic regression # using
>      >>>  glmer:
>      >>>  #
>      >>>  # ket.glm1<- glmer(z_ket_1.4 ~ bcs_pre + bhb_date + lact + (1
>      >>>  | herdno) , # family = binomial, data = ket)
>      >>>
>      >>>  If your data are binomial with values 0/1 (i.e., "binary" or
>      >>>  "Bernoulli"), it makes sense to incorporate neither
>      >>>  overdispersion nor zero-inflation.
>      >>>
>      >>>  # To account for the overdispersion in the dataset, I used the
>      >>>  following codes # (according to lme4 package), but the output
>      >>>  is identical to the first model # (above= ket.hlm1). Comments
>      >>>  please?
>      >>>  #
>      >>>  # # Mixed model accounting for overdispersion
>      >>>  #
>      >>>  # ket$obs<- 1:nrow(ket)
>      >>>  #
>      >>>  # ket.glm2<- glmer(z_ket_1.4 ~ bcs_pre + bhb_date + lact + (1
>      >>>  | herdno) + # (1|obs), family = binomial, data = ket)
>      >>>
>      >>>  As stated above, overdispersion is unidentifiable with binary
>      >>>  data.
>      >>>
>      >>>  # #Nest random effect # When I want to run a nested random
>      >>>  effects using "glmer" I get an error # message (below);
>      >>>  #
>      >>>  # # herds nested within studies
>      >>>  #
>      >>>  # ket.glm43<- glmer(z_ket_1.4 ~ bcs_pre + bhb_date + lact + #
>      >>>  (1|studyid:herdno) + (1|id), family = binomial, data = ket)
>      >>>  #
>      >>>  # #Error message (What does this mean?)
>      >>>  #
>      >>>  # Error: length(f1) == length(f2) is not TRUE
>      >>>  #
>      >>>  # In addition: Warning messages:
>      >>>  #
>      >>>  # 1: In study:herdno :
>      >>>  #
>      >>>  # numerical expression has 2695 elements: only the first used
>      >>>
>      >>>  [snip]
>      >>>
>      >>>  It means that you need studyid and herdno to be factors, not
>      >>>  numeric variables, in order for this to work.
>      >>>
>      >>>  # I believe my dataset (binomial) is zero-inflated- and Ben
>      >>>  suggested that I # should use the "glmmadmb" package to count
>      >>>  for the zero-inflation (Please # correct me if I am wrong). I
>      >>>  can run this model (below), when I don't have a # random
>      >>>  effects term in the model. But I don't understand the outputs:
>      >>>
>      >>>  When I suggested that, it was before I knew your data were
>      >>>  binary.  Zero-inflation doesn't make sense for binary data.
>      >>>
>      >>>  # # first model (without random effects term)
>      >>>  #
>      >>>  # ket.glmm1<- glmmadmb(z_ket_1.4 ~ bcs_pre + bhb_date + lact ,
>      >>>  family = # "binomial", data = ket)
>      >>>  #
>      >>>  # summary(ket.glmm2)
>      >>>  #
>      >>>  # Initial statistics: 10 variables; iteration 0; function
>      >>>  evaluation 0; phase # 1 [snip]
>      >>>
>      >>>  # Estimated covariance matrix may not be positive definite
>      >>>  #
>      >>>  # 4.44173 4.92261 5.06046 5.06419 5.35787 5.45402 5.62318
>      >>>  6.84209 8.1491 # 11.1008
>      >>>  #
>      >>>  # When I run "glmmadmb" with a random effects term in the
>      >>>  model, I get an # error message. I don't know what I am doing
>      >>>  wrong here. Any help would be # greatly appreciated.
>      >>>  #
>      >>>  # # Mixed model (herdno is the random effects term)
>      >>>  #
>      >>>  # ket.glmm2<- glmmadmb(z_ket_1.4 ~ bcs_pre + bhb_date + lact +
>      >>>  (1 | # herdno), family = "binomial", data = ket)
>      >>>  #
>      >>>  # summary(ket.glmm2)
>      >>>  #
>      >>>  # #Error message
>      >>>  #
>      >>>  # Error in process_randformula(formula, random, data = data) :
>      >>>  #
>      >>>  # all grouping variables must be factors
>      >>>
>      >>>  What it says.  herdno must be a factor.
>      >>>
>      >>>  Ben Bolker
>      >>>
>      >>>
>      >>>
>      >>>  ------------------------------
>      >>>
>      >>>  _______________________________________________
>      >>>  R-sig-mixed-models mailing list
>      >>>  R-sig-mixed-models at r-project.org
>      >>>  https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>      >>>
>      >>>
>      >>>  End of R-sig-mixed-models Digest, Vol 56, Issue 15
>      >>>  **************************************************
>      >>
>      >>  --
>      >>  Dr Murray Jorgensen      http://www.stats.waikato.ac.nz/Staff/maj.html
>      >>  Department of Statistics, University of Waikato, Hamilton, New Zealand
>      >>  Email: maj at waikato.ac.nz  majorgensen at ihug.co.nz        Fax 7 838 4155
>      >>  Phone  +64 7 838 4773 wk    Home +64 7 825 0441   Mobile 021 0200 8350
>      >>
>      >>  _______________________________________________
>      >>  R-sig-mixed-models at r-project.org mailing list
>      >>  https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
>      >  _______________________________________________
>      >  R-sig-mixed-models at r-project.org mailing list
>      >  https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models

-- 
Dr Murray Jorgensen      http://www.stats.waikato.ac.nz/Staff/maj.html
Department of Statistics, University of Waikato, Hamilton, New Zealand
Email: maj at waikato.ac.nz  majorgensen at ihug.co.nz        Fax 7 838 4155
Phone  +64 7 838 4773 wk    Home +64 7 825 0441   Mobile 021 0200 8350




More information about the R-sig-mixed-models mailing list