Rmd

Quelle: Andrew Rutherford (2002): Introducing ANOVA and ANCOVA. A GLM Approach.

Der Datensatz hat 8 Vpn pro Zelle. Er wird sowohl für between subjects designs als auch für within subjects designs als auch für mixed designs verwendet, sowohl im Buch, als auch auf dieser Seite.

Wortlisten sollen gelernt werden. AV ist die Erinnerungsleistung bzw. Reproduktionsleistung (recall). Die Vpn haben verschieden lange Lernzeiten zur Verfügung (30, 60 und 180 Sekunden). Ausserdem gibt es zwei Lern-Instruktionen: Worte auswendig lernen (memorize) vs. Mnemotechniken: sich Geschichten bzw. Bilder zu den Worten der Liste ausdenken (story and image)

Faktor A: Lerntechnik, zweistufig (encoding instruction)

A1: auswendig lernen (memorize)

A2: Geschichten und Bilder ausdenken (story and image)

Faktor B: Lernzeit, dreistufig (study time)

B1: 30 s

B2: 60 s

B3: 180 s

Datensatz als reines between subjects design:

Datensatz als reines Messwiederhoungsdesign (kompakt, Standardformat Statistica, SPSS, …)

Datensatz als reines Messwiederholungsdesign (long) mit Effektcodierung

Datensatz als gemischt-faktorielles Design, Faktor A between subjects, Faktor B within subjects (kompakt, Standardformat für Statistica, SPSS, …)

Datensatz als gemischt-faktorielles Design, Faktor A between subjects, Faktor B within subjects (long) mit Effektcodierung

Rutherford wide format, als reines Messwiederholungsdesign

Faktor A (Lerntechnik, zweistufig) als Messwiederholungsfaktor (within subjects factor) Faktor B (Lernzeit, dreistufig) als Messwiederholungsfaktor (within subjects factor)

Bemerkung: Nur eine Reihenfolge sinnvoll (memorize -> mnemonics). Dadurch unkontrollierte Reihenfolgeeffekte. Datensatz kompakt (alle MW-Stufen einer Vp in einer Zeile):

data

Berechnung der Lerntechnik und Lernzeit Effekte und deren Wechselwirkung. Verfahren beliebig.

Wir brauchen einen speziellen Ansatz, um mehrere Messwiederholungsfaktoren aus dem Wide-Format in das Long-Format übertragen zu können.

dd <- read.delim("http://md.psych.bio.uni-goettingen.de/data/div/rutherford_2x3_rep_compact.txt")
require(ggplot2)
## Loading required package: ggplot2
require(reshape2)
## Loading required package: reshape2
require(psych)
## Loading required package: psych
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
# convert it to long format 
# we have to divide data frame due to the two factorial structure
dd.mem <- dd[,1:4]
names(dd.mem) <- c("subj", "30s", "60s", "180s")
dd.mnemo <- dd[,c(1, 5:7)]
names(dd.mnemo) <- c("subj", "30s", "60s", "180s")
dd.mem.l   <- melt(dd.mem,   id="subj", variable.name="l.time", value.name="num", measured=c("30s", "60s", "180s"))
dd.mem.l$technique <- 'mem'
dd.mnemo.l <- melt(dd.mnemo, id="subj", variable.name="l.time", value.name="num", measured=c("30s", "60s", "180s"))
dd.mnemo.l$technique <- 'mnemo'
# now we merge the two data frames
dd <- rbind(dd.mem.l, dd.mnemo.l)

