Kann mir jemand den Unterschied zwischen der Verwendung aov()
und lme()
Analyse von Längsschnittdaten und der Interpretation der Ergebnisse dieser beiden Methoden erklären?
Unten analysiere ich den gleichen Datensatz mit aov()
und lme()
und erhalte 2 unterschiedliche Ergebnisse. Mit habe aov()
ich ein signifikantes Ergebnis in der Zeit durch die Interaktion mit der Behandlung erhalten, aber wenn ich ein lineares gemischtes Modell anpasse, ist die Zeit durch die Interaktion mit der Behandlung unerheblich.
> UOP.kg.aov <- aov(UOP.kg~time*treat+Error(id), raw3.42)
> summary(UOP.kg.aov)
Error: id
Df Sum Sq Mean Sq F value Pr(>F)
treat 1 0.142 0.1421 0.0377 0.8471
Residuals 39 147.129 3.7725
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
time 1 194.087 194.087 534.3542 < 2e-16 ***
time:treat 1 2.077 2.077 5.7197 0.01792 *
Residuals 162 58.841 0.363
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> UOP.kg.lme <- lme(UOP.kg~time*treat, random=list(id=pdDiag(~time)),
na.action=na.omit, raw3.42)
> summary(UOP.kg.lme)
Linear mixed-effects model fit by REML
Data: raw3.42
AIC BIC logLik
225.7806 248.9037 -105.8903
Random effects:
Formula: ~time | id
Structure: Diagonal
(Intercept) time Residual
StdDev: 0.6817425 0.5121545 0.1780466
Fixed effects: UOP.kg ~ time + treat + time:treat
Value Std.Error DF t-value p-value
(Intercept) 0.5901420 0.1480515 162 3.986059 0.0001
time 0.8623864 0.1104533 162 7.807701 0.0000
treat -0.2144487 0.2174843 39 -0.986042 0.3302
time:treat 0.1979578 0.1622534 162 1.220053 0.2242
Correlation:
(Intr) time treat
time -0.023
treat -0.681 0.016
time:treat 0.016 -0.681 -0.023
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-3.198315285 -0.384858426 0.002705899 0.404637305 2.049705655
Number of Observations: 205
Number of Groups: 41
quelle
Error(Subject/age)
, da ich ein Tutorial nachgeschlagen habe, sagen, dass dies/age
eine wiederholte Messung entlang dieses Faktors bedeutet? Ist das dasselbe wie bei dirError(Subject)
? Eine andere Frage ist: für unausgeglichene Datenaov
undlme
kann unterschiedliche Ergebnisse haben, richtig?Ich möchte nur hinzufügen, dass Sie möglicherweise das
car
Paket installieren und verwenden möchten,Anova()
das dieses Paket anstelle vonanova()
foraov()
undlm()
objects bereitstellt. Die Vanilleanova()
verwendet eine sequentielle Summe von Quadraten, die für ungleiche Stichprobengrößen das falsche Ergebnis liefert, währendlme()
sie entweder den Typ verwendet -I oder die Summe der Quadrate vom Typ III, je nachtype
Argument, aber die Summe der Quadrate vom Typ III verletzt die Marginalität - dh sie behandelt Wechselwirkungen nicht anders als Haupteffekte.Die R-Hilfe-Liste hat nichts Gutes über die Quadratsummen Typ I und Typ III zu sagen, und doch sind dies die einzigen Optionen! Stelle dir das vor.Bearbeiten: Eigentlich sieht es so aus, als ob Typ-II nicht gültig ist, wenn es einen signifikanten Interaktionsbegriff gibt, und es scheint, dass das Beste, was jeder tun kann, Typ-III ist, wenn es Interaktionen gibt. Ich erhielt einen Hinweis auf eine meiner eigenen Fragen , die mich auf diesen Beitrag hinwiesen .
quelle
Mir scheint, Sie haben zu jeder Zeit mehrere Kennzahlen für jede ID. Sie müssen diese für die AOV aggregieren, da dies die Leistung in dieser Analyse auf unfaire Weise erhöht. Ich sage nicht, dass das Aggregat die Ergebnisse gleich macht, aber es sollte sie ähnlicher machen.
Führen Sie dann Ihr aov-Modell wie vor dem Ersetzen der Daten durch dat.agg aus.
Außerdem glaube ich, dass anova (lme) eher das ist, was Sie tun möchten, um die Ergebnisse zu vergleichen. Die Richtung und Stärke eines Effekts entspricht nicht dem Verhältnis von Modellvarianz zu Fehler.
(Übrigens, wenn Sie die lme-Analyse für die aggregierten Daten durchführen, die Sie nicht sollten, und anova (lme) überprüfen, erhalten Sie fast die gleichen Ergebnisse wie aov.)
quelle