[R-sig-ME] interaction model and variance in lme
Doran, Harold
HDoran at air.org
Tue Feb 17 18:12:04 CET 2009
It is an attribute. You can grab it like this:
> example(lmer)
> qq <- VarCorr(fm1)
> str(qq)
List of 1
$ Subject: num [1:2, 1:2] 612.1 9.6 9.6 35.1
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:2] "(Intercept)" "Days"
.. ..$ : chr [1:2] "(Intercept)" "Days"
..- attr(*, "stddev")= Named num [1:2] 24.74 5.92
.. ..- attr(*, "names")= chr [1:2] "(Intercept)" "Days"
..- attr(*, "correlation")= num [1:2, 1:2] 1 0.0655 0.0655 1
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : chr [1:2] "(Intercept)" "Days"
.. .. ..$ : chr [1:2] "(Intercept)" "Days"
- attr(*, "sc")= Named num 25.6
..- attr(*, "names")= chr "sigmaREML"
> attr(qq, 'sc')
sigmaREML
25.59182
> -----Original Message-----
> From: r-sig-mixed-models-bounces at r-project.org
> [mailto:r-sig-mixed-models-bounces at r-project.org] On Behalf
> Of David Springate
> Sent: Tuesday, February 17, 2009 12:05 PM
> To: 'Douglas Bates'
> Cc: r-sig-mixed-models at r-project.org
> Subject: Re: [R-sig-ME] interaction model and variance in lme
>
> Thanks for the help!
>
> The ML model that seems to be appropriate for my work is
>
> model = lmer(trait~treatment + (1|family) +
> (1|family:treatment),data=d,REML=F)
>
> as I am most concerned with determining the interaction term
> of family and treatment.
>
> However, I still have a problem. I need to get to the
> variance components of the random effects to do some further
> downstream analysis.
> The part of the summary output I need is:
>
> Random effects:
> Groups Name Variance Std.Dev.
> family:treatment (Intercept) 5.42852 2.32992
> family (Intercept) 0.79754 0.89305
> Residual 17.16665 4.14327
> Number of obs: 172, groups: family:treatment, 49; family, 25
>
> I have used VarCorr to get the variances for family and
> family:treatment:
> a = VarCorr(model)
> family.var = a$family[1,1]
>
> but VarCorr doesn't have the residual variance term.
>
> How can I get to this variable? Do I need to put an
> additional error term in the model?
>
> Thanks in advance!
>
>
> -----Original Message-----
> From: dmbates at gmail.com [mailto:dmbates at gmail.com] On Behalf
> Of Douglas Bates
> Sent: 12 February 2009 14:03
> To: David Springate
> Cc: r-sig-mixed-models at r-project.org
> Subject: Re: [R-sig-ME] interaction model and variance in lme
>
> On Wed, Feb 11, 2009 at 4:19 PM, David Springate
> <David.Springate at postgrad.manchester.ac.uk> wrote:
> > Hi,
>
> > I am new to R and I have been trying to build a model that I can
> > extract
> ML
> > variance components for the interaction from, but am struggling to
> > make sense of the formula.
>
> > I am looking at the interaction of family (random) and two
> > environmental treatments (fixed) on a trait. So far I have tried:
>
> > model=lme(trait~treatment,data=dataset,random=~1|family/treatment)
>
> > But this seems to give me just the treatment nested in the family
> > rather than family*treatment values.
>
> Some of the difficulty here may be in nomenclature and
> notation. The phrase "family*treatment values" means
> different things in SAS and in R. It may help if you could
> describe verbally what you want to obtain rather than symbolically.
>
> For a model like this I would recommend using lmer from the
> lme4 package as it has several enhancements relative to lme
> from the nlme package.
>
> As you have seen, the model above, which would be written
>
> lmer(trait ~ treatment + (1|family/treatment), dataset)
>
> or, equivalently,
>
> lmer(trait ~ treatment + (1|family) + (1|family:treatment), dataset)
>
> provides fixed effects for the treatment (Intercept and an
> effect of one level) plus the random effects for each family
> plus the random effects for each family:treatment
> combination. (In R an interaction term is written
> family:treatment; the notation family*treatment indicates
> crossing of fixed effects so that family*treatment expands to
> family + treatment + family:treatment.)
>
> Another model incorporating random effects for each level of
> treatment within family is
>
> lmer(trait ~ treatment + (treatment|family), dataset)
>
> for which I prefer and alternative expression as
>
> lmer(trait ~ treatment + (0+treatment|family), dataset)
>
> These models are equivalent but have different parameterizations.
> Suppose that the treatment levels are called A and B. Then
> the default model matrix for the treatment term provides the
> intercept and the indicator of level B. The model matrix for
> 0+treatment suppresses the intercept and provides an
> indicator for A and an indicator for B.
>
> The notation (0+treatment|family) produces a pair of random
> effects for each level of family, one for treatment A and one
> for treatment B, and the variance-covariance matrix for these
> random effects is a general positive-definite 2x2 matrix.
> (In SAS-speak this is an "unconstrained" variance-covariance
> matrix but the mathematician in me will not accept the
> concept of an unconstrained matrix that is subject to the
> constraints of being symmetric and positive definite.)
>
> I hope this helps but I encourage you to follow up on your
> question if this did not answer it.
>
>
> > I also tried:
> >
> > Model = lme(trait~family*treatment,data=dataset,random=~1|family)
> >
> > which gives me an interaction MS and F value in an anova,
> but seems to
> treat
> > each interaction between each treatment and family as a
> separate fixed
> > factor. Also VarCorr() doesn't seem to give a variance for the
> interaction
> > term.
> >
> > What am I doing wrong?
> >
> > I am sure this should be simple, but the docs seem pretty
> unclear to
> > me on modeling interactions.
> >
> > Help please!
> >
> > David Springate
> >
> > _______________________________________________
> > 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
>
More information about the R-sig-mixed-models
mailing list