# Demonstration: Zweifaktorielle Varianzanalyse mit Messwiederholung # ------------------------------------------------------------------------------ BaseURL="http://www2.jura.uni-hamburg.de/instkrim/kriminologie/Mitarbeiter/Enzmann/Lehre/StatIIKrim/Uebungen/" # ------------------------------------------------------------------------------ # Gegebenfalls die folgende Anweisung auskommentieren und den Pfadnamen (mit ab- # schließendem Schrägstrich-Vorwärts) eintragen, z.B.: # Pfad = 'd:/winword/texte/S2_ss06/StatIIKrim/Uebungen/' # ------------------------------------------------------------------------------ # Nur bei Internet-Anschluss verwenden: download.file(paste(BaseURL,'descby.r',sep=""),paste(Pfad,'descby.r',sep=""),mode='wb') download.file(paste(BaseURL,'anova2mw.dat',sep=""),paste(Pfad,'anova2mw.dat',sep=""),mode='wb') # ------------------------------------------------------------------------------ # Die Dateien müssen im aktuellen Arbeitsverzeichnis vorliegen! source(paste(Pfad,'descby.r',sep="")) daten = read.table(paste(Pfad,'anova2mw.dat',sep=""),header=T) # Die Messwiederholung besteht aus der Variablen y, die zu zwei Messzeitpunkten # (in zwei Gruppen: 0 = Kontrollgruppe, 1 = Experimentalgruppe) gemessen wurde. # Im Datensatz sind das die Variablen y1 (t1) und y2 (t2). daten # Ein Varianzanalyse von Daten mit Messwiederholung erfordert in R, dass die # Daten im sog. "langen" (long) Format vorliegen und nicht - wie im vorliegenden # Datensatz - in der Form von zwei Variablen (y1 = y zu t1 und y2 = y zu t2), # letzteres wird auch als "weites" (wide) Format bezeichnet. "Long" Format # bedeutet, dass die Messungen in einer einzigen Variablen vorliegen. Dann be- # nötigt man jedoch eine Variable, die die jeweiligen Fälle kennzeichnet, und # noch eine weitere Variable, in der die Zeit der Messung kodiert ist. # # Mit der Funktion reshape() können in R Daten vom "weiten" in "langes" Format # transformiert werden. Dabei wird (falls sie noch nicht vorliegt) eine ID- # Variable, die den Fall kennzeichnet, und des weiteren eine Zeitvariable, in # der der Messzeitpunkt kodiert ist, erzeugt. Diejenigen Daten, die mit der Zeit # variieren (also Wiederholungsmessungen darstellen), werden dem Argument # "varying" übergeben und können mit dem Argument "v.names" einen Namen bekom- # men. Die Namen der ID- und Zeitvariablen können ebenfalls spezifiziert werden. # Ohne Spezifikation erzeugt R hierfür automatisch die Namen "id" und "time". mw.daten = reshape(daten, direction="long", varying=list(c("y1","y2")), v.names="y",idvar="subject") mw.daten # Es ist sinnvoll, die Variable "gruppe" als Faktorvariable zu deklarieren: mw.daten$gruppe = factor(mw.daten$gruppe) levels(mw.daten$gruppe)=c('Kontrollgruppe','Experimentalgruppe') # Hinweis: Mit "reshape" erzeugte Daten im Format "long" oder "wide" können # mit der Funktion reshape() unmittelbar wieder in das jeweils andere Format # gebracht werden, ohne die einzelnen Variablen spezifizieren zu müssen: reshape(mw.daten, direction='wide') # ----------------------------------------------------------------------------- # Statistische Kennwerte: attach(daten) gruppe = factor(gruppe) levels(gruppe) = c('Kontrollgruppe','Experimentalgruppe') descby(y1,gruppe) descby(y2,gruppe) # ----------------------------------------------------------------------------- # Grafische Darstellung der Veränderungen: mean.t1g1 = mean(y1[gruppe=='Kontrollgruppe']) mean.t1g2 = mean(y1[gruppe=='Experimentalgruppe']) mean.t2g1 = mean(y2[gruppe=='Kontrollgruppe']) mean.t2g2 = mean(y2[gruppe=='Experimentalgruppe']) plot(c(1,2),c(mean.t1g1,mean.t2g1),type='b',col='blue',lty=2,axes=F, ylim=range(mean.t1g1,mean.t1g2,mean.t2g1,mean.t2g2), ylab='Mittelwert(AV)',xlab='Messzeitpunkt',main='Interaktionsplot') par(new=T) plot(c(1,2),c(mean.t1g2,mean.t2g2),type='b',col='blue',axes=F, ylim=range(mean.t1g1,mean.t1g2,mean.t2g1,mean.t2g2), ylab='Mittelwert(AV)',xlab='Messzeitpunkt',main='Interaktionsplot') axis(side=1,at=1:2,lab=c('t1','t2')) axis(side=2) legend(x="topleft",legend=levels(gruppe), lty=c(2,1),col='blue',cex=0.8) # ----------------------------------------------------------------------------- # Varianzanalyse mit Messwiederholung: # Wenn die Daten im "long" Format vorliegen (s.o), kann hierfür die Funktion # aov() benutzt werden, wobei allerdings "Error" mit der Identifikationsvariab- # len der Fälle (hier: "subject") spezifiziert werden muss (ansonsten sind die # Ergebnisse fehlerhaft!). Diese Variable muss aber eine sog. "Faktorvariable" # darstellen (d.h. es darf keine numerische oder Integer-Variable sein). Das # erreicht man mit der Funktion factor(): summary(aov(y~gruppe*time+Error(factor(subject)),data=mw.daten)) # Hinweis: Hier wurden die Daten im "long"-Format benutzt! Dies auf den ersten # Blick umständliche Vorgehen (reshape() und Spezifikation von Error() mit # factor() der Subjekt-Variablen) erlaubt weit mehr Analysen, z.B. die Berück- # sichtigung unterschiedlicher Zeitabstände der individuellen Messungen im # Rahmen von Mehrebenenanalysen. # # Die Prüfung des Interaktionsterms auf Signifikanz zeigt, ob sich z.B. die # Werte der Experimentalgruppe anders verändert haben, als die Werte der # Kontrollgruppe. # # Das lässt sich im Fall von zwei Messzeitpunkten aber auch Prüfen, indem man # mittels eine einfachen Varianzanalyse untersucht, ob sich die Differenzwerte # (y2-y1) der beiden Gruppen signifikant unterscheiden (der F-Wert bzw. das # Signifikanzniveau ist gleich dem F-Wert bzw. dem Signifikanzniveau des Inter- # aktionsterms in obiger Analyse) (Daten im "wide" Format): dy = y2-y1 summary(aov(dy~gruppe)) # oder als Regressionsanalyse (das Quadrat des t-Werts entspricht dem obigen # F-Wert): summary(lm(dy~gruppe)) # Im Fall von nur zwei Gruppen lässt sich das auch als t-Test für unabhängige # "Stichproben" (Messungen) realisieren, wobei die abhängige Variable die # Differenz der Messwerte zu t2 und t1 darstellt (Achtung: die im Ergebnis # angegebenen Mittelwerte sind in diesem Fall Mittelwertsdifferenzen!): t.test(dy~gruppe,var.equal=T) # Eine Varianzanalyse mit Messwiederholung enspricht bei zwei Messzeitpunkten # also der Prüfung der Unterschiede der Veränderungswerte in den jeweiligen # Teilgruppen.