head(dd)
##   subj l.time num technique
## 1   s1    30s   7       mem
## 2   s2    30s   3       mem
## 3   s3    30s   6       mem
## 4   s4    30s   6       mem
## 5   s5    30s   5       mem
## 6   s6    30s   8       mem
unique(dd[c("subj", "l.time", "technique")])
##    subj l.time technique
## 1    s1    30s       mem
## 2    s2    30s       mem
## 3    s3    30s       mem
## 4    s4    30s       mem
## 5    s5    30s       mem
## 6    s6    30s       mem
## 7    s7    30s       mem
## 8    s8    30s       mem
## 9    s1    60s       mem
## 10   s2    60s       mem
## 11   s3    60s       mem
## 12   s4    60s       mem
## 13   s5    60s       mem
## 14   s6    60s       mem
## 15   s7    60s       mem
## 16   s8    60s       mem
## 17   s1   180s       mem
## 18   s2   180s       mem
## 19   s3   180s       mem
## 20   s4   180s       mem
## 21   s5   180s       mem
## 22   s6   180s       mem
## 23   s7   180s       mem
## 24   s8   180s       mem
## 25   s1    30s     mnemo
## 26   s2    30s     mnemo
## 27   s3    30s     mnemo
## 28   s4    30s     mnemo
## 29   s5    30s     mnemo
## 30   s6    30s     mnemo
## 31   s7    30s     mnemo
## 32   s8    30s     mnemo
## 33   s1    60s     mnemo
## 34   s2    60s     mnemo
## 35   s3    60s     mnemo
## 36   s4    60s     mnemo
## 37   s5    60s     mnemo
## 38   s6    60s     mnemo
## 39   s7    60s     mnemo
## 40   s8    60s     mnemo
## 41   s1   180s     mnemo
## 42   s2   180s     mnemo
## 43   s3   180s     mnemo
## 44   s4   180s     mnemo
## 45   s5   180s     mnemo
## 46   s6   180s     mnemo
## 47   s7   180s     mnemo
## 48   s8   180s     mnemo
# we don't need the intermediate data frames any more
rm(dd.mem, dd.mnemo, dd.mem.l, dd.mnemo.l)

require(ez)
## Loading required package: ez
# ezANOVA can return an aov() object with flag return_aov = FALSE
m.f.aov <- ezANOVA(data=dd, dv=.(num), wid = .(subj), within = .(technique, l.time), detailed=TRUE, type=3, return_aov = TRUE)
## Warning: Converting "technique" to factor for ANOVA.
# anova table
m.f.aov[1]
## $ANOVA
##             Effect DFn DFd  SSn       SSd         F            p p<.05
## 1      (Intercept)   1   7 6912  52.00000 930.46154 1.050034e-08     *
## 2        technique   1   7  432  75.33333  40.14159 3.905263e-04     *
## 3           l.time   2  14  672 161.00000  29.21739 1.007549e-05     *
## 4 technique:l.time   2  14  224  91.66667  17.10545 1.741322e-04     *
##         ges
## 1 0.9478881
## 2 0.5320197
## 3 0.6387833
## 4 0.3708609
m.f.aov[2]
## $`Mauchly's Test for Sphericity`
##             Effect         W          p p<.05
## 3           l.time 0.2387639 0.01361151     *
## 4 technique:l.time 0.3772959 0.05370889
m.f.aov[3]
## $`Sphericity Corrections`
##             Effect       GGe        p[GG] p[GG]<.05      HFe        p[HF]
## 3           l.time 0.5677831 0.0005332608         * 0.604025 0.0003809442
## 4 technique:l.time 0.6162553 0.0020461420         * 0.681413 0.0013411407
##   p[HF]<.05
## 3         *
## 4         *
# to get full information
m.f.aov
## $ANOVA
##             Effect DFn DFd  SSn       SSd         F            p p<.05
## 1      (Intercept)   1   7 6912  52.00000 930.46154 1.050034e-08     *
## 2        technique   1   7  432  75.33333  40.14159 3.905263e-04     *
## 3           l.time   2  14  672 161.00000  29.21739 1.007549e-05     *
## 4 technique:l.time   2  14  224  91.66667  17.10545 1.741322e-04     *
##         ges
## 1 0.9478881
## 2 0.5320197
## 3 0.6387833
## 4 0.3708609
## 
## $`Mauchly's Test for Sphericity`
##             Effect         W          p p<.05
## 3           l.time 0.2387639 0.01361151     *
## 4 technique:l.time 0.3772959 0.05370889      
## 
## $`Sphericity Corrections`
##             Effect       GGe        p[GG] p[GG]<.05      HFe        p[HF]
## 3           l.time 0.5677831 0.0005332608         * 0.604025 0.0003809442
## 4 technique:l.time 0.6162553 0.0020461420         * 0.681413 0.0013411407
##   p[HF]<.05
## 3         *
## 4         *
## 
## $aov
## 
## Call:
## aov(formula = formula(aov_formula), data = data)
## 
## Grand Mean: 12
## 
## Stratum 1: subj
## 
## Terms:
##                 Residuals
## Sum of Squares         52
## Deg. of Freedom         7
## 
## Residual standard error: 2.725541
## 
## Stratum 2: subj:technique
## 
## Terms:
##                 technique Residuals
## Sum of Squares   432.0000   75.3333
## Deg. of Freedom         1         7
## 
## Residual standard error: 3.280534
## 2 out of 3 effects not estimable
## Estimated effects are balanced
## 
## Stratum 3: subj:l.time
## 
## Terms:
##                 l.time Residuals
## Sum of Squares     672       161
## Deg. of Freedom      2        14
## 
## Residual standard error: 3.391165
## 2 out of 4 effects not estimable
## Estimated effects may be unbalanced
## 
## Stratum 4: subj:technique:l.time
## 
## Terms:
##                 technique:l.time Residuals
## Sum of Squares         224.00000  91.66667
## Deg. of Freedom                2        14
## 
## Residual standard error: 2.558832
## Estimated effects may be unbalanced
# ez offers ezPlot() 
ezPlot(data=dd, dv=.(num), wid = .(subj), within = .(technique, l.time), x=.(technique), split=.(l.time))
## Warning: Converting "technique" to factor for ANOVA.

