Anova per misure ripetute in R e analisi grafica del comportamento medio di gruppo

Salve a tutti,

(chiedo scusa in anticipo se ho sbagliato sezione per questo post) vi presento il mio "problema": sono uno studente di statistica per le applicazioni economiche, una mia amica biologa mi ha chiesto aiuto con una ricerca che sta svolgendo, la sto seguendo come "tutor occulto" per quanto riguarda la parte quantitativa, ma mi sono accorto di avere alcune lacune (nelle nozioni riguardanti il disegno degli esperimenti, ad esempio) e vorrei esser certo di non farle commettere alcun tipo di errore.

Il problema è semplice e riguarda essenzialmente l'anova.

L'esperimento consiste nel sottoporre diversi tipi di piante ad uno stesso trattamento, è stato ripetuto più volte (non lo stesso numero di volte per tutte le piante) in alcune ripetizioni dell'esperimento sono presenti piante che in altre non c'erano (e viceversa). Per verificare l'impatto del trattamento e in particolare del tipo di pianta sulla variabile risposta (quantitativa non normale) le ho proposto ovviamente un'anova classica. Effettuati test di normalità e omogeneità delle varianze mi sono accorto che le ipotesi non erano rispettate, sorvolando abbiamo svolto l'anova e i fattori sono risultati entrambi significativi.

Il problema dov'è?

