Может кто-нибудь сказать мне разницу между использованием aov()
и lme()
для анализа продольных данных и как интерпретировать результаты этих двух методов?
Ниже я анализирую один и тот же набор данных aov()
и получаю lme()
2 разных результата. Таким образом aov()
, я получил значительный результат во времени при взаимодействии с лечением, но при использовании линейной смешанной модели время при взаимодействии с лечением незначительно.
> 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
источник
Error(Subject/age)
, так как я посмотрел какой-то учебник, говоря, что это/age
означает повторное измерение по этому фактору? Это так же, как вашError(Subject)
? Другой вопрос: для несбалансированных данных,aov
иlme
может иметь разные результаты, верно?Я хотел бы просто добавить, что вы можете установить
car
пакет и использовать егоAnova()
, а неanova()
потому, что для объектовaov()
иlm()
объектов ванильanova()
использует последовательную сумму квадратов, что дает неверный результат для неравных размеров выборки, в то время как дляlme()
нее используется тип -I или сумма квадратов типа III в зависимости отtype
аргумента, но сумма квадратов типа III нарушает маргинальность, т. Е. Обрабатывает взаимодействия не иначе, как основные эффекты.В списке R-справки нет ничего хорошего о суммах квадратов типа I и типа III, и все же это единственные варианты! Пойди разберись.Изменить: На самом деле, похоже, что тип II не является действительным, если существует значительный термин взаимодействия, и кажется, что лучшее, что можно сделать, это использовать тип III, когда есть взаимодействия. Я получил ответ на этот вопрос, ответив на один из моих собственных вопросов, которые, в свою очередь, указали мне на этот пост .
источник
Мне кажется, у вас есть несколько мер для каждого идентификатора в каждый момент времени. Вам нужно объединить их для AOV, потому что это несправедливо увеличивает мощность в этом анализе. Я не говорю, что совокупный результат даст одинаковые результаты, но он должен сделать их более похожими.
Затем запустите вашу модель AOV, как и прежде, чем заменить данные на dat.agg.
Кроме того, я считаю, что anova (lme) - это больше, чем вы хотите сделать, чтобы сравнить результаты. Направление и величина эффекта не совпадают с отношением дисперсии модели к ошибке.
(Кстати, если вы выполните анализ lme для агрегированных данных, чего не следует делать, и отметите anova (lme), вы получите почти те же результаты, что и aov)
источник