ezPlot(data=dd, dv=.(num), wid = .(subj), within = .(technique, l.time), x=.(l.time),    split=.(technique))
## Warning: Converting "technique" to factor for ANOVA.

# ez also offers ezStats()
ezStats(data=dd, dv=.(num), wid = .(subj), within = .(technique, l.time), type=3)
## Warning: Converting "technique" to factor for ANOVA.
##   technique l.time N Mean       SD     FLSD
## 1       mem    30s 8    6 1.511858 2.744074
## 2       mem    60s 8   10 1.414214 2.744074
## 3       mem   180s 8   11 1.772811 2.744074
## 4     mnemo    30s 8   10 2.828427 2.744074
## 5     mnemo    60s 8   12 2.203893 2.744074
## 6     mnemo   180s 8   23 5.830952 2.744074
# order matters for output
ezStats(data=dd, dv=.(num), wid = .(subj), within = .(l.time, technique), type=3)
## Warning: Converting "technique" to factor for ANOVA.
##   l.time technique N Mean       SD     FLSD
## 1    30s       mem 8    6 1.511858 2.744074
## 2    30s     mnemo 8   10 2.828427 2.744074
## 3    60s       mem 8   10 1.414214 2.744074
## 4    60s     mnemo 8   12 2.203893 2.744074
## 5   180s       mem 8   11 1.772811 2.744074
## 6   180s     mnemo 8   23 5.830952 2.744074
# we look at descriptives
require(Rmisc)
## Loading required package: Rmisc
## Loading required package: lattice
## Loading required package: plyr
summarySE(data=dd, "num", groupvars=c("l.time", "technique"))
##   l.time technique N num       sd        se       ci
## 1    30s       mem 8   6 1.511858 0.5345225 1.263945
## 2    30s     mnemo 8  10 2.828427 1.0000000 2.364624
## 3    60s       mem 8  10 1.414214 0.5000000 1.182312
## 4    60s     mnemo 8  12 2.203893 0.7791937 1.842500
## 5   180s       mem 8  11 1.772811 0.6267832 1.482107
## 6   180s     mnemo 8  23 5.830952 2.0615528 4.874798

Rutherford long

Aus dem Buch Rutherford stammt das folgende Beispiel. 8 Personen Faktor A (Lerntechnik, zweistufig) als Messwiederholungsfaktor (within subjects factor) Faktor B (Lernzeit, dreistufig) als Messwiederholungsfaktor (within subjects factor)

Bemerkung: Nur eine Reihenfolge sinnvoll (memorize -> mnemonics). Dadurch unkontrollierte Reihenfolgeeffekte.

Datensatz long mit Effekt-Kodierung. Die Dummy-Kodierung drückt Effekte aus als Abweichungen vom Gesamtmittelwert (grand mean) und nicht als Abweichungen von einer Referenzgruppe. Die Koeffizienten müssen also anders interpretiert werden, die Anova-Tabelle bleibt gleich.

data

Berechnung der Effekte unter Nutzung der Dummy-Variablen, die im Datensatz hinterlegt sind.