Non ho tenuto conto delle ripetizioni. Come posso fare? Cercando in rete ho trovato una risposta sul blog "Statistica con R", ( http://statisticaconr.blogspot.it/2010/04/repeated-measures-anova-c... ), ma mi resta ancora qualche dubbio interpretativo: inserisco una nuova variabile che indichi le ripetizioni dell'esperimento, il dataset apparirà così:


"Variabile risposta" , "Trattamento" (dummy) , "Nome pianta" (categoriale con 30 livelli), "Ripetizioni" (categoriale con 16 livelli)

come dovrei impostare in R il comando aov() per ottenere una tavola anova che tenga correttamente conto delle ripetizioni? come dovrei interpretare l'output in termini di devianza dovuta a quello che nel blog è indicato con "subject" visto che nel mio caso i soggetti appaiono essere essi stessi una variabile esplicativa (come il trattamento)? La violazione delle ipotesi del modello anova inoltre mi preoccupa, non mi è consentito attuare trasformazioni, cosa mi consigliate?

Inoltre per visualizzare l'andamento medio dei valori mi sono servito di metodi grafici, anche quì ho avuto dei problemi: i box plot ottenuti con il comando

boxplot(Risposta~Trattamento*Pianta)

sono troppo numerosi per essere letti in un unico grafico (sono 78), esiste un modo semplice per scoprorare il grafico e dividerlo ad esempio in 4 o 5 parti?

Gli interaction.plot mi risultano poco interpretabili ai fini dell'indagine, avete altri suggerimenti? Potreste indicarmi dei comandi per costruire ad esempio dei barplot affiancati per le medie di ciascun tipo di pianta pre e post trattamento?

Grazie in anticipo a chiunque mi risponderà (scusate la lunghezza del messaggio, volevo essere il più chiaro possibile).

Visualizzazioni: 451

Risposte a questa discussione

Ciao.

Purtroppo per ora non ho tempo di leggermi per bene il tuo caso. Tuttavia consiglio sempre quando ci sono misure ripetute di modellare la correlazione within subject mediante i modelli a effetti misti piuttosto che con la repeated measures anova. Un riferimento in merito potrebbe essere questo libro , chiamato nella comunità R MEMSS, dalle iniziali del titolo e dal nome della libreria R associata; dovrebbe essere facilmente reperibile in qualsiasi biblioteca di statistica. I primi capitoli scorrono veloci, a condizione che salti il capitolo sulla REML, che invece è pesantuccio. Ti illustra anche l'utilizzo dei grafici trellis (quelli del pacchetto lattice per capirci) che tendono a essere particolarmente utili per le misure ripetute. Va da sè che i consigli che ti sto dando non hanno alcuna pretesa di autorevolezza, sono solo strumenti che mi sono stati utili in condizioni analoghe alle tue.

Buon lavoro e buon divertimento

Marco.

Quoto quanto ha detto Marco: nel tuo caso i mixed models dovrebbero essere il metodo di analisi migliore. Questo è vero soprattutto in virtù del fatto che il tuo disegno sperimentale prevede non un unico fattore random ma due: il tipo di pianta e la ripetizione del trattamento.

Detto questo, se comunque vuoi utilizzare l'anova tenendo conto delle ripetizioni, la struttura che io adotterei per il comando aov() è questa:

model <- aov(y ~ trattamento*ripetizione + Error( pianta / ripetizione))

Il fattore Trattamento è da considerare "between": le unità statistiche (le piante) che fanno riferimento a ognuno dei suoi livelli è diverso. Il fattore Ripetizione è "whithin": tutte le unità statistiche affrontano tutte le condizioni di questo fattore (per ora lascia stare il fatto che il numero di ripetizioni sia diverso).

L'argomento Error() semplicemente specifica che il fattore Ripetizione è "whithin subjects", o, meglio, "whithin plants" :)

Ora, si presenta il problema del diverso numero di ripetizioni per ogni pianta. Se vogliamo utilizzare l'Anova, allora dobbiamo assumere che il numero di livelli del fattore Ripetizione sia uguale al massimo numero di ripetizioni possibile: le rilevazioni per le piante per le quali abbiamo un numero inferiore di ripetizioni avranno dei dati mancanti (NA) in corrispondenza del livello mancante.
Francamente, non vedo altra possibilità di utilizzo dell'Anova se non questo... io, comunque, guarderei davvero i modelli
mixed.

Un'altra cosa: credo che la funzione aov() abbia un bug. Prendila con le pinze perché devo ancora analizzarlo per bene, ma ho notato che quando la variabile risposta presenta dei dati mancanti, talvolta l'output risulta, perlomeno in apparenza, totalmente sconclusionato e ripartisce la variabilità d'errore in maniera bizzarra. Ti metto solo la pulce nell'orecchio perché io per primo non sono sicuro di questa cose e devo fare delle prove.

Buon lavoro

Grazie Davide e grazie Marco per i preziosi consigli, siete stati rapidissimi e gentilissimi.

Non credo di aver mai studiato fino ad ora i modelli a effetti misti, può essere che ne abbia visto qualche applicazione tra i metodi di clustering? Non ne sono certo, magari è una baggianata. Vabè comunque approfondirò l'argomento, al di là di questo singolo progetto sperimentale.

Avendo un ruolo "occulto" devo ovviamente cercare di semplificare al massimo il struttura statistica dell'analisi, in modo che anche la mia amica (con conoscenze davvero base) riesca a padroneggiarla o quantomeno giustificarla. Pertanto diciamo che in nome della semplificazione sarei disposto a perdere un pò di "correttezza" nella scelta del metodo. A quanto pare per studi della stessa equipe di laboratorio, con trattamenti simili, hanno utilizzato l'anova nelle ricerche passate, quindi tenderei a non discostarmi dalla loro prassi per evitare che le facciano troppe domande.

Detto ciò userò il comando che mi hai suggerito tu Davide, fortunatamente il numero di osservazioni è elevato, spero di non perdere troppa informazione sacrificando le unità cui manca il numero minimo di ripetizioni.

Infine vi chiedo nuovamente (mi rendo conto che è una domanda banale, ma potrebbe rappresentare un grosso problema) esiste un metodo per dividere il grafico con i quasi 80 boxplot in più parti separate in modo da averne una visione migliore? Inoltre quale parametro grafico mi permette di ruotare le etichette sull'asse delle ascisse di 90 gradi?

Grazie ancora, speriamo che l'anova dia buoni frutti, vi terrò aggiornati :)


 

Ciao Francesco,

non so se sia così per tutte le funzioni grafiche, però nella funzione barplot per ruotare le etichette puoi utilizzare l'argomento las = 2.

Per i tuoi boxplot, invece, puoi provare a vedere se nella libreria lattice c'è qualche funzione che fa per te. Lattice permette di generare multipli pannelli grafici in una stessa immagine, e la funzione per i boxplot si chiama bwplot. Io a suo tempo trovai molto utile questo link per imparare a utilizzare questa libreria:

http://zoonek2.free.fr/UNIX/48_R/14.html

(E, tra l'altro, l'argomento del tutorial sono proprio i mixed models!)

RSS

Partners

Sostieni Statistica@Ning facendo una donazione:

Scopri perché è tanto importante il tuo sostegno

Gruppi