Sto cercando di passare dall'uso del ez
pacchetto a lme
misure ripetute ANOVA (poiché spero di poter usare contrasti personalizzati con lme
).
Seguendo i consigli di questo post sul blog sono stato in grado di impostare lo stesso modello usando entrambi aov
(come fa ez
, quando richiesto) e lme
. Tuttavia, mentre nell'esempio riportato in quel post i valori F concordano perfettamente tra aov
e lme
(l'ho verificato e lo fanno), questo non è il caso dei miei dati. Sebbene i valori F siano simili, non sono gli stessi.
aov
restituisce un valore f di 1.3399, lme
restituisce 1.36264. Sono disposto ad accettare il aov
risultato come "corretto" in quanto questo è anche ciò che SPSS restituisce (e questo è ciò che conta per il mio campo / supervisore).
Domande:
Sarebbe bello se qualcuno potesse spiegare perché esiste questa differenza e come posso usare
lme
per fornire risultati credibili. (Sarei anche disposto a utilizzarelmer
invece chelme
per questo tipo di cose, se dà il risultato "corretto". Tuttavia, non l'ho usato finora.)Dopo aver risolto questo problema, vorrei eseguire un'analisi del contrasto. In particolare, sarei interessato al contrasto della messa in comune dei primi due livelli di fattore (cioè,
c("MP", "MT")
) e confrontarlo con il terzo livello di fattore (cioè,"AC"
). Inoltre, testando il terzo contro il quarto livello di fattore (cioè"AC"
contro"DA"
).
Dati:
tau.base <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L,
22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L,
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L,
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L,
19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L), .Label = c("A18K",
"D21C", "F25E", "G25D", "H05M", "H07A", "H08H", "H25C", "H28E",
"H30D", "J10G", "J22J", "K20U", "M09M", "P20E", "P26G", "P28G",
"R03C", "U21S", "W08A", "W15V", "W18R"), class = "factor"), factor = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("MP", "MT", "AC", "DA"
), class = "factor"), value = c(0.9648092876, 0.2128662077, 1,
0.0607615485, 0.9912814024, 3.22e-08, 0.8073856412, 0.1465590332,
0.9981672618, 1, 1, 1, 0.9794401938, 0.6102546108, 0.428651501,
1, 0.1710644881, 1, 0.7639763913, 1, 0.5298989196, 1, 1, 0.7162733447,
0.7871177434, 1, 1, 1, 0.8560509327, 0.3096989662, 1, 8.51e-08,
0.3278862311, 0.0953598576, 1, 1.38e-08, 1.07e-08, 0.545290432,
0.1305621416, 2.61e-08, 1, 0.9834051136, 0.8044114935, 0.7938839461,
0.9910112678, 2.58e-08, 0.5762677121, 0.4750002288, 1e-08, 0.8584252623,
1, 1, 0.6020385797, 8.51e-08, 0.7964935271, 0.2238374288, 0.263377904,
1, 1.07e-08, 0.3160751898, 5.8e-08, 0.3460325565, 0.6842217296,
1.01e-08, 0.9438301877, 0.5578367224, 2.18e-08, 1, 0.9161424562,
0.2924856039, 1e-08, 0.8672987992, 0.9266688748, 0.8356425464,
0.9988463913, 0.2960361777, 0.0285680426, 0.0969063841, 0.6947998266,
0.0138254805, 1, 0.3494775301, 1, 2.61e-08, 1.52e-08, 0.5393467752,
1, 0.9069223275)), .Names = c("id", "factor", "value"), class = "data.frame", row.names = c(1L,
6L, 10L, 13L, 16L, 17L, 18L, 22L, 23L, 24L, 27L, 29L, 31L, 33L,
42L, 43L, 44L, 45L, 54L, 56L, 58L, 61L, 64L, 69L, 73L, 76L, 79L,
80L, 81L, 85L, 86L, 87L, 90L, 92L, 94L, 96L, 105L, 106L, 107L,
108L, 117L, 119L, 121L, 124L, 127L, 132L, 136L, 139L, 142L, 143L,
144L, 148L, 149L, 150L, 153L, 155L, 157L, 159L, 168L, 169L, 170L,
171L, 180L, 182L, 184L, 187L, 190L, 195L, 199L, 202L, 205L, 206L,
207L, 211L, 212L, 213L, 216L, 218L, 220L, 222L, 231L, 232L, 233L,
234L, 243L, 245L, 247L, 250L))
E il codice:
require(nlme)
summary(aov(value ~ factor+Error(id/factor), data = tau.base))
anova(lme(value ~ factor, data = tau.base, random = ~1|id))
lme
risultati del libro di testo standard ANOVA (fornito da aov
, ed è quello di cui ho bisogno), questa non è un'opzione per me. Nel mio articolo voglio segnalare un ANOVA, non qualcosa di simile a un ANOVA. È interessante notare che Venables & Ripley (2002, p. 285) mostrano che entrambi gli approcci portano a stime identiche. Ma le differenze nei valori F mi lasciano una brutta sensazione. Inoltre, Anova()
(da car
) restituisce solo valori Chi² per gli lme
oggetti. Pertanto per me la mia prima domanda non ha ancora ricevuto risposta.
lme
; ma per i contrasti, glht
funziona anche con gli lm
adattamenti, non solo lme
con quelli. (Inoltre, i lme
risultati sono anche risultati da manuale standard.)
lm
un'analisi di misura ripetuta. aov
Può solo gestire misure ripetute, ma restituirà un oggetto di classe aovlist
che purtroppo non è gestito da glht
.
lm
usa l'errore residuo come termine di errore per tutti gli effetti; quando ci sono effetti che dovrebbero usare un termine di errore diverso, aov
è necessario (o invece, usando i risultati di lm
per calcolare manualmente le statistiche F). Nel tuo esempio, il termine di errore per factor
è l' id:factor
interazione, che è il termine di errore residuo in un modello additivo. Confronta i tuoi risultati con anova(lm(value~factor+id))
.