dd <- read.delim("http://md.psych.bio.uni-goettingen.de/data/div/rutherford_2x3_rep_long_effectcoded.txt")
dd$Lernbed <- factor(dd$Lernbed)
dd$Lernzeit <- factor(dd$Lernzeit)
head(dd)
##   vp y Lernbed Lernzeit dS1 dS2 dS3 dS4 dS5 dS6 dS7 dA dB1 dB2 dSxA1 dSxA2
## 1 s1 7       1       30   1   0   0   0   0   0   0  1   1   0     1     0
## 2 s2 3       1       30   0   1   0   0   0   0   0  1   1   0     0     1
## 3 s3 6       1       30   0   0   1   0   0   0   0  1   1   0     0     0
## 4 s4 6       1       30   0   0   0   1   0   0   0  1   1   0     0     0
## 5 s5 5       1       30   0   0   0   0   1   0   0  1   1   0     0     0
## 6 s6 8       1       30   0   0   0   0   0   1   0  1   1   0     0     0
##   dSxA3 dSxA4 dSxA5 dSxA6 dSxA7 dSxB1 dSxB2 dSxB3 dSxB4 dSxB5 dSxB6 dSxB7
## 1     0     0     0     0     0     1     0     0     0     0     0     0
## 2     0     0     0     0     0     0     1     0     0     0     0     0
## 3     1     0     0     0     0     0     0     1     0     0     0     0
## 4     0     1     0     0     0     0     0     0     1     0     0     0
## 5     0     0     1     0     0     0     0     0     0     1     0     0
## 6     0     0     0     1     0     0     0     0     0     0     1     0
##   dSxB8 dSxB9 dSxB10 dSxB11 dSxB12 dSxB13 dSxB14 dAxB1 dAxB2
## 1     0     0      0      0      0      0      0     1     0
## 2     0     0      0      0      0      0      0     1     0
## 3     0     0      0      0      0      0      0     1     0
## 4     0     0      0      0      0      0      0     1     0
## 5     0     0      0      0      0      0      0     1     0
## 6     0     0      0      0      0      0      0     1     0
unique(dd[,3:length(names(dd))])
##    Lernbed Lernzeit dS1 dS2 dS3 dS4 dS5 dS6 dS7 dA dB1 dB2 dSxA1 dSxA2
## 1        1       30   1   0   0   0   0   0   0  1   1   0     1     0
## 2        1       30   0   1   0   0   0   0   0  1   1   0     0     1
## 3        1       30   0   0   1   0   0   0   0  1   1   0     0     0
## 4        1       30   0   0   0   1   0   0   0  1   1   0     0     0
## 5        1       30   0   0   0   0   1   0   0  1   1   0     0     0
## 6        1       30   0   0   0   0   0   1   0  1   1   0     0     0
## 7        1       30   0   0   0   0   0   0   1  1   1   0     0     0
## 8        1       30  -1  -1  -1  -1  -1  -1  -1  1   1   0    -1    -1
## 9        1       60   1   0   0   0   0   0   0  1   0   1     1     0
## 10       1       60   0   1   0   0   0   0   0  1   0   1     0     1
## 11       1       60   0   0   1   0   0   0   0  1   0   1     0     0
## 12       1       60   0   0   0   1   0   0   0  1   0   1     0     0
## 13       1       60   0   0   0   0   1   0   0  1   0   1     0     0
## 14       1       60   0   0   0   0   0   1   0  1   0   1     0     0
## 15       1       60   0   0   0   0   0   0   1  1   0   1     0     0
## 16       1       60  -1  -1  -1  -1  -1  -1  -1  1   0   1    -1    -1
## 17       1      180   1   0   0   0   0   0   0  1  -1  -1     1     0
## 18       1      180   0   1   0   0   0   0   0  1  -1  -1     0     1
## 19       1      180   0   0   1   0   0   0   0  1  -1  -1     0     0
## 20       1      180   0   0   0   1   0   0   0  1  -1  -1     0     0
## 21       1      180   0   0   0   0   1   0   0  1  -1  -1     0     0
## 22       1      180   0   0   0   0   0   1   0  1  -1  -1     0     0
## 23       1      180   0   0   0   0   0   0   1  1  -1  -1     0     0
## 24       1      180  -1  -1  -1  -1  -1  -1  -1  1  -1  -1    -1    -1
## 25       2       30   1   0   0   0   0   0   0 -1   1   0    -1     0
## 26       2       30   0   1   0   0   0   0   0 -1   1   0     0    -1
## 27       2       30   0   0   1   0   0   0   0 -1   1   0     0     0
## 28       2       30   0   0   0   1   0   0   0 -1   1   0     0     0
## 29       2       30   0   0   0   0   1   0   0 -1   1   0     0     0
## 30       2       30   0   0   0   0   0   1   0 -1   1   0     0     0
## 31       2       30   0   0   0   0   0   0   1 -1   1   0     0     0
## 32       2       30  -1  -1  -1  -1  -1  -1  -1 -1   1   0     1     1
## 33       2       60   1   0   0   0   0   0   0 -1   0   1    -1     0
## 34       2       60   0   1   0   0   0   0   0 -1   0   1     0    -1
## 35       2       60   0   0   1   0   0   0   0 -1   0   1     0     0
## 36       2       60   0   0   0   1   0   0   0 -1   0   1     0     0
## 37       2       60   0   0   0   0   1   0   0 -1   0   1     0     0
## 38       2       60   0   0   0   0   0   1   0 -1   0   1     0     0
## 39       2       60   0   0   0   0   0   0   1 -1   0   1     0     0
## 40       2       60  -1  -1  -1  -1  -1  -1  -1 -1   0   1     1     1
## 41       2      180   1   0   0   0   0   0   0 -1  -1  -1    -1     0
## 42       2      180   0   1   0   0   0   0   0 -1  -1  -1     0    -1
## 43       2      180   0   0   1   0   0   0   0 -1  -1  -1     0     0
## 44       2      180   0   0   0   1   0   0   0 -1  -1  -1     0     0
## 45       2      180   0   0   0   0   1   0   0 -1  -1  -1     0     0
## 46       2      180   0   0   0   0   0   1   0 -1  -1  -1     0     0
## 47       2      180   0   0   0   0   0   0   1 -1  -1  -1     0     0
## 48       2      180  -1  -1  -1  -1  -1  -1  -1 -1  -1  -1     1     1
##    dSxA3 dSxA4 dSxA5 dSxA6 dSxA7 dSxB1 dSxB2 dSxB3 dSxB4 dSxB5 dSxB6 dSxB7
## 1      0     0     0     0     0     1     0     0     0     0     0     0
## 2      0     0     0     0     0     0     1     0     0     0     0     0
## 3      1     0     0     0     0     0     0     1     0     0     0     0
## 4      0     1     0     0     0     0     0     0     1     0     0     0
## 5      0     0     1     0     0     0     0     0     0     1     0     0
## 6      0     0     0     1     0     0     0     0     0     0     1     0
## 7      0     0     0     0     1     0     0     0     0     0     0     1
## 8     -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1
## 9      0     0     0     0     0     0     0     0     0     0     0     0
## 10     0     0     0     0     0     0     0     0     0     0     0     0
## 11     1     0     0     0     0     0     0     0     0     0     0     0
## 12     0     1     0     0     0     0     0     0     0     0     0     0
## 13     0     0     1     0     0     0     0     0     0     0     0     0
## 14     0     0     0     1     0     0     0     0     0     0     0     0
## 15     0     0     0     0     1     0     0     0     0     0     0     0
## 16    -1    -1    -1    -1    -1     0     0     0     0     0     0     0
## 17     0     0     0     0     0    -1     0     0     0     0     0     0
## 18     0     0     0     0     0     0    -1     0     0     0     0     0
## 19     1     0     0     0     0     0     0    -1     0     0     0     0
## 20     0     1     0     0     0     0     0     0    -1     0     0     0
## 21     0     0     1     0     0     0     0     0     0    -1     0     0
## 22     0     0     0     1     0     0     0     0     0     0    -1     0
## 23     0     0     0     0     1     0     0     0     0     0     0    -1
## 24    -1    -1    -1    -1    -1     1     1     1     1     1     1     1
## 25     0     0     0     0     0     1     0     0     0     0     0     0
## 26     0     0     0     0     0     0     1     0     0     0     0     0
## 27    -1     0     0     0     0     0     0     1     0     0     0     0
## 28     0    -1     0     0     0     0     0     0     1     0     0     0
## 29     0     0    -1     0     0     0     0     0     0     1     0     0
## 30     0     0     0    -1     0     0     0     0     0     0     1     0
## 31     0     0     0     0    -1     0     0     0     0     0     0     1
## 32     1     1     1     1     1    -1    -1    -1    -1    -1    -1    -1
## 33     0     0     0     0     0     0     0     0     0     0     0     0
## 34     0     0     0     0     0     0     0     0     0     0     0     0
## 35    -1     0     0     0     0     0     0     0     0     0     0     0
## 36     0    -1     0     0     0     0     0     0     0     0     0     0
## 37     0     0    -1     0     0     0     0     0     0     0     0     0
## 38     0     0     0    -1     0     0     0     0     0     0     0     0
## 39     0     0     0     0    -1     0     0     0     0     0     0     0
## 40     1     1     1     1     1     0     0     0     0     0     0     0
## 41     0     0     0     0     0    -1     0     0     0     0     0     0
## 42     0     0     0     0     0     0    -1     0     0     0     0     0
## 43    -1     0     0     0     0     0     0    -1     0     0     0     0
## 44     0    -1     0     0     0     0     0     0    -1     0     0     0
## 45     0     0    -1     0     0     0     0     0     0    -1     0     0
## 46     0     0     0    -1     0     0     0     0     0     0    -1     0
## 47     0     0     0     0    -1     0     0     0     0     0     0    -1
## 48     1     1     1     1     1     1     1     1     1     1     1     1
##    dSxB8 dSxB9 dSxB10 dSxB11 dSxB12 dSxB13 dSxB14 dAxB1 dAxB2
## 1      0     0      0      0      0      0      0     1     0
## 2      0     0      0      0      0      0      0     1     0
## 3      0     0      0      0      0      0      0     1     0
## 4      0     0      0      0      0      0      0     1     0
## 5      0     0      0      0      0      0      0     1     0
## 6      0     0      0      0      0      0      0     1     0
## 7      0     0      0      0      0      0      0     1     0
## 8      0     0      0      0      0      0      0     1     0
## 9      1     0      0      0      0      0      0     0     1
## 10     0     1      0      0      0      0      0     0     1
## 11     0     0      1      0      0      0      0     0     1
## 12     0     0      0      1      0      0      0     0     1
## 13     0     0      0      0      1      0      0     0     1
## 14     0     0      0      0      0      1      0     0     1
## 15     0     0      0      0      0      0      1     0     1
## 16    -1    -1     -1     -1     -1     -1     -1     0     1
## 17    -1     0      0      0      0      0      0    -1    -1
## 18     0    -1      0      0      0      0      0    -1    -1
## 19     0     0     -1      0      0      0      0    -1    -1
## 20     0     0      0     -1      0      0      0    -1    -1
## 21     0     0      0      0     -1      0      0    -1    -1
## 22     0     0      0      0      0     -1      0    -1    -1
## 23     0     0      0      0      0      0     -1    -1    -1
## 24     1     1      1      1      1      1      1    -1    -1
## 25     0     0      0      0      0      0      0    -1     0
## 26     0     0      0      0      0      0      0    -1     0
## 27     0     0      0      0      0      0      0    -1     0
## 28     0     0      0      0      0      0      0    -1     0
## 29     0     0      0      0      0      0      0    -1     0
## 30     0     0      0      0      0      0      0    -1     0
## 31     0     0      0      0      0      0      0    -1     0
## 32     0     0      0      0      0      0      0    -1     0
## 33     1     0      0      0      0      0      0     0    -1
## 34     0     1      0      0      0      0      0     0    -1
## 35     0     0      1      0      0      0      0     0    -1
## 36     0     0      0      1      0      0      0     0    -1
## 37     0     0      0      0      1      0      0     0    -1
## 38     0     0      0      0      0      1      0     0    -1
## 39     0     0      0      0      0      0      1     0    -1
## 40    -1    -1     -1     -1     -1     -1     -1     0    -1
## 41    -1     0      0      0      0      0      0     1     1
## 42     0    -1      0      0      0      0      0     1     1
## 43     0     0     -1      0      0      0      0     1     1
## 44     0     0      0     -1      0      0      0     1     1
## 45     0     0      0      0     -1      0      0     1     1
## 46     0     0      0      0      0     -1      0     1     1
## 47     0     0      0      0      0      0     -1     1     1
## 48     1     1      1      1      1      1      1     1     1
require(ez)
# ezANOVA can return an aov() object with flag return_aov = FALSE
m.r <- ezANOVA(data=dd, dv=.(y), wid = .(vp), within = .(Lernbed, Lernzeit), detailed=TRUE, type=3, return_aov = TRUE)

