[R] Random effect models
Christoph Buser
buser at stat.math.ethz.ch
Fri Oct 28 16:01:05 CEST 2005
Dear Jacques
You may be interested in the answer of Doug Bates to another
post. The question is different, but in the answer there is a
part about testing if a variance component may be zero:
http://finzi.psych.upenn.edu/R/Rhelp02a/archive/51080.html
Hope this helps.
Best regards,
Christoph Buser
--------------------------------------------------------------
Christoph Buser <buser at stat.math.ethz.ch>
Seminar fuer Statistik, LEO C13
ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND
phone: x-41-44-632-4673 fax: 632-1228
http://stat.ethz.ch/~buser/
--------------------------------------------------------------
Jacques VESLOT writes:
> 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