2016-05-08 17 views
2

Im afex Paket können wir dieses Beispiel ANOVA-Analyse finden:Wie konvertiert man Afex oder Auto ANOVA Modelle zu Imer? Beobachtete Variablen

data(obk.long, package = "afex") 
# estimate mixed ANOVA on the full design: 
# can be written in any of these ways: 

aov_car(value ~ treatment * gender + Error(id/(phase*hour)), data = obk.long, 
     observed = "gender") 

aov_4(value ~ treatment * gender + (phase*hour|id), data = obk.long, 
     observed = "gender") 

aov_ez("id", "value", obk.long, between = c("treatment", "gender"), 
     within = c("phase", "hour"), observed = "gender") 

Meine Frage ist: Wie kann ich das gleiche Modell in lme4 schreiben? Insbesondere weiß ich nicht, wie man den "beobachteten" Begriff einbezieht?

Wenn ich nur

lmer(value ~ treatment * gender + (phase*hour|id), data = obk.long, 
    observed = "gender") 

schreiben bekomme ich einen Fehler zu sagen, dass keine gültige Option beobachtet wird.

Außerdem, wenn ich entfernen Sie einfach die beobachtete Option lmer erzeugt den Fehler:

Error: number of observations (=240) <= number of random effects (=240) for term (phase * hour | id); the random-effects parameters and the residual variance (or scale parameter) are probably unidentifiable.

Wo in der lmer Syntax gebe ich die "zwischen" oder "innerhalb" Variable ?. Soweit ich weiß, schreiben Sie einfach die abhängige Variable auf der linken Seite und alle anderen Variablen auf der rechten Seite und den Fehlerbegriff als (1 | id).

Das Paket "Auto" verwendet die IData für die Variable innerhalb des Subjekts.

Antwort

2

Ich könnte nicht genug über klassische ANOVA-Theorie wissen, um diese Frage vollständig zu beantworten, aber ich werde einen Riss nehmen. Zuerst ein paar Punkte:

  • das observed Argument erscheint nur relevant für die Berechnung der Effektgröße zu sein.

observed: ‘character’ vector indicating which of the variables are observed (i.e, measured) as compared to experimentally manipulated. The default effect size reported (generalized eta-squared) requires correct specification of the obsered [sic] (in contrast to manipulated) variables.

... so denke ich, Sie Weglassen es sicher sein würde.

  • , wenn Sie den Fehler außer Kraft setzen möchten, können Sie
control=lmerControl(check.nobs.vs.nRE="ignore") 

verwenden ... aber das ist wahrscheinlich nicht der richtige Weg.

ich denken, aber bin nicht sicher, dass dies der richtige Weg ist:

m1 <- lmer(value ~ treatment * gender + (1|id/phase:hour), data = obk.long, 
    control=lmerControl(check.nobs.vs.nRE="ignore", 
          check.nobs.vs.nlev="ignore"), 
    contrasts=list(treatment=contr.sum,gender=contr.sum)) 

Dies gibt an, dass die Interaktion von phase und hour innerhalb id variiert. Die Restvarianz und die Varianz (Phase für Stunde innerhalb der ID) werden verwechselt (weshalb wir die überschreibende lmerControl() Spezifikation benötigen), also trauen Sie diesen bestimmten Varianzschätzungen nicht. Die Haupteffekte von Behandlung und Geschlecht sollten jedoch gleich behandelt werden. Wenn Sie lmerTest anstelle von lmer laden und summary(m1) oder anova(m1) ausführen, erhalten Sie dieselben Freiheitsgrade (10) für die festen (Geschlecht und Behandlung) -Effekte, die von afex berechnet werden.

lme gibt vergleichbare Antworten, aber muss die Phase-by-Stunden-Interaktion vorher aufgebaut haben:

library(nlme) 
obk.long$ph <- with(obk.long,interaction(phase,hour)) 
m2 <- lme(value ~ treatment * gender, 
      random=~1|id/ph, data = obk.long, 
    contrasts=list(treatment=contr.sum,gender=contr.sum)) 
anova(m2,type="marginal") 

Ich weiß nicht, wie afex ‚s Tests der zufälligen Effekten zu rekonstruieren.

3

Wie Ben Bolker richtig sagt, lassen Sie einfach observed aus.

Darüber hinaus würde ich nicht empfehlen zu tun, was Sie tun möchten. Die Verwendung eines gemischten Modells für einen Datensatz ohne Replikationen innerhalb jeder Zelle des Designs pro Teilnehmer ist etwas fragwürdig, da es nicht wirklich klar ist, wie die zufällige Effektstruktur spezifiziert werden soll. Wichtig ist, dass die Barr et al. Max von "halte es maximal" funktioniert hier nicht, wie du erkannt hast. Das Problem ist, dass das Modell überparametrisiert wird (daher der Fehler von lmer).

Ich empfehle die Verwendung der ANOVA. Weitere Diskussionen zu genau dieser Frage finden Sie auf einem Crossvalidated Thread wo Ben und ich discussed this more thoroughly.

+0

möchten Sie vielleicht darauf hinweisen, dass Sie der Autor von 'afex' sind (und damit eine Autorität zu diesem Thema :-)) –

+0

Ja, ich weiß, ich verwende nur zufällige Effekte, wenn ich Replikation für jeden habe Individuell. Ich habe nur allgemein gefragt. – skan

+0

@BenBolker Vielleicht wahr. Aber dann fühlt es sich immer ein bisschen an, als würde man prahlen. Und für die meisten Fragen, die sich um "lme4" drehen, sind Sie normalerweise die größere Autorität. – Henrik