# anova table
m.r
## $ANOVA
##             Effect DFn DFd  SSn       SSd         F            p p<.05
## 1      (Intercept)   1   7 6912  52.00000 930.46154 1.050034e-08     *
## 2          Lernbed   1   7  432  75.33333  40.14159 3.905263e-04     *
## 3         Lernzeit   2  14  672 161.00000  29.21739 1.007549e-05     *
## 4 Lernbed:Lernzeit   2  14  224  91.66667  17.10545 1.741322e-04     *
##         ges
## 1 0.9478881
## 2 0.5320197
## 3 0.6387833
## 4 0.3708609
## 
## $`Mauchly's Test for Sphericity`
##             Effect         W          p p<.05
## 3         Lernzeit 0.2387639 0.01361151     *
## 4 Lernbed:Lernzeit 0.3772959 0.05370889      
## 
## $`Sphericity Corrections`
##             Effect       GGe        p[GG] p[GG]<.05      HFe        p[HF]
## 3         Lernzeit 0.5677831 0.0005332608         * 0.604025 0.0003809442
## 4 Lernbed:Lernzeit 0.6162553 0.0020461420         * 0.681413 0.0013411407
##   p[HF]<.05
## 3         *
## 4         *
## 
## $aov
## 
## Call:
## aov(formula = formula(aov_formula), data = data)
## 
## Grand Mean: 12
## 
## Stratum 1: vp
## 
## Terms:
##                 Residuals
## Sum of Squares         52
## Deg. of Freedom         7
## 
## Residual standard error: 2.725541
## 
## Stratum 2: vp:Lernbed
## 
## Terms:
##                  Lernbed Residuals
## Sum of Squares  432.0000   75.3333
## Deg. of Freedom        1         7
## 
## Residual standard error: 3.280534
## 2 out of 3 effects not estimable
## Estimated effects are balanced
## 
## Stratum 3: vp:Lernzeit
## 
## Terms:
##                 Lernzeit Residuals
## Sum of Squares       672       161
## Deg. of Freedom        2        14
## 
## Residual standard error: 3.391165
## 2 out of 4 effects not estimable
## Estimated effects may be unbalanced
## 
## Stratum 4: vp:Lernbed:Lernzeit
## 
## Terms:
##                 Lernbed:Lernzeit Residuals
## Sum of Squares         224.00000  91.66667
## Deg. of Freedom                2        14
## 
## Residual standard error: 2.558832
## Estimated effects may be unbalanced
summary(m.r$aov)
## 
## Error: vp
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals  7     52   7.429               
## 
## Error: vp:Lernbed
##           Df Sum Sq Mean Sq F value   Pr(>F)    
## Lernbed    1  432.0   432.0   40.14 0.000391 ***
## Residuals  7   75.3    10.8                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: vp:Lernzeit
##           Df Sum Sq Mean Sq F value   Pr(>F)    
## Lernzeit   2    672   336.0   29.22 1.01e-05 ***
## Residuals 14    161    11.5                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: vp:Lernbed:Lernzeit
##                  Df Sum Sq Mean Sq F value   Pr(>F)    
## Lernbed:Lernzeit  2 224.00  112.00   17.11 0.000174 ***
## Residuals        14  91.67    6.55                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
head(unique(model.matrix(m.r$aov)))
##   (Intercept) Lernbed2 Lernzeit60 Lernzeit180
## 1           1        0          0           0
## 2           1        0          1           0
## 3           1        0          0           1
## 4           1        1          0           0
## 5           1        1          1           0
## 6           1        1          0           1
##   Error(vp/(Lernbed * Lernzeit))s2 Error(vp/(Lernbed * Lernzeit))s3
## 1                                0                                0
## 2                                0                                0
## 3                                0                                0
## 4                                0                                0
## 5                                0                                0
## 6                                0                                0
##   Error(vp/(Lernbed * Lernzeit))s4 Error(vp/(Lernbed * Lernzeit))s5
## 1                                0                                0
## 2                                0                                0
## 3                                0                                0
## 4                                0                                0
## 5                                0                                0
## 6                                0                                0
##   Error(vp/(Lernbed * Lernzeit))s6 Error(vp/(Lernbed * Lernzeit))s7
## 1                                0                                0
## 2                                0                                0
## 3                                0                                0
## 4                                0                                0
## 5                                0                                0
## 6                                0                                0
##   Error(vp/(Lernbed * Lernzeit))s8 Lernbed2:Lernzeit60
## 1                                0                   0
## 2                                0                   0
## 3                                0                   0
## 4                                0                   0
## 5                                0                   1
## 6                                0                   0
##   Lernbed2:Lernzeit180
## 1                    0
## 2                    0
## 3                    0
## 4                    0
## 5                    0
## 6                    1
# we compare it to predefined dummies
# todo