Come eseguire una manova in r


Per comprendere MANOVA, è innanzitutto utile comprendere ANOVA.

Un’ANOVA (analisi della varianza) viene utilizzata per determinare se esiste o meno una differenza statisticamente significativa tra le medie di tre o più gruppi indipendenti.

Ad esempio, supponiamo di voler sapere se la tecnica di studio ha o meno un impatto sui punteggi degli esami di una classe di studenti. Abbiamo diviso la classe in tre gruppi in modo casuale. Ogni gruppo utilizza una tecnica di studio diversa per un mese per prepararsi a un esame. Alla fine del mese tutti gli studenti sostengono lo stesso esame.

Per scoprire se la tecnica di studio ha un impatto sui punteggi degli esami, possiamo eseguire un’ANOVA unidirezionale, che ci dirà se c’è una differenza statisticamente significativa tra i punteggi medi dei tre gruppi.

In un’ANOVA abbiamo una variabile di risposta. Tuttavia, in una MANOVA (analisi multivariata della varianza), abbiamo più variabili di risposta.

Ad esempio, supponiamo di voler sapere quale sia l’impatto del livello di istruzione (scuola superiore, laurea, laurea, master, ecc.) sia sul reddito annuo che sull’importo del debito studentesco. In questo caso, abbiamo un fattore (livello di istruzione) e due variabili di risposta (reddito annuo e debito studentesco), quindi possiamo eseguire una MANOVA unidirezionale.

Correlati: Comprendere le differenze tra ANOVA, ANCOVA, MANOVA e MANCOVA

Come eseguire una MANOVA in R

Nell’esempio seguente, illustreremo come eseguire una MANOVA unidirezionale in R utilizzando il set di dati iris integrato, che contiene informazioni sulla lunghezza e larghezza delle diverse misurazioni dei fiori per tre diverse specie (“setosa”, “virginica” , “versicolor”):

 #view first six rows of iris dataset
head(iris)

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa

Supponiamo di voler sapere se le specie hanno un effetto sulla lunghezza e larghezza dei sepali. Utilizzando specie come variabile indipendente e lunghezza e larghezza dei sepali come variabili di risposta, possiamo eseguire una MANOVA unidirezionale utilizzando la funzione manova() in R.

La funzione manova() utilizza la seguente sintassi:

manova (cbind (rv1, rv2, …) ~ iv, dati)

Oro:

  • rv1, rv2 : variabile di risposta 1, variabile di risposta 2, ecc.
  • iv : variabile indipendente
  • data : nome del frame di dati

Nel nostro esempio con il set di dati dell’iride, possiamo adattare una MANOVA e visualizzare i risultati utilizzando la seguente sintassi:

 #fit the MANOVA model
model <- manova(cbind(Sepal.Length, Sepal.Width) ~ Species, data = iris)

#view the results
summary(model)
# Df Pillai approx F num Df den Df Pr(>F)    
#Species 2 0.94531 65.878 4,294 < 2.2e-16 ***
#Residuals 147                                             
#---
#Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Dal risultato, possiamo vedere che la statistica F è 65.878 e il corrispondente valore p è estremamente piccolo. Ciò indica che esiste una differenza statisticamente significativa nelle misurazioni dei sepali a seconda della specie.

Nota tecnica: per impostazione predefinita, manova() utilizza la statistica del test Pillai . Poiché la distribuzione di questa statistica del test è complessa, viene fornito anche un valore F approssimativo per una più semplice interpretazione.

Inoltre, è possibile specificare ‘Roy’, ‘Hotelling-Lawley’ o ‘Wilks’ come statistica test da utilizzare utilizzando la seguente sintassi: summary(model, test = ‘Wilks’)

Per scoprire esattamente come la lunghezza e la larghezza dei sepali sono influenzate dalle specie , possiamo eseguire ANOVA univariate utilizzando summary.aov() come mostrato nel seguente codice:

 summary.aov(model)


# Response Sepal.Length:
# Df Sum Sq Mean Sq F value Pr(>F)    
#Species 2 63.212 31.606 119.26 < 2.2e-16 ***
#Residuals 147 38.956 0.265                      
#---
#Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# Response Sepal.Width:
# Df Sum Sq Mean Sq F value Pr(>F)    
#Species 2 11.345 5.6725 49.16 < 2.2e-16 ***
#Residuals 147 16.962 0.1154                      
#---
#Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Possiamo vedere dal risultato che i valori p per entrambi gli ANOVA univariati sono estremamente bassi (<2.2e-16), indicando che la specie ha un effetto statisticamente significativo sulla larghezza e lunghezza del sepalo .

Visualizza le risorse del gruppo

Potrebbe anche essere utile visualizzare le medie del gruppo per ciascun livello della nostra specie variabile indipendente per comprendere meglio i nostri risultati.

Ad esempio, possiamo utilizzare la libreria gplots e la funzione plotmeans() per visualizzare la lunghezza media dei sepali per specie :

 #load gplots library
library(gplots)

#visualize mean sepal length by species
plotmeans(iris$Sepal.Length ~ iris$Species)

Dal grafico possiamo vedere che la lunghezza media dei sepali varia notevolmente tra le specie. Ciò corrisponde ai risultati del nostro MANOVA, che ci ha detto che c’era una differenza statisticamente significativa nelle misurazioni dei sepali tra le specie.

Possiamo anche visualizzare la larghezza media dei sepali per specie :

 plotmeans(iris$Sepal.Width ~ iris$Species)

Consulta la documentazione completa per la funzione manova() qui .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *