[R] Random effect models

Doran, Harold HDoran at air.org
Fri Oct 28 14:01:04 CEST 2005


Dear Jacques

I think your question is a little confusing, but let me take a stab at
what I think you're getting at. It seems you are trying to find the
statistical significance of a variance component in your lme model, and
not the significance of a fixed effect. If this is what you are looking
for you will not find this as standard output in lme or lmer. Not in
summary() or anova()

I don't know what you mean by "I can see the sd of ranodm effects but
you do not know how to find them"

Other software programs for mixed linear models do indeed provide this
as ouput, but not the mixed model functions in R. This topic has been
discussed often on this list and the package developer, Doug Bates, has
noted numerous times, with good empirical examples, why such a test may
potentially be misleading. Use the archives to study this rationale and
see the numerous threads on the topic.

Note that the standard deviations of the random effects are *not* the
standard errors of those variance components.

I also noticed you are loading the lme4 library and using lmer. You
should load Matrix, which has the most recent lmer function in that
package.

If I am mistaken, then please clarify and maybe someone else can help.

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Jacques VESLOT
Sent: Friday, October 28, 2005 7:22 AM
To: R-help at stat.math.ethz.ch
Subject: [R] Random effect models

Dear R-users,

Sorry for reposting. I put it in another way :

I want to test random effects in this random effect model :
Rendement ~ Pollinisateur (random) + Lignee (random) +
Pollinisateur:Lignee (random)

Of course :
summary(aov(Rendement ~ Pollinisateur * Lignee, data = mca2)) gives
wrong tests for random effects.

But :
summary(aov1 <- aov(Rendement ~ Error(Pollinisateur * Lignee), data =
mca2)) gives no test at all, and I have to do it with mean squares lying
in summary(aov1).

With "lme4" package (I did'nt succeed in writing a working formula with
lme from "nlme" package), I can "see" standard deviations of random
effects (I don't know how to find them) but I can't find F tests for
random effects.

I only want to know if there is an easy way (a function ?) to do F tests
for random effects in random effect models.

Thanks in advance.

Best regards,

Jacques VESLOT


Data and output are as follows :

 > head(mca2)
   Lignee Pollinisateur Rendement
1     L1            P1      13.4
2     L1            P1      13.3
3     L2            P1      12.4
4     L2            P1      12.6
5     L3            P1      12.7
6     L3            P1      13.0


 > names(mca2)
[1] "Lignee"        "Pollinisateur" "Rendement"

 > dim(mca2)
[1] 100   3

 > replications(Rendement ~ Lignee * Pollinisateur, data = mca2)
               Lignee        Pollinisateur Lignee:Pollinisateur
                   20                   10                    2

 > summary(aov1 <- aov(Rendement ~ Error(Pollinisateur * Lignee), data =
mca2)

Error: Pollinisateur
           Df  Sum Sq Mean Sq F value Pr(>F) Residuals  9 11.9729
1.3303

Error: Lignee
           Df  Sum Sq Mean Sq F value Pr(>F) Residuals  4 18.0294
4.5074

Error: Pollinisateur:Lignee
           Df Sum Sq Mean Sq F value Pr(>F) Residuals 36 5.1726  0.1437

Error: Within
           Df Sum Sq Mean Sq F value Pr(>F) Residuals 50 3.7950  0.0759


# F tests :

 > Femp <- c(tab1[1:3, 3]/tab1[c(3,3,4), 3])  > names(Femp) <-
c("Pollinisateur", "Lignee", "Interaction")  > Femp
Pollinisateur        Lignee   Interaction
      9.258709     31.370027      1.893061

 > 1 - pf(Femp, tab1[1:3,1], tab1[c(3,3,4),1])
Pollinisateur        Lignee   Interaction
  4.230265e-07  2.773448e-11  1.841028e-02

# Standard deviation :

 > variances <- c(c(tab1[1:3, 3] - tab1[c(3,3,4), 3]) / c(2*5, 2*10, 2),
tab1[4,3])  > names(variances) <- c(names(Femp), "Residuelle")  >
variances
Pollinisateur        Lignee   Interaction    Residuelle
    0.11866389    0.21818333    0.03389167    0.07590000

# Using lmer :

 > library(lme4)
 > lme1 <- lmer(Rendement ~ (1|Pollinisateur) + (1|Lignee) +
(1|Pollinisateur:Lignee), data = mca2))  > summary(lme1) Linear
mixed-effects model fit by REML
Formula: Rendement ~ (1 | Pollinisateur) + (1 | Lignee) + (1 |
Pollinisateur:Lignee)
    Data: mca2
       AIC      BIC    logLik MLdeviance REMLdeviance
  105.3845 118.4104 -47.69227   94.35162     95.38453
Random effects:
  Groups               Name        Variance Std.Dev.
  Pollinisateur:Lignee (Intercept) 0.033892 0.18410
  Pollinisateur        (Intercept) 0.118664 0.34448
  Lignee               (Intercept) 0.218183 0.46710
  Residual                         0.075900 0.27550
# of obs: 100, groups: Pollinisateur:Lignee, 50; Pollinisateur, 10;
Lignee, 5

Fixed effects:
             Estimate Std. Error DF t value  Pr(>|t|)
(Intercept) 12.60100    0.23862 99  52.808 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

 > anova(lme1)
Analysis of Variance Table
Erreur dans ok[, -nc] : nombre de dimensions incorrect

______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html




More information about the R-help mailing list