analisi multivariate con rstudio parte 2 epg1 di ... · epg1 di metodologia della ricerca e...

47
Analisi multivariate con RStudio parte 2 EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati Avviso a cura dell’autore : si avvisa che il materiale contenuto in questa dispensa è destinato solo agli studenti frequentanti l’EPG di Metodologia della ricerca tecniche multivariate di analisi dei dati del corso di Laurea Magistrale in Psicologia dell’Università G. D’Annunzio di Chieti -Pescara. Ogni utilizzo del presente materiale per fini diversi oppure ogni utilizzo per fini commerciali verrà perseguito a norma di legge. Ogni utente di questa dispensa si fa carico del suo corretto utilizzo e quindi deve evitarne ogni uso improprio. Sommario Le analisi multivariate ....................................................................................................................................... 1 Analisi di regressione lineare ............................................................................................................................ 2 Regole metodologiche per l’analisi di regressione ........................................................................................ 2 Esecuzione di un’analisi di regressione lineare: aspetti metodologici e relativa programmazione ............... 3 Confronto tra modelli di regressione ........................................................................................................... 11 L’analisi fattoriale ........................................................................................................................................... 14 Analisi fattoriale esplorativa........................................................................................................................ 14 Analisi della validità dei dati del campione per l’analisi fattoriale ............................................................. 16 Applicazione di tecniche di estrazione dei fattori........................................................................................ 17 Applicazione di tecniche di rotazione dei fattori per rendere i dati interpretabili ....................................... 18 Analisi fattoriale esplorativa con RStudio ................................................................................................... 19 Descrizione dello script “myefa”................................................................................................................. 23 Prima parte dello script........................................................................................................................... 23 Seconda parte dello script ....................................................................................................................... 24 Analisi di varianza ........................................................................................................................................... 33 ANOVA del modello con 1 fattore between (Y = 5A) ................................................................................ 36 ANOVA del modello con 2 fattori between (Y = 5A × 2B) ....................................................................... 40 ANOVA del modello con 1 fattore within (Y = 5A) ................................................................................... 41 ANOVA del modello misto con 1 fattore within ed 1 fattore between (Y = 2A × 3B)............................... 43 Alcune considerazioni sull’analisi di varianza ............................................................................................ 45 Appendice ........................................................................................................................................................ 46

Upload: doankhue

Post on 18-Feb-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

Analisi multivariate con RStudio – parte 2

EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati

Avviso a cura dell’autore: si avvisa che il materiale contenuto in questa dispensa è destinato solo

agli studenti frequentanti l’EPG di Metodologia della ricerca tecniche multivariate di analisi dei dati

del corso di Laurea Magistrale in Psicologia dell’Università G. D’Annunzio di Chieti-Pescara. Ogni

utilizzo del presente materiale per fini diversi oppure ogni utilizzo per fini commerciali verrà

perseguito a norma di legge. Ogni utente di questa dispensa si fa carico del suo corretto utilizzo e

quindi deve evitarne ogni uso improprio.

Sommario Le analisi multivariate ....................................................................................................................................... 1

Analisi di regressione lineare ............................................................................................................................ 2

Regole metodologiche per l’analisi di regressione ........................................................................................ 2

Esecuzione di un’analisi di regressione lineare: aspetti metodologici e relativa programmazione ............... 3

Confronto tra modelli di regressione ........................................................................................................... 11

L’analisi fattoriale ........................................................................................................................................... 14

Analisi fattoriale esplorativa ........................................................................................................................ 14

Analisi della validità dei dati del campione per l’analisi fattoriale ............................................................. 16

Applicazione di tecniche di estrazione dei fattori ........................................................................................ 17

Applicazione di tecniche di rotazione dei fattori per rendere i dati interpretabili ....................................... 18

Analisi fattoriale esplorativa con RStudio ................................................................................................... 19

Descrizione dello script “myefa” ................................................................................................................. 23

Prima parte dello script ........................................................................................................................... 23

Seconda parte dello script ....................................................................................................................... 24

Analisi di varianza ........................................................................................................................................... 33

ANOVA del modello con 1 fattore between (Y = 5A) ................................................................................ 36

ANOVA del modello con 2 fattori between (Y = 5A × 2B) ....................................................................... 40

ANOVA del modello con 1 fattore within (Y = 5A) ................................................................................... 41

ANOVA del modello misto con 1 fattore within ed 1 fattore between (Y = 2A × 3B)............................... 43

Alcune considerazioni sull’analisi di varianza ............................................................................................ 45

Appendice ........................................................................................................................................................ 46

Page 2: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

1

Le analisi multivariate

Prenderemo in considerazione, per questa parte relativa alle analisi multivariate con R, le tre

principali tecniche di analisi multivariata: l’analisi di regressione, l’analisi fattoriale e l’analisi di

varianza. Le prime due, l’analisi di regressione e l’analisi fattoriale, si basano sulle correlazioni tra

le variabili e servono per determinare modelli che permettano di interpretare le correlazioni tra le

variabili. In particolare, l’interpretazione con l’analisi di regressione si focalizza sulla

individuazione delle variabili che costituiscono i migliori predittori di una variabile target o

bersaglio (il criterio). L’analisi fattoriale, invece, serve per definire le dimensioni psichiche latenti

(costrutti) che, in qualche modo, possono rappresentare adeguatamente la sussistenza di relazioni tra

determinate variabili. Le variabili possono essere tratti psicologici (come la personalità o

l’intelligenza), il livello di abilità o competenza, l’attitudine, le sensazioni e le emozioni, il livello di

benessere, lo stile cognitivo, le credenze o l’autopercezione. Queste sono, fondamentalmente,

caratteristiche psicologiche, ma, nell’analisi di regressione o fattoriale, si possono inserire anche

variabili demografiche (sesso, età, titolo di studio, livello di reddito, ecc.) o misure non

necessariamente psicologiche, come caratteristiche mediche (ad esempio, attacchi di emicrania,

livello di glucosio per i diabetici) o caratteristiche fisiche (statura corporea, obesità, ecc.). Non c’è

limite alle combinazioni di variabili che possono essere testate con l’analisi di regressione o

fattoriale. Tuttavia, i modelli che si possono definire tramite queste analisi devono essere plausibili

e, quindi, occorre rifarsi alla teorie che sono state sviluppate nell’ambito della ricerca per testare i

modelli di regressione o fattoriali.

Per quanto riguarda l’analisi di varianza, il suo obiettivo è quello di comparare le medie dei gruppi

in modo da verificare l’esistenza o meno di differenze significative. L’analisi di varianza, o

ANOVA, serve soprattutto per confrontare le medi di più gruppi o l’effetto di più variabili sul

comportamento dei soggetti. In questo caso l’ANOVA viene applicata ai disegni fattoriali che

consentono di appurare l’esistenza degli effetti di più variabili (effetti principali) ed anche se

l’effetto di una variabile può modulare quello della altre (interazione).

Quindi l’analisi di regressione e fattoriale servono per comprendere le relazioni tra le variabili,

mentre l’ANOVA serve per analizzare gli effetti combinati di più variabili.

Page 3: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

2

Analisi di regressione lineare

Per effettuare un’analisi di regressione lineare occorre identificare una variabile, detta criterio, che

costituisce una caratteristica di cui si vogliono determinare i predittori, ossia quelle variabili che più

ne influenzano la varianza. In realtà, l’analisi di regressione permette di associare la varianza del

criterio alla varianza combinata di più variabili1. L’utilità di tale tecnica consiste nel dare una

definizione più articolata delle relazioni tra le variabili. Ad esempio, possiamo essere interessati alla

competenza scolastica dei ragazzi di una scuola. L’istituzione scolastica desidera che i suoi allievi

raggiungano un alto livello di competenza. Però la competenza scolastica è sicuramente legata a

molti fattori, nel senso che può esser influenzata da una serie di caratteristiche, come l’intelligenza,

la motivazione allo studio, la curiosità, ecc. Il comportamento umano è una caratteristica complessa,

per cui occorre definire tutta le serie di fattori che possono influenzarlo o determinarlo. Si possono

fare varie ipotesi sulla combinazione di fattori che possono influire sul comportamento umano, e

l’analisi di regressione è l’analisi più adeguata per valutare queste ipotesi. Tuttavia, per eseguire

un’adeguata analisi di regressione, occorre seguire alcune regole metodologiche.

Regole metodologiche per l’analisi di regressione

L’analisi di regressione lineare impone prima di tutto che il criterio, la variabile bersaglio, sia

misurata su una scala quantitativa (scala ad intervallo o a rapporto). Se la variabile bersaglio è su

una scala dicotomica, ad esempio il punteggio potrebbe essere il fatto di aver superato o no un

esame, in relazione alle ore di studio, alla motivazione o ad altri fattori, allora si deve eseguire una

regressione logistica2.

Un altro problema che può sorgere con l’analisi di regressione è la multicollinearità o l’assenza di

fattori indipendenti. I predittori da inserire nel modello di regressione dovrebbero essere

indipendenti tra loro, nel senso che non dovrebbero misurare la stessa cosa. Ad esempio, se

mettiamo come predittori due test che misurano l’ansia si rischia di creare un modello

artificialmente valido in quanto uno dei due predittori è superfluo. Il concetto è che l’analisi di

regressione, se deve essere usata per scegliere i migliori predittori del criterio, richiede una certa

indipendenza tra i fattori. Per valutare l’indipendenza tra i predittori si usa il fattore di varianza

inflazionaria (Variance Inflation Factor o VIF) che serve per comprendere quanto i fattori siano tra

loro indipendenti. È un valore cha va da 1 fino a un valore massimo. Affinché i predittori siano

considerabili indipendenti e, quindi, venga evitata la multicollinearità, è necessario che il valore di

1 Spesso i modelli di regressione vengono interpretati come modelli esplicativi, nel senso che i predittori sono

considerati come fattori casuali. In realtà non è possibile stabilire relazioni causa-effetto tra le variabili con l’analisi di regressione. L’analisi di regressione si bassa sulle correlazioni tra le variabili e le correlazione non è una relazione causa-effetto, dato che la correlazione tra due variabili può essere dovuta ad una relazione spuria, ossia alla presenza di una terza variabile che è causa di entrambe le variabili. Ad esempio, soggetti depressi tendono ad essere ansiosi. Ciò non vuol dire che l’ansia generi la depressione o viceversa. La spiegazione è che il soggetto ha un disturbo dell’umore o una sindrome psicologica che genera sia ansia che depressione. 2 La regressione logistica è un tipo particolare di regressione. Esistono diversi tipi di regressione (logistica, beta-

regression, polynomial regression, ridge regression ecc.). In ambito statistico la più usata è la regressione lineare.

Page 4: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

3

VIF per ciascun fattore non superi il valore 10 (altri autori sostengono che non debba superare il

valore 5).

Nel caso in cui si usi l’analisi di regressione lineare per testare più modelli occorre considerare la

procedura più idonea per eseguire la selezione. Un modo era quello di aggiungere o togliere

progressivamente le variabili fino a quando non si rilevava una variazioni insignificante della

validità del modello. La validità del modello è stabilita dal coefficiente di correlazione multipla R2,

da R2 aggiustato e dalla statistica F. Se, aumentando il numero di predittori, la variazione di R

2, in

particolare di R2 aggiustato non cambia, allora è inutile aggiungere altri predittori. Questa procedura

può essere effettuata direttamente dal ricercatore, in tal caso di parla di analisi gerarchica, oppure

può essere fatta svolgere al programma, in tal caso si parla di analisi stepwise. L’analisi stepwise è

criticata, perché la selezione statistica predittori non garantisce la scelta dal modello migliore. A

volte, il modello risulta migliore solo per fattori casuali, quindi l’analisi stepwise non garantisce che

il modello deciso dal programma non sia solo frutto del caso, ma, anche, non garantisce che il

modello sia dovuto all’esistenza di una reale relazione tra le variabili. Nel caso dell’analisi

gerarchica, è il ricercatore che decide quali predittori mettere o togliere nel modello. Se il

ricercatore non ha un’idea ben precisa su quali predittori mettere, conviene all’inizio metterli tutti e

poi selezionare quelli che ritiene più validi3. La strategia migliore è quella di scegliere come

predittori variabili di un tipo e variabili di un altro tipo. Ad esempio, se vogliamo sapere quali sono

i fattori più associati al benessere psicologico, possiamo scegliere un gruppo di variabili

psicologiche, come i cinque fattori di personalità, ed un gruppo di variabili demografiche, come il

livello di salute o di ricchezza. Con l’analisi di regressione lineare possiamo capire se contano di

più le variabili psicologiche o quelle demografiche nel determinare il benessere psicologico. In

questo modo è possibile fornire un contributo interessante alle teorie psicologiche sul benessere

psicologico.

Esecuzione di un’analisi di regressione lineare: aspetti metodologici e relativa

programmazione

La programmazione di un’analisi di regressione lineare deve tener conto anche degli aspetti

metodologici alla base dell’analisi statistica. Questo non vale solo per l’analisi di regressione, ma

anche per l’analisi fattoriale e l’ANOVA. Qualsiasi tipo di analisi statistica serve per ottenere

quell’informazione necessaria per prendere una decisione. Il t di Student o il chi di quadro servono

per decidere se esistono differenze tra due gruppi; la correlazione bivariata serve per decidere se

esiste una relazione tra due variabili; l’analisi di regressione serve per decidere se un gruppo di

variabili può predire i valori di una specifica variabile; l’analisi fattoriale serve per decidere se

esistono dimensioni latenti che accomunano più variabili; l’ANOVA serve per verificare gli effetti

3 Può capitare che in modello di regressione con tanti predittori risulti statisticamente valido mentre i singoli predittori

non sono per niente validi. Questo paradosso è spiegabile con il fatto che Il modello stima la correlazione del criterio con tutti i predittori, per cui, anche le singole correlazioni del criterio con i predittori sono basse, mettendo assieme tante variabili correlate con il criterio, anche se le correlazioni sono deboli, si riesce ad ottenere una correlazione multipla valida.

Page 5: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

4

combinati di più variabili. Non ha senso, quindi creare un programma di analisi senza prima

conoscere qual è l’obiettivo dell’analisi statistica e quali requisiti metodologici deve rispettare.

Nel caso dell’analisi di regressione i requisiti metodologici che la procedura statistica deve

rispettare sono:

1. Determinazione della validità generale del modello e della validità dei singoli predittori;

2. Controllo della multicollinearità;

3. Verifica della dimensione degli effetti (effect size) e della varianza spiegata dei singoli

predittori.

Per quanto riguarda lo script, il programma si articola in tre componenti, ognuna della quali effettua

una specifica analisi. Le tre componenti, per poter essere attivate, necessitano del caricamento dei

seguenti pacchetti: “QuantPsyc”, “car” e “lmSupport”. Quindi, prima di eseguire lo script è

necessario aver installato questi 3 pacchetti. Nel file “Uso di RStudio” viene spiegata l’installazione

dei pacchetti di R con RStudio.

Usando i dati di “dataset2” supponiamo di voler stabilire quali sono i migliori predittori di

“happines”, che sarebbe la variabile che riporta i punteggio al questionario sulla felicità compilato

da 204 soggetti. Maggiore è il punteggio, maggiore è il livello di felicità dichiarato dai soggetti. Le

variabili che sono state prese in considerazione per valutare il loro effetto su happines sono:

1. “religiou” = indica il livello di religiosità del soggetto, ossia quanto il soggetto è credente e

praticante. La variabile varia da un valore minimo (1 = per niente religioso) ad un valore

massimo (7 = molto religioso).

2. “wealth” = indica il livello di reddito. I livello di reddito sono codificato come valori che

vanno da 1 a 6, dove 1 indica in reddito sotto ti 20 mila dollari annuali e 6 un reddito sopra i

100 mila dollari.

3. “optimism” = è una variabile psicologica ed indica il punteggio che i soggetti hanno

ottenuto ad una domanda che chiede loro il livello di ottimismo. Il punteggio varia da 1

(basso ottimismo) fino a 7 (alto ottimismo).

4. “friend” = è la variabile che riporta il numero di amici. La variabile è dicotomica, nel senso

che assume solo i valori 1 (il soggetto dichiara che ha meno di 6 amici in tutto) e 2 (il

soggetto dichiara che ha almeno 6 o più amici).

5. “gender” = è la variabile che indica il genere sessuale del soggetto ed è dicotomica (1 =

femmina; 2 = maschio).

In totale abbiamo 5 predittori, con variabili alcune psicologiche (optimism), altre di tipo anagrafico

(wealth, gender) ed altre di tipo personale o esistenziale (religiou, friend). Con l’analisi di

regressione possiamo capire quale di queste predice meglio la felicità dei soggetti. Qui di seguito

viene riportato lo script (denominato “mylm”) per l’analisi di regressione:

mylm<-function(formula){

library(QuantPsyc)

library(car)

library(lmSupport)

options(scipen = 999)

Page 6: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

5

#---- opzione per modello con 1 o 2 o pi predittori -----

qq<-readline("Il modello ha uno (digita '1') o 2 o pi predittori (premi

'enter')?: ")

mod<-lm(formula)

mod.s<-summary(mod)

#------------------ validità generale ------------

gen<-vector()

gen[1]<-mod.s$r.squared

gen[2]<-mod.s$adj.r.squared

f.stat<-mod.s$fstatistic

gen[3]<-f.stat[1]

gen[4]<-f.stat[2]

gen[5]<-f.stat[3]

gen[6]<-pf(gen[3],gen[4],gen[5],lower.tail = FALSE)

gen[7]<-gen[1]/(1-gen[1])

gen.et<-c("R^2","adj R^2","F","df num.","df den.","p(F)","f^2")

gen.m<-cbind(round(gen,digits=3))

rownames(gen.m)<-gen.et

ris<-cbind(coef(mod.s)[,1],coef(mod.s)[,3:4])

print.noquote("-----------------------------")

print.noquote("linear regression model-results")

print(summary(mod))

#coefficienti standardizzati (QuantPsyc)

print.noquote("-----------------------------")

print.noquote("linear regression model-standardized coefficients")

ris1<-round(lm.beta(mod),digits=3)

print(ris1)

#analisi multicollinearità car)

if (qq==""){

print.noquote("-----------------------------")

print.noquote("linear regression model-multicollinearity (VIF < 10)")

multi<-vif(mod)

print(multi)

}else {

multi<-0

print(multi)

}#end if

ris<-cbind(ris,c(0,ris1),c(0,multi))

#correlazioni parziali dei predittori (lmSupport)

#print.noquote("-----------------------------")

#print.noquote("linear regression model-partial correlations for predictors")

capture.output(ris2<-modelEffectSizes(mod))

ris2.2<-round(ris2$Effects,digits=5)

ris<-cbind(ris, ris2.2[,3])

print.noquote("-----------------------------")

print.noquote("linear regression model-table with relevant data")

et<-c("raw betas","t value","Pr(>|t|)","stand. betas","VIFs","pEta-sqr")

colnames(ris)<-et

ris3<-round(ris,digits=3)

Page 7: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

6

print(ris3)

print.noquote("-----------------------------")

print.noquote("general validity")

print(gen.m)

ris<-list("tabella coefficienti" = ris3,"validità del modello" = gen.m)

return(ris)

}#end function

Nello script il valore che viene assegnato è sotto forma di formula (comando: “as.formula()”).

Invece di fornire un dataset, si fornisce una formula che consente al comando che esegue la

regressione lineare (“lm”) di selezionare dal dataset (ovviamente se il dataset è già stato formato) le

variabili da usare come criterio e predittore. Il vantaggio sta nel fatto che inserendo le formule è

possibile testare più modelli richiamando sempre lo stesso script.

Per creare una variabile formula “f” scriviamo:

> f<-as.formula(dataset2$happines ~ dataset2$religiou + dataset2$wealth +

dataset2$optimism + dataset2$friend + dataset2$gender)

La variabile f contiene la formula che riporta le variabili che fungono da criterio e da predittore. A

sinistra del simbolo “~” viene messa la variabile criterio (dataset2$happines), mentre a destra del

simbolo vengono messe le variabili predittore unite con l’operatore “+”4. Inserendo tale formula nel

comando “lm” (linear model) il programma esegue, poi, l’analisi di regressione.

Nelle prime righe con il comando “library” si caricano i pacchetti necessari per eseguire i comandi

inseriti nello script. La prima volta che si carica lo script con il comando “source” comparirà sulla

console di RStudio una serie di messaggi in colore rosso che indicano quali pacchetti vengono

caricati ed, eventualmente, forniscono alcune informazioni aggiuntive (se la versione di R è

vecchia, il messaggio che compare più di frequente è che il pacchetto caricato è stato costruito

usando una versione più recente di R).

Nello script compare un comando interattivo “readline” che serve per indicare al programma se il

modello di regressione ha un solo predittore, oppure se ne ha più di uno. Se il modello ha un solo

predittore, alcuni comandi devono essere disattivati perché non ha senso eseguirli. In particolare si

tratta dei comandi per il test della multicollinearità.

In seguito troviamo il comando “lm” per eseguire la regressione lineare. L’output di tale regressione

viene salvato nella variabile “mod” (modello). Se vogliamo però vedere l’esito dell’output di lm in

4 Occorre specificare che è possibile usare altri operatori tra le variabili predittore nei modelli di regressione lineare, ma questi operatori vanno usati tenendo conto del loro significato. Supponiamo di avere un criterio Y e due predittori A e B. Nella formula Y ~ A + B , l’operatore “+” significa che il predittore A e B sono considerati tra loro indipendenti, ossia l’effetto di A su Y è tenuto distinto da quello di B su Y. Invece, nella formula Y ~ A * B, l’operatore “*” indica che oltre agli effetti indipendenti di A e B, si considera l’interazione tra i due predittori, ossia l’effetto combinato di A e B su Y. Infine, se scriviamo Y ~ A : B intendiamo, in questo caso, dire al programma che siamo solo interessati all’effetto dell’interazione tra A e B, più che ai singoli effetti dei due predittori. Tali regole valgono anche per l’ANOVA.

Page 8: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

7

modo comprensibile occorre applicare il comando “summary()” alla variabile mod. Il comando

summary si applica agli esiti dei comandi che effettuano analisi complesse (come lm, aov, ecc.) per

generare degli output leggibili. Tali output, di solito, sono anche quelli che vengono riportati nelle

tabelle dei lavori scientifici (per la creazione di tabelle in formato scientifico, veder il file “Tavole e

figure in formato APA”). Anche nel nostro caso conviene usare il comando summary per generare

un output leggibile dell’analisi di regressione. Tale output viene salvato nella variabile “mod.s”

(modello summary).

In seguito troviamo tre componenti che servono per generare un output che rispetti tutte le esigenze

metodologiche che abbiamo precedentemente descritto per eseguire correttamente un’analisi di

regressione.

La prima componente, detta di “validità generale” non fa altro che genere un array “gen” in cui

vengono riportati i seguenti valori:

1. Il coefficiente di correlazione multipla R2: tale coefficiente indica la correlazione del criterio

con i predittori. Se viene moltiplicato per 100 indica la percentuale di varianza spiegata.

2. Il coefficiente di correlazione multipla aggiustato o “adj R2”: tale coefficiente indica la

varianza spiegata dal modello aggiustata in base al numero di predittori inseriti nel modello.

La caratteristica di tale indice è che se i predittori inseriti non sono validi, il valore di tale

indice, differentemente dal semplice coefficiente R2, tende a diminuire. Perciò tale indice è

usato soprattutto per comparare due modelli e verificare se l’aggiunta o eliminazione di

alcuni predittori ha effettivamente aumentato o no la varianza spiegata.

3. Il valore della statistica F ed i relativi gradi libertà (df - degree of freedom): la statistica F

indica se il modello, complessivamente è valido o no. I gradi di libertà sono utili per

comprendere se il numero di soggetti e di predittori corrisponde al modello ipotizzato. Se

non corrispondono i gradi di libertà al numeratore, vuol dire che magari la formula del

modello è stata scritta male, omettendo alcune variabili; se non corrispondono i gradi di

libertà al denominatore, allora forse c’è un problema con il dataset che riporta un numero

diverso di soggetti. Nel nostro caso, avendo 6 predittori (viene inclusa anche l’intercetta) i

gradi di libertà al numeratore sono 5, ed avendo 204 soggetti, i gradi di libertà al

denominatore sono 204 – 5 – 1 = 198.

4. Il valore di probabilità associato alla statistica F del modello Se tale valore è inferiore a 0,05

indica che il modello, complessivamente, è valido.

5. Il valore dell’indice f2 che riporta l’effect size o grandezza dell’effetto per il modello di

regressione. La formula per il calcolo di f2 è R

2/(1-R

2). Se f

2 è inferiore a 0,02, il modello è

nullo, nel senso che non riesce a spiegare la varianza del criterio; se è compreso tra 0,02 e

0,15, il modello ha una bassa potenza nello spiegare la varianza del criterio; se è compreso

tra 0,15 e 0,35, il modello ha una media potenza; infine, se ha un valore superiore a 0,35, il

modello ha un’elevata potenza. Abbinando la statistica F, che permette solo di stabilire se il

modello è significativo o meno con l’indice f2, possiamo stabilire se, quando il modello è

significativo, esso ha una potenza bassa, media o alta nel predire la varianza del criterio.

Page 9: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

8

I valori di R2, di adj R

2, di F e dei relativi gradi di libertà vengono tutti ricavati dalla variabile

mod.s. Per ricavare i valori di tali statistiche occorre scrivere

1. “mod.s$r.squared” per R2;

2. “mod.s$r.squared” per adj R2;

3. “mod.s$fstatistic” per F ed i relativi gradi di libertà. Dato che tale comando restituisce tre

valori, occorre separarli usando una variabile temporanea di nome “f.stat”.

Il comando “pf” calcola la probabilità associata alla statistica F. In assegnazione occorre fornire i

valori di F, i gradi di libertà al numeratore, i gradi di libertà al denominatore e con la funzione

“lower.tail = FALSE” stabiliamo la parte o coda della distribuzione da usare per il test (sempre la

coda più alta). Il valore di f2 viene ricavato direttamente dai valori di R

2 (f

2 = R

2/(1-R

2)).

L’array “gen.et” (generale etichette) serve per inserire le stringhe che definiscono le statistiche del

modello generale. Con il comando “rownames”, assegniamo il nome dall’array gen.et all’array

“gen.m” che contiene i dati finali.

La variabile “ris” è, in realtà, una tabella a cui assegniamo nella prima colonna i valori dei

coefficienti grezzi (“raw betas”) del modello relativi a ciascun predittore, nella seconda colonna i

valori delle statistiche t di Student (“t value”) relative a ciascun predittore e il valore di probabilità

associato “Pr(>|t|)”. Tali valori sono ricavabili usando il comando ‘coef” applicato alla variabile

mod.s.

Il comando “round()” serve per determinare il numero di cifre decimali dopo la virgola (o punto se

usiamo la notazione inglese). Se, all’interno del comando, scriviamo “digits=3” significa che

vogliamo limitare a tre il numero di cifre visibili dopo la virgola.

Nella tabella ris vogliamo inserire anche i valori dei coefficienti standardizzati (“stand. betas”), i

valori VIF di ciascun predittore, per il test della multicollinearità ed anche un indice che riporta la

quota di varianza spiegata nel criterio da parte del singolo predittore (“pEta-sqr”).

Per calcolare i coefficienti standardizzati occorre usare il comando “lm.beta” presente nel pacchetto

QuantPsyc. I coefficienti standardizzati sono utili perché permettono di calcolare la correlazione tra

criterio e predittore. Infatti, se i punteggi del criterio e del predittore vengono standardizzati, allora

il coefficiente beta viene a coincidere con il coefficiente di correlazione. Il comando lm.beta si

applica alla variabile mod. L’output viene caricato nell’array “ris1”. La serie di comandi dello script

dedicati al calcolo dei coefficienti standardizzati è in colore blu.

Per calcolare i valori di VIF (variance inflation factor) , occorre usare il comando “vif”, che si

applica alla variabile mod. I valori di VIF devono esser inferiore a 10, per escludere ogni rischio di

multicollinearità. Nel caso di un modello di regressione con un unico predittore, tale analisi viene

esclusa perché non ha senso. L’output viene caricato nell’array “multi”. La serie di comandi dello

script dedicati al calcolo dei valori VIF è in colore rosso.

Infine, il calcolo della varianza spiegata da ciascun predittore viene effettuato con il comando

“modelEffectSizes”, applicato alla variabile mod. Tale comando fornisce un output complesso che

viene salvato nella variabile “ris2”. Dato che interessano solo alcuni valori di tale output, allora si

usa il comando “ris2$Effects” per estrarre i valori specifici. Tali valori vengono salvati nella

Page 10: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

9

variabile “ris2.2”. Questi valori sono le correlazioni semiparziali del criterio con i singoli predittori.

Elevando al quadrato tali correlazioni si ottiene la quota di varianza spiegata del singolo predittore,

ossia quanto è elevata all’interno della varianza complessiva del criterio, quello quota di varianza

dovuta al predittore. Moltiplicando i valori per 100 otteniamo la varianza spiegata in termini

percentuali. La serie di comandi dello script dedicati al calcolo della varianza spiegata dai predittori

è in colore arancio.

Man mano che si effettuano tali analisi, gli output di tali analisi che sono, sostanzialmente degli

array, vengono aggiunti alla tabella ris con il comando cbind.

Alla fine dello script, costruiamo un output costituito da due componenti. La prima componente

(“ris3”) è una tabella in cui vengono riportati per riga i predittori del modello, inclusa l’intercetta,

con i coefficienti grezzi, i valori di t, i valori di probabilità di t, i coefficienti standardizzati, i valori

di VIF ed, infine la quota di varianza spiegata dei singoli predittori. L’array “et” contiene le

etichette o sigle da assegnare alle colonne della tabella ris3 per distinguere i vari tipi di output.

La seconda componente, costituita dall’array gen.m contiene tutte le informazioni rilevanti sulla

validità generale del modello, ossia i valori di R2, adj R

2, la statistica F e l’effect size f

2.

Queste due componenti possono esser unificate in una variabile di tipo list, denominata “ris”. Il

comando “return()” restituisce la variabile di tipo lista sulla console.

Per eseguire lo script, scriviamo

> mylm(f)

Il modello ha uno (digita '1') o 2 o più predittori (premi 'enter')?:

Avendo il modello più predittori, basta premere il tasto enter per ottenere l’output.

Il primo output riporta la tabella riassuntiva dell’analisi ottenuta con il comando lm:

[1] -----------------------------

[1] linear regression model-results

Call:

lm(formula = formula)

Residuals:

Min 1Q Median 3Q Max

-3.02950 -0.29681 0.02299 0.35912 1.14357

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 2.75030 0.29087 9.456 < 0.0000000000000002 ***

dataset2$religiou -0.01744 0.03557 -0.490 0.62443

dataset2$wealth -0.02291 0.05575 -0.411 0.68156

dataset2$optimism 0.16008 0.03051 5.246 0.000000398 ***

dataset2$friend 0.41913 0.08362 5.012 0.000001190 ***

dataset2$gender -0.26731 0.08041 -3.324 0.00106 **

Page 11: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

10

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.5727 on 198 degrees of freedom

Multiple R-squared: 0.2988, Adjusted R-squared: 0.281

F-statistic: 16.87 on 5 and 198 DF, p-value: 0.00000000000007039

La tabella evidenzia quali predittori sono significativi o no. Per evidenziare le significatività, R usa

dei caratteri che sono “.” (punto) per indicare se la probabilità del valori di t associato al predittore è

< 0,10; “*” (singolo asterisco) per indicare se la probabilità è < 0,05; “**” (doppio asterisco) per

indicare se la probabilità è < 0,01; “***” (triplo asterisco) per indicare se la probabilità è < 0,001.

Sotto la tabella dei coefficienti vengono riportati i dati statistici relativi alla validità generale del

modello con R2 = 0,299, adj R

2 = 281 e F = 16,87 . Il valore di F ha una probabilità bassissima,

inferiore a 0,001, per cui, complessivamente, il modello è valido anche se due predittori, religiou e

wealth, non risultano significativi come predittori.

Il secondo output riporta i coefficienti standardizzati beta dei predittivi, inclusa l’intercetta.

[1] -----------------------------

[1] linear regression model-standardized coefficients

dataset2$religiou dataset2$wealth dataset2$optimism dataset2$friend

dataset2$gender

-0.031 -0.025 0.339 0.311 -0.198

Si rileva che effettivamente il criterio ha correlazioni elevate con i predittori optimism, friend e

gender.

Il terzo output riporta i valori di VIF per ciascun predittore

[1] -----------------------------

[1] linear regression model-multicollinearity (VIF < 10)

dataset2$religiou dataset2$wealth dataset2$optimism dataset2$friend

dataset2$gender

1.107654 1.038114 1.176189 1.086546 1.003264

I valori sono tutti abbondantemente inferiori a 10, escludendo, pertanto, il rischio di

multicollinearità.

Il questo output, infine, si riportano i risultati organizzati in modo da evidenziare le informazioni

più rilevanti.

[1] linear regression model-tabel with relevant data

raw betas t value Pr(>|t|) stand. betas VIFs pEta-sqr

(Intercept) 2.750 9.456 0.000 0.000 0.000 0.311

dataset2$religiou -0.017 -0.490 0.624 -0.031 1.108 0.001

dataset2$wealth -0.023 -0.411 0.682 -0.025 1.038 0.001

dataset2$optimism 0.160 5.246 0.000 0.339 1.176 0.122

dataset2$friend 0.419 5.012 0.000 0.311 1.087 0.113

Page 12: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

11

dataset2$gender -0.267 -3.324 0.001 -0.198 1.003 0.053

[1] -----------------------------

[1] general validity

[,1]

R^2 0.299

adj R^2 0.281

F 16.871

df num. 5.000

df den. 198.000

p(F) 0.000

f^2 0.426

La prima componente riporta la tabella dei coefficienti e, osservando i valori della colonna Pr(>|t|)

si rileva che i predittori significativi sono optimism, friend e gender. I predittori optimism e friend

hanno coefficienti positivi, ciò significa che soggetti con elevato ottimismo e tanti amici sono più

felici. Il predittore gender ha un coefficiente negativo. Ricordando che il valore 1 codificava le

femmine e 2 i maschi, ciò significa che le femmine tendono ad essere più felici dei maschi.

Osservando i valori nella colonna “pEta-sqr”,che riportano le semicorrelazioni al quadrato,

trascurando i predittori non significativi che hanno un quota di varianza spiegata dello 0,1%, nei

predittori significativi si osserva che optimism e friend hanno rispettivamente una quota di varianza

spiegata simile (12,2% e 11, 3%, rispettivamente), mentre il predittore gender ha una quota più

bassa (5,3%). Quindi l’ottimismo e il fatto di avere tanti amici ha un’incidenza più alta sulla

varianza del criterio rispetto al sesso.

La seconda componente riporta le statistiche di validità generale che sono, come abbiamo detto, R2,

adj R2 ed F, con i relativi gradi di libertà. Il valore di probabilità associato da F (p(F)) non è zero,

come sembra a causa dell’arrotondamento, ma un valore sicuramente inferiore a 0,001. L’effect size

f2 è pari a 0,426, che è superiore al valore di 0,35, che è il limite per gli effetti grandi. Ciò significa

che il modello, nella sua complessità, è efficace nel predire la varianza di happines.

Confronto tra modelli di regressione

Se si vogliono confrontare più modelli di regressione, e scegliere quello più efficace nel predire il

criterio, la procedura è semplice e basta usare il comando “anova()”. Il comando anova, come dice

il nome, si usa di solito per eseguire un’analisi di varianza, tuttavia può anche essere usato per

confrontare tra di loro due modelli di regressione. Il comando funziona assegnando, come input, le

variabili che sono gli esiti del comando lm. Se vogliamo mettere a confronto due modelli di

regressione, con due diversi insiemi di predittori, occorre eseguire due analisi lm. Supponiamo di

chiamare “modello1” la variabile che contiene gli esiti della regressione del primo insieme di

predittori e “modello2” la variabile che contiene gli esiti dell’analisi sul secondo insieme di

predittori. Per confrontare tra di loro i due modelli basta scrivere “anova(modello1, modello2)” e

come output si ottiene una tabella di analisi della varianza dove viene riportata la varianza residua o

d’errore dei due modelli (RSS) la differenza dei gradi di libertà dei due modelli, la differenza tra le

Page 13: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

12

RSS dei due modelli, la statistica F associata a tale differenza ed il relativo grado di libertà. La

statistica F è utile per comprendere se due modelli sono effettivamente equivalenti o no. Se i due

modelli sono equivalenti, allora può essere scelto l’uno o l’altro. Tuttavia, una regola impone che

tra due modelli equivalenti, si debba scegliere quello con meno predittori, secondo il principio di

economia. Invece, se la statistica F risulta significativa, allora i due modelli non sono equivalenti. In

questo caso la regola impone che tra due modelli non equivalenti si scelga quello con più predittori.

Si ricorda che tale regola vale per i modelli intrecciati o nested, ossia per i modelli che contengono,

di base, gli stessi predittori, con la differenza che nei diversi modelli alcuni predittori sono stati tolti

(o aggiunti). Ad esempio, supponendo che Y sia il criterio e A, B, C e D siano i predittori, i due

modelli Y = A + B + C e Y = A + B sono modelli nested dato che il secondo modello è incluso nel

primo, mentre i due modelli Y = A + B e Y = C + D sono modelli non nested, dato che contengono

predittori di diversi insiemi. In caso di modelli non nested, il problema è che modelli con predittori

diversi fanno riferimento a teorie diverse, per cui si aggiunge la complicazione che il confronto si

basa anche su teorie di riferimento che possono essere inconciliabili tra loro. Un altro metodo per

selezionare il modello è l’uso sempre del comando anova ma fornendo nell’output invece della

statistica F l’indice Cp di Mallows. Tale indice permette un confronto diretto tra i modelli, dato che

il modello con l’indice Cp più basso è quello da scegliere.

Per eseguire quindi il confronto tra i modelli creiamo dapprima i tre modelli nested e calcoliamo la

regressione per i tre modelli:

> f<-as.formula(dataset2$happines ~ dataset2$religiou + dataset2$wealth +

dataset2$optimism + dataset2$friend + dataset2$gender)

> f2<-as.formula(dataset2$happines ~ dataset2$optimism + dataset2$friend +

dataset2$gender)

> f3<-as.formula(dataset2$happines ~ dataset2$optimism )

> m1<-lm(f)

> m2<-lm(f2)

> m3<-lm(f3)

Il primo modello specifica tutti e 5 i predittori (religiou, welth, optimism, friend, gender). Nel

secondo sono state eliminate alcune variabili, quelle i cui coefficienti non erano validi, e sono state

mantenute quelle i cui coefficienti erano validi (optimism, friend, gender). Nel terzo modello,

infine, si è deciso di tenere solo la variabile psicologia optimism come predittore. I comandi mi

permettono di calcolare le regressioni per ciascun modello.

Utilizzando il comando anova e calcolando la statistica F si ottiene il seguente risultato

> anova(m1,m2,m3) Analysis of Variance Table Model 1: dataset2$happines ~ dataset2$religiou + dataset2$wealth + dataset2$optimism + dataset2$friend + dataset2$gender Model 2: dataset2$happines ~ dataset2$optimism + dataset2$friend + dataset2$gender Model 3: dataset2$happines ~ dataset2$optimism Res.Df RSS Df Sum of Sq F Pr(>F) 1 198 64.930 2 200 65.049 -2 -0.1191 0.1816 0.8341

Page 14: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

13

3 202 76.580 -2 -11.5311 17.5816 0.00000009365 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Solo la differenza tra il modello 2 ed il modello 3 risulta significativa, mentre i modelli 1 e 2

risultano equivalenti. Pertanto, applicando la regola per cui tra due modelli equivalenti si sceglie

quello con meno predittori e, tra due modelli non equivalenti, si sceglie quello con più predittori, il

modello da scegliere alla fine è il modello 2 con tre predittori.

Tale esito è confermato anche usando il Cp di Mallows. Infatti:

> anova(m1,m2,m3,test="Cp") Analysis of Variance Table Model 1: dataset2$happines ~ dataset2$religiou + dataset2$wealth + dataset2$optimism + dataset2$friend + dataset2$gender Model 2: dataset2$happines ~ dataset2$optimism + dataset2$friend + dataset2$gender Model 3: dataset2$happines ~ dataset2$optimism Res.Df RSS Df Sum of Sq Cp 1 198 64.930 68.865 2 200 65.049 -2 -0.1191 67.673 3 202 76.580 -2 -11.5311 77.892

Si vede che il modello con l’indice Cp più basso è il modello 2. Quindi possiamo dire che il livello

di felicità di una persona è influenzato da una combinazione di fattori, tra cui una caratteristica

psicologica (l’ottimismo), una biologica (il sesso) ed una relativa alla condizione sociale

dell’individuo (il numero di amici).

Page 15: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

14

L’analisi fattoriale

L’analisi fattoriale è una tecnica di sintesi dei dati. Esse, sostanzialmente, serve a determinare delle

dimensioni latenti (dette costrutti o fattori latenti) che “spiegano”5 il fatto che le variabili sono

fortemente correlate tra loro.

L’analisi fattoriale si divide in due grandi categorie, l’analisi fattoriale esplorativa (AFE) e l’analisi

fattoriale confermativa (AFC). La prima viene usata quando non si ha alcuna idea su come possano

raggrupparsi le variabili latenti. Essa, sostanzialmente, ricava dai dati empirici le informazioni

necessarie per stabilire in quanti fattori raggruppano le variabili. Il problema principale dell’AFE sta

nello stabilire il corretto numero di fattori latenti e nello stabilire se tali fattori sono correlati o no.

L’AFC, invece, serve per verificare la validità di uno o più modelli fattoriali già formati. Il

ricercatore sa quanti e quali sono i fattori latenti. Il suo obiettivo è verificare se i dati empirici

riescono a confermare il modello fattoriale o, meglio ancora, se i dati empirici permettono di

stabilire quale modello fattoriale è il migliore, se vengono ipotizzati più modelli. L’utilità maggiore

della AFC sta nella possibilità di confrontare tra loro diversi modelli e scegliere quello più adatto.

L’analisi fattoriale viene usata soprattutto in due grandi ambiti il primo è quello della validazione

dei test, soprattutto dei test multidimensionali che misurano più dimensioni latenti alla volta, come

la scala WAIS o il Big Five Questionnaire. L’analisi fattoriale è una delle tecniche più usate per la

validazione dei test perché consente di capire come si raggruppano gli item nei fattori latenti, di

capire quanto efficacemente gli item misurano i tratti latenti (gli item con saturazioni alte sono

indici di misura più efficaci) e di selezionare gli item (gli item con saturazioni troppo basse o con

doppie, triple saturazioni vengono eliminati). L’analisi fattoriale può essere usata anche per scopi di

ricerca. In questo caso l’analisi serve per stabilire come diverse variabili, misurate con strumenti e

metodi diversi, riescano a raggrupparsi in fattori latenti. Ad esempio, posso misurare l’ansia di una

persona usando punteggi a test sull’ansia o misure elettrofisiologiche, come il battito cardiaco o la

pressione arteriosa e con l’analisi fattoriale cerco di capire se le misure comportamentali e quelle

psicofisiologiche coincidono, convergendo in un unico fattore, oppure divergono, raggruppandosi in

fattori latenti diversi.

Analisi fattoriale esplorativa

Esistono vari modi di eseguire l’AFE. L’AFE si compone di tre unità di analisi che si articolano

come segue: l’unità per verificare l’adeguatezza dei dati empirici (ossia se il campione di datti è

sufficiente e valido per effettuare un’analisi fattoriale), l’unità per l’estrazione del numero di fattori,

in cui si usano diverse tecniche e procedure per stabilire quanti sono i fattori latenti che

raggruppano le variabili, e l’unità per la rotazione degli assi, che permette di dare una chiara

interpretazione dei risultati, soprattutto di come le variabili si raggruppino nei fattori latenti.

5 Per spiegazione si intende non tanto una spiegazione di tipo causa-effetto, ma di tipo statistico. In altri termini, il

costrutto emerge da una forte covarianza o correlazione tra variabili, il che supporta l’esistenza di un meccanismo comune che agisce alla base dei tratti o delle abilità misurate nel soggetto.

Page 16: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

15

Un tecnica di analisi usata molto tempo fa era la tecnica dell’analisi delle componenti principali

(ACP), erroneamente considerata un tipo di tecnica fattoriale. La tecnica era usata molto

probabilmente perché i programmi statistici più usati, come l’SPSS, la mettevano di default. Tale

tecnica oltre ad essere usata da quasi tutti gli psicologi era spesso abbinata con la rotazione

Varimax. Tuttavia, sia la ACP che la rotazione Varimax possono essere sbagliate per svariati motivi

e, molto probabilmente, hanno portato anche alla determinazione di risultati distorti nella ricerca

scientifica. Ma quali sono i limiti di questa tecnica?

Per comprendere i limiti della APC dobbiamo comprendere in cosa consiste questa analisi. Essa,

sostanzialmente, è una tecnica che crea nuove variabili (i fattori) partendo dalla combinazione

lineare delle variabili osservate. Utilizza la varianza delle variabili osservate per determinare il

numero di fattori latenti. Questi fattori sono tutti tra di loro ortogonali (ossia indipendenti tra di

loro) e, solitamente i primi fattori sono quelli con la maggiore varianza. Gli altri fattori che vengono

estratti hanno varianze via via sempre più basse fino a quando non diventano trascurabili. I limiti

della APC sono, dunque, il fatto che si basi solo sulla varianza delle variabili osservate per estrarre i

fattori, il fatto che consideri i fattori ortogonali tra loro ed il fatto che tende ad estrarre più fattori del

necessario, dato che è difficile considerare la varianza residua come varianza dovuta solo ad errore

oppure come varianza dovuta ad un fattore. La APC è considerata utile quando si vuole

comprendere quante dimensioni latenti possono descrivere la variabilità dei dati. Un altro suo

vantaggio è che è una tecnica che riesce sempre a dare un risultato, indipendentemente dalla qualità

dei dati immessi, a differenza dall’analisi fattoriale classica che ha bisogna di distribuzioni di dati

normali ed omogenee.

L’AFE, invece, determina il numero di fattori latenti sulla base della covarianze o correlazioni tra le

variabili osservate, invece che sulla varianza delle stesse. Inoltre è in grado di adattarsi alle

caratteristiche dei fattori, nel senso che prevede se i fattori latenti possono essere tra loro

indipendenti o no. In linea di principio, pertanto, la quota di varianza residua nell’analisi fattoriale

dovrebbe essere minore e, pertanto, l’AFE estrae un numero di fattori minori rispetto alla APC,

garantendo una maggiore validità del modello fattoriale. Pertanto, per uno psicologo conviene

sempre eseguire un’AFE al posto di una APC.

L’AFE si articola in tre parti:

1. Analisi della validità dei dati del campione;

2. Applicazione di tecniche di estrazione dei fattori;

3. Applicazione di tecniche di rotazione dei fattori per rendere i dati interpretabili.

Nell’esempio a cui applicheremo l’AFE useremo sempre i dati di dataset2 ed, in particolare, i

punteggi dei 204 soggetti ai 12 item del questionario sulla felicità. L’AFE si presta bene a questo

tipo di analisi, in quanto consente di verificare la struttura fattoriale del test, ossia quanti e quali

tratti latenti il test misura. L’AFE può essere usata in ambito di ricerca se l’obiettivo è vedere come

diverse variabili si raggruppino in differenti fattori, sebbene adesso si preferiscano usare i modelli

Page 17: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

16

di analisi fattoriale confermativa. Tuttavia può essere usata quando la ricerca è ai primi passi e si è

ancora in una fase esplorativa dello studio dei fenomeni6.

I dati di partenza di un’AFE sono sempre una matrice in cui per riga si hanno i soggetti e, per

colonna, le risposte dei soggetti alle diverse variabili, che possono essere item di un test oppure

misure a diversi reattivi (es.: scale cliniche dell’MMPI) o, anche, misure psicofisiologiche (es.:

frequenza cardiaca), chimiche (es.: livello di glucosio nel sangue) o fisiche (es.: peso corporeo). Nel

nostro caso i dati di partenza sono una matrice con 204 righe (i soggetti) per 12 colonne (gli item o

variabili).

Analisi della validità dei dati del campione per l’analisi fattoriale

L’analisi della validità dei dati del campione per l’AFE si può fare in molti modi. Un assunto

importante è che le variabili dovrebbero avere una distribuzione dei punteggi gaussiana. Un

semplice modo per vedere se i dati hanno distribuzione normale è eseguire l’analisi descrittiva e

calcolare gli indici di asimmetria (skewness) e curtosi (kurtosis). Nel file “Analisi multivariate con

RStudio-Parte 1” abbiamo fatto un esempio su come fare questo tipo di analisi. Altri test utili sono

il test della distanza di Mahalanobis ed il test della normalità multivariata di Mardia. Il test di

Mahalanobis è una procedura che calcola la distanza tra i dati all’interno di uno spazio N-

dimensionale. Essa identifica un centro sulla base sia della varianza che della covarianza tra le

variabili ed è utile per identificare casi di outliers, ossia di soggetti che, all’interno del campione,

possono fornire dati anomali. Il test di Mardia, invece è un test sull’asimmetria e curtosi di un

insieme di più variabili. Esso verifica fino a che punto l’insieme di variabili tende a discostarsi dalla

normalità.

La distanza di Mahalanobis ed il test della normalità multivariata di Mardia sono test piuttosto

complessi. Nell’AFE, per vedere se i dati sono adeguati per effettuare un’analisi fattoriale, si usano

due test:

A) Il test Kaiser, Meyer ed Olkin, o KMO test, detto anche test dell’adeguatezza campionaria. Il test

indica quanto è elevata la proporzione di varianza comune tra le variabili. Più è elevata tale quota,

più il campione è adeguato per l’AFE, dato che si basa sulla covarianza tra le variabili. L’indice

KMO varia da 0 a 1 e Kaiser ha identificato i seguenti livelli per interpretare gli indici KMO:

0.00 to 0.49 unacceptable (campione inaccettabile).

0.50 to 0.59 miserable (campione miserabile).

0.60 to 0.69 mediocre (campione mediocre).

6 Altre applicazioni dell’AFE, molto più rare, sono state fatte nell’ambito della psicologia costruttivista, per

comprendere come i soggetti organizzino i loro costrutti mentali, oppure per validare la coerenza delle risposte di un gruppo di soggetti o giudici. Esistono anche applicazioni dell’AFE nell’analisi delle serie temporali.

Page 18: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

17

0.70 to 0.79 middling (campione medio).

0.80 to 0.89 meritorious (campione meritevole).

0.90 to 1.00 marvelous (campione eccezionale).

Comunque, generalmente, il campione viene considerato adeguato se l’indice KMO è superiore al

valore di 0,60. Indici KMO minori di 0,60 indicano problematicità nei dati.

B) Il test della sfericità di Bartlett. Tale test si basa sulla statistica di chi quadro e serve per

verificare se le varianze sono omogenee, ossia se le variabili hanno varianze simili. L’ipotesi nulla

da cui parte il test è che le varianze delle variabili siano uguali, Per cui se il test risulta significativo

(p < 0,05) allora significa che le variabili non hanno varianze omogenee e questo può creare

problemi nell’estrazione dei fattori. Pertanto, se il test di Bartlett non è significativo, allora vuole

dire che i dati sono adeguati per l’AFE.

Un campione di dati risulta adeguato per l’AFE se l’indice di KMO è superiore a 0,60 e il test della

sfericità di Bartlett NON è significativo.

Un altro elemento che rende il campione adeguato per l’analisi fattoriale è la sua dimensione, ossia

quanti soggetti include. Esistono varie indicazioni, tuttavia noi seguiamo le indicazioni di Comrey

per cui un campione con meno di 100 soggetto è inadeguato per l’AFE, un campione con un

numero di soggetti da 100 a 300 è accettabile o discreto, un campione con un numero di soggetti da

300 a 500 è buono, mentre un campione con oltre 500 soggetti è molto buono o eccellente.

Applicazione di tecniche di estrazione dei fattori

Esistono svariate tecniche di estrazione dei fattori, come le tecnica dei “minimi residui”, la tecnica

dei “minimi quadrati ponderati”, la tecnica di dei ”minimi quadrati generalizzati” ecc. Tuttavia,

quelle più usate sono la tecnica basata sulla fattorializzazione sull’asse principale e la tecnica della

massima verosimiglianza. La prima tecnica si basa sul fatto che il primo fattore deve spiegare la

maggior varianza possibile nei dati, mentre gli altri fattori che vengono aggiunti spiegano una quota

di varianza via via sempre minore. Questa tecnica è utile quando si cerca di limitare il più possibile

il numero di fattori latenti, in modo da avere un modello economico, ossia con pochi fattori, in

grado di descrivere la maggior parte di variabilità dei dati. Un limite a tale tecnica è che i suoi

risultati non sono sempre generalizzabili, nel senso che, a seconda del campione, si possono

ottenere soluzioni diverse (es.: per un campione risulta che il numero di fattori da estrarre è 3,

mentre per un altro sono 2). L’altra tecnica, quella della massima verosimiglianza, si basa

sull’errore di approssimazione delle covarianze attese rispetto a quelle osservate. Tale analisi i

valori stimati della saturazioni per riprodurre le covarianze o correlazioni tra variabili e poi stimare

quanto queste covarianze si distaccano dalle covarianze reali. Tale tecnica permette di valutare

quanto la soluzione fattoriale sia valida, in rapporto ai dati empirici, però è maggiormente sensibile

alle caratteristiche dei dati, nel senso che se le variabili non hanno distribuzioni normali ed

omogenee c’è il rischio che l’analisi si interrompa perché il programma non riesce a raggiungere

una soluzione soddisfacente. Questa tecnica è consigliata se i dati hanno varianze normali ed

Page 19: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

18

uniformi. La tecnica della massima verosimiglianza è usata soprattutto nell’analisi fattoriale

confermativa.

Applicazione di tecniche di rotazione dei fattori per rendere i dati interpretabili

Esiste un’infinità di tecniche di rotazione fattoriali. La cosa più importante, tuttavia, è capire se la

tecnica di rotazione da usare deve essere ortogonale od obliqua. La tecnica di rotazione ortogonale

parte dall’assunto che i fattori latenti siano tra loro indipendenti. È applicabile quando si tratta di

raggruppare i dati in fattori la cui natura li rende incomparabili. Ad esempio, se un fattore raggruppa

le abilità apprese di un individuo e l’altro i tratti o le caratteristiche innate, allora i due fattori

dovrebbero essere ortogonali. Le rotazioni oblique sono applicabili quando i fattori latenti sono tra

loro correlati. Ad esempio, nell’intelligenza le abilità cognitive come memoria, velocità di

elaborazione comprensione verbale e capacità visuo-percettive sono correlate tra loro. Lo stesso può

dirsi per i tratti di personalità, le sindromi psicologiche o altre dimensioni psicologiche, come il

benessere psicologico o l’empatia. Dato che esiste una multi varietà di rotazioni, e che la differenza

tra le tecniche di rotazione è prevalentemente di tipo tecnico, qui ci limiteremo a considerare solo

due tipi di rotazioni, la rotazione “varimax” che è la principale rotazione ortogonale e la rotazione

“oblimin” che è la principale rotazione obliqua. Sia la varimax che la oblimin hanno come scopo di

stabilire il corretto raggruppamento delle variabili osservate nei fattori latenti. Per corretto

raggruppamento si intende che la variabile ha una saturazione alta al massimo in un unico fattore.

Se una variabile ha saturazioni elevate in più fattori, vuol dire che esse è associata

contemporaneamente a più tratti latenti, rendendo, di fatto, ambigua l’interpretazione di quella

variabile. Se la variabile è un fenomeno studiato in una ricerca, allora probabilmente occorre

rivedere o il metodo di ricerca o la teoria psicologica, per comprendere come analizzare la variabile.

Se la variabile è l’item di un test, gli item con saturazioni doppie, triple, ecc. vengono di solito

esclusi dai test perché i loro punteggi sono considerati ambigui. Quindi, la rotazione è fondamentale

per capire quali variabili sono facilmente interpretabili, ossia se le variabili si raggruppano

chiaramente in un fattore o nell’altro e quali invece sono difficilmente interpretabili e, quindi, non si

comprende a quale fattore assegnarle. Per convenzione, si stabilisce che le saturazioni della

variabile nel fattore per essere significative debbano superare il valore di 0,307. Per cui, supponiamo

che esistano tre fattori, la variabile facilmente interpretabile dovrebbe avere una saturazione > 0,30

in un unico fattore e < 0,30 negli altri due. Se ha saturazioni >0,30 in due o tutti e tre i fattori, allora

risulta di difficile interpretazione.

7 In realtà, essendo il valore di 0,30 una convenzione, ci sono anche pareri discordanti. Nella comunità di ricercatori il

valore 0,30 è considerato il minimo valore per giudicare la variabile appartenente a quel fattore. Altri sostengono che il valore minimo debba essere 0,40 o 0,50. Solitamente, variabili con saturazioni superiori a 0,70 sono considerate validi indicatori del costrutto. Quindi possiamo dire che sotto 0,30 la variabile non è indicativa del costrutto, tra 0,30 e 0,70 è abbastanza indicativa e sopra 0,70 è molto indicativa. Tuttavia questa non è una norma generale seguita nella comunità scientifica.

Page 20: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

19

Analisi fattoriale esplorativa con RStudio

Eseguire l’analisi fattoriale con RStudio è un’operazione non esageratamente complessa. C’è però il

problema che l’output di un’analisi fattoriale è piuttosto complicato da leggere. Occorre, quindi,

un’adeguata organizzazione delle procedure di analisi per valutare correttamente l’output

dell’analisi fattoriale.

L’analisi si articola in due parti: la prima parte per stabilire se il campione è adeguato e quanti sono

i fattori da estrarre; la seconda parte per eseguire l’AFE sul numero di fattori scelti ed ottenere le

matrici delle saturazioni fattoriali, le comunanze (h2) e la varianza spiegata da ciascun fattore.

Generalmente l’output dell’analisi fattoriale si compone della matrice di saturazioni ruotata con,

incluse, le comunanze e la varianza spiegata. Tuttavia anche altri output vengono richiesti, come

l’indice KMO, il test di Bartlett e lo scree plot. Quindi l’analisi fattoriale con RStudio è organizzata

in modo da fornire gli output considerati necessari nel caso si voglia pubblicare i dati su un articolo

scientifico.

Lo script per eseguire l’analisi fattoriale esplorativa si chiama “myefa”. Il dataset è costituito da 12

item del test sulla felicità, sempre contenuti nel file excel “dataset”. L’obiettivo dell’analisi

fattoriale è capire in quanti fattori latenti si raggruppano i 12 item.

Caricato il dataset nell’ambiente di RStudio, è possibile utilizzare l’applicazione myefa. Tale

applicazione, per poter essere usata necessita del pacchetto “psych”.

myefa<-function(M){

require("psych")

options(scipen=999)#no scientific format

pc <- cor(M) # correlation matrix forma data

dd<-dim(M)

nn<-dd[1] #number of observations

#----------- FIRST PART: Sample adequacy and factor extraction -----

#------------- KMO & Bartlett's test -------------------------------

rkmo<-KMO(pc)

print.noquote("KMO test of sample adequacy (KMO > .60)")

print(rkmo$MSA)

print.noquote("---------------------------------")

print.noquote("Bartlett's test of sphericity (p <.05)")

rbart<-cortest.bartlett(pc,nn)

print.noquote("chi square statistic")

print(round(rbart$chisq,digits=3))

print.noquote("p value (significance)")

print(round(rbart$p.value,digits=3))

print.noquote("degrees of freedom")

print(round(rbart$df,digits=3))

print.noquote("---------------------------------")

print.noquote("")

#------------- extraction method -------------------------------

qq<- readline("Scegli tipo di estrazione (1=fatt. asse princ; 2=mass. ver.): ")

if(qq==1){tipo="pa"}

Page 21: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

20

if(qq==2){tipo="ml"}

#------------- scree plot -------------------------------

qq<-readline("premere 'y' per scree plot o 'invio' per evitarlo: ")

if (qq=="y"){

op<-par(las=1)

scree(M,pc=FALSE)

}

print.noquote("------------------------------------")

#------------- parallel analysis -----------------------

parallelafatta <- 0

qq<-readline("premere 'y' per analisi parallela o 'invio' per evitarla: ")

if (qq=="y"){

op<-par(las=1)

fap <- fa.parallel(M,fm=tipo,fa="fa",sim=TRUE) # parallel analysis for

quantitative data

print.noquote("parallel analysis")

print.noquote("risultati dell'analisi parallela per l'analisi fattoriale")

print.noquote("---------- eigenvalues simulati -------------")

print(fap$fa.sim,digits=3)

print.noquote("---------- eigenvalues reali -------------")

print(fap$fa.values,digits=3)

parallelafatta <- 1

}

print.noquote("------------------------------------")

#----------- SECOND PART: exploratory factor analysis -----

#----------------------------------------------------------

for (i in 1:100){

print.noquote("---------------------START FACTOR ANALYSIS ----------------------

---------")

qq<-readline("inserisci numero di fattori o 'n' per interrompere: ")

if (qq=="n"){break}

else {

nf<-as.numeric(qq)

qq<-readline("Scegli tipo di rotazione (1=varimax; 2=oblimin; default:

none): ")

if(qq=="1"){rot<-"varimax"}

if(qq=="2"){rot<-"oblimin"}

if(qq==""){rot<-"none"}

faPC<- fa(M, nfactors=nf, rotate=rot,fm=tipo,warnings=FALSE)

eig2<-faPC$values

capture.output(f.cor<-summary(faPC))

print.noquote("factor analysis results")

print.noquote("-------------------------")

print.noquote("pattern matrix (loadings matrix)")

print(faPC$loadings,cutoff = 0)

print.noquote("-------------------------")

print.noquote("factor structure matrix (This is just the loadings (pattern)

matrix times the factor intercorrelation matrix)")

print(faPC$Structure,cutoff = 0)

print.noquote("-------------------------")

print.noquote("eigenvalues of EFA")

print(eig2,digits=3)

print.noquote("-------------------------")

Page 22: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

21

print.noquote("communalities of EFA")

print(faPC$communality,digits=3)

print.noquote("-------------------------")

print.noquote("variance explained by latent factors")

print(faPC$Vaccounted,digits=3)

if(rot=="oblimin"){

print.noquote("-------------------------")

print.noquote("correlations between factors")

print(f.cor)

}#end if

# diagramma del modello

op<-par(cex=.7)

fa.diagram(faPC,digits=2,simple=FALSE,cut=.2)

if (nf >1){

qq<-readline("premere 'y' per salvare su file matrice saturazioni o

'invio' per non salvare: ")

if (qq=="y"){

qq<-readline("inserire nome del file (no estensioni): ")

nomefile<-paste(qq,".txt",sep="")

sink(nomefile)

cat(paste( "KMO test per l'adeguatezza del campione (>.60)","\n"))

cat(paste(round(rkmo$MSA,digits=3),"\n"))

cat(paste( "Test di sfericità i Bartlett (p<.05)","\n"))

cat(paste( "valore di chi quadro:","\n"))

cat(paste(round(rbart$chisq,digits=3),"\n"))

cat(paste("significatività valore di p):","\n"))

cat(paste(round(rbart$p.value,digits=3),"\n"))

cat(paste("gradi di libertà”,"\n")) cat(paste(round(rbart$df,digits=3),"\n"))

cat("\n")

cat(paste("matrice delle saturazioni fattoriali (pattern

matrix)","\n"))

cat(write.table(round(faPC$loadings,digits=3),sep = "\t"))

cat("\n")

cat(paste("matrice strutturale (structure matrix)","\n"))

cat(write.table(round(faPC$Structure,digits = 3),sep = "\t"))

cat("\n")

cat(paste("varianza spiegata","\n"))

cat(write.table(round(faPC$Vaccounted,digits=3),sep = "\t"))

cat("\n")

cat(paste("eigenvalues","\n"))

cat(write.table(round(eig2,digits=3),sep = "\t"))

cat("\n")

if (parallelafatta==1){

cat(paste("eigenvalues simulati dell'analisi parallela","\n"))

cat(write.table(round(fap$fa.sim,digits=3),sep = "\t"))

cat("\n")

}

cat(paste("comunanze","\n"))

cat(write.table(round(faPC$communality,digits=3),sep = "\t"))

cat("\n")

Page 23: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

22

if (rot=="oblimin"){

cat(paste("correlazione tra fattori","\n"))

cat(write.table(as.table(f.cor),sep = "\t"))

cat("\n")

}

cat("\n")

sink()

}#if

}

}

}

}#end

Nella prima parte del programma vi sono tre componenti: la componente per verificare

l’adeguatezza del campione per l’AFE con il test KMO e di Bartlett, la componente per generare lo

scree-plot di Cattell che è il metodo classico per stabilire quanti fattori estrarre dall’analisi ed, in

aggiunta, il metodo per fare l’analisi parallela (parallel analysis).

Nella seconda parte abbiamo invece l’analisi fattoriale vera e propria con la stampa sulla console di

RStudio degli esiti di tale analisi. L’output dell’AFE consiste in:

1. La matrice della saturazioni fattoriali (pattern matrix);

2. La matrice delle saturazioni fattoriale moltiplicate per le intercorrelazioni tra fattori

(structure matrix);

3. La serie di eigenvalue o auto valori;

4. I valori delle comunanze (h2), ossia valori che vanno da 0 a 1 che indicano la quota di

varianza della variabile spiegata dai fattori latenti;

5. La quota di varianza nei dati spiegata dai fattori;

6. Se si sceglie una rotazione ortogonale, viene anche stampata la matrice delle

intercorrelazioni tra i fattori latenti.

Queste componenti dell’output servono per fornire le seguenti informazioni:

1. La pattern matrix riporta le saturazioni delle variabili nei fattori latenti. La saturazione

indica la correlazione tra la variabile ed il fattore: maggiore è la saturazione maggiore è il

legame tra la variabile ed il fattore. Per convenzione, le saturazioni significative dovrebbero

essere maggiori di 0,30. Saturazioni maggioro di 0,70 indicano un forte legame tra la

variabile ed il fattore.

2. La structure matrix riporta i valori delle saturazioni aggiustati in base, anche alle

intercorrelazioni tra i fattori. Minore sono le intercorrelazioni, minori sono i riaggiustamenti.

La matrice struttura fornisce una migliore interpretazione dei dati in quanto accentua le

differenze tra le variabili se i fattori non sono intercorrelati.

3. Gli eigenvalue o auto-valori sono valori che vengono usati per decidere il numero di fattori

da estrarre. Secondo il metodo Kaiser-Guttman, i fattori da estrarre sono quelli che hanno

eigenvalue >1. Se si usa lo Scree-plot, che rappresenta i valori degli egienvalue in relazione

al numero di fattori (il numero massimo di fattori coincide con il numero di variabili), il

Page 24: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

23

numero di fattori da estrarre è scelto in corrispondenza di quel fattore per cui si ha un brusco

cambio di pendenza della curva del grafico. Questo metodo, proposto da Cattell, ha il

problema che, a volte, la curva del grafico presenta due o più punti in cui si ha un brusco

cambio di pendenza. Un altro metodo di estrazione dei fattori è l’analisi parallela che, a

causa della sua peculiarità, verrà descritta più in dettaglio in seguito.

4. Le comunanze sono le somme della saturazioni al quadrato per ciascuna variabile. Tali

somme rappresentano la quota di varianza spiegata dal fattore all’interno della variabile e

sono utile per capire quali variabili hanno una comunanza bassa e, quindi, un’elevata

varianza d’errore. In certi casi le comunanze sono utili per selezionare le variabili, come gli

item di un test. Item con comunanze troppo basse vengono scartati perché in essi è troppo

forte la varianza d’errore.

5. La quota di varianza spiegata dai fattori è utile per capire se il numero di fattori estratti

fornisce un’adeguata rappresentazione della varianza dei dati. La varianza spiegata è utile

anche per capire la struttura fattoriale dei dati. Infatti se un fattore da solo riesce a spiegare

quasi il 50% della varianza nei dati, è molto probabile che il modello sia unifattoriale.

Inoltre, se la varianza cumulata arriva a spiegare un’elevata percentuale di varianza nei dati,

allora il modello è sicuramente valido, perché più alta è la quota di varianza spiegata,

minore è la quota di varianza residua dovuto a fattori casuali (non ci sono limiti, anche se

alcuni autori sostengono che la percentuale di varianza spiegata dovrebbe arrivare al 60%).

6. La rotazione ortogonale va sempre scelta quando si ha un modello con due o più fattori. Se

non si hanno idee precise se scegliere tra una rotazione ortogonale od obliqua, conviene

sempre scegliere quest’ultima perché è la più attinente con la realtà Nel caso si vogliano

testare modelli unifattoriali, allora la rotazione può essere esclusa.

Descrizione dello script “myefa”

Prima parte dello script

Prima di eseguire l’analisi fattoriale, si calcolano le correlazioni tra le variabili della matrice di dati

e si salvano su una variabile, denominata “pc”, che costituisce il punto di partenza per l’analisi

fattoriale. Il comando è: “pc <- cor(M)”.

Adeguatezza campionaria. Gli indici KMO e dil test di sfericità di Bartlett venono calcolati con gli

appositi comandi. Il comando per l’indice KMO è “rkmo<-KMO(pc)” e restituisce un singolo

valore alla variabile rkmo, mentre il comando per il test di Bartlett è “rbart<-

cortest.bartlett(pc,nn) ”, in cui nn è il numero di soggetti del campione. Il comando

restituisce in rbart tra valori che il valore della statistica chi quadro (rbart$chisq), la probabilità

associata alla statistica (rbart$p.value) e i gradi di libertà (rbart$df), che sono valori

indispensabili per capire se il test è significativo o no.

Metodo di estrazione. Prima di eseguire i comandi per lo scree-plot e l’analisi parallela si deve

decidere il metodo di estrazione dei fattori. Il metodo di estrazione non è altro che una procedura

matematica che deve essere usata per calcolare gli eigenvalue, le comunanze e le saturazioni. Come

abbiamo detto, esistono diversi metodi di estrazione ma noi ci limitiamo a quelli attualmente più in

voga, al metodo della fattorializzazione sull’asse principale ed al metodo della massima

verosimiglianza. Il programma stampa una frase in cui si chiede all’utente di scegliere quale metodo

Page 25: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

24

vuole usare. La scelta determina il valore della variabile “tipo”, che una variabile stringa. L’utente

deve necessariamente fare una scelta o il programma si interrompe.

Scree-plot ed analisi parallela. In questo caso si usano i comandi “readline” per render interattivo

lo script, in quanto i metodi che servono per decidere quanti fattori estrarre si usano una volta sola. I

metodi si basano sulla procedura Kaiser-Guttman (eigenvalue >1) e sullo scree-plot (variazione di

pendenza del grafico) e sull’analisi parallela (parellel analysis). Il metodo Kaiser-Guttman e lo

Scree-plot possono essere eseguiti contemporaneamente stampando il grafico dello scree-plot in cui

si disegna una linea orizzontale all’altezza dell’eigenvalue corrispondente ad uno. Così, osservando

solo il grafico si comprende quanti sono gli eigenvalue maggiori di 1 e in corrispondenza di quale

fattore avviene il cambio di pendenza. Il comando “scree(M,pc=FALSE)” serve per stampare il

grafico dello scree-plot. La funzione “if (qq=="y")” serve per attivare il comando quando lo si

desidera. Il grafico dello scree-plot viene stampato nella finestra “Plots” del riquadro delle finestre

di servizio di RStudio.

L’analisi parallela è un’analisi particolare che consiste nel calcolare gli eigenvalue utilizzando una

matrice dati in cui i valori vengono assegnati a caso o, meglio, usando i dati reali per creare matrici

di valori combinati in modo assolutamente casuale. Il programma usa due tecniche per creare

matrici con dati casuali: la prima è il metodo dei dati simulati, ossia il programma crea distribuzioni

di dati assolutamente casuali (simulated data) da cui estrarre i valori per la matrice randomizzata,

oppure effettua un ricampionamento dei dati (resampled data) usando i dati del campione per creare

distribuzioni casuali di dati. Quest’analisi genera un grafico in cui, oltre allo scree-plot, vengono

riportati i valori degli eigenvalue casuali ottenuti con i dati simulati ed i dati ricampionati.

Solitamente le distribuzioni di eigenvalue casuali ottenute con i due metodi sono simili. Se gli

eigenvalue dello scree-plot sono superiori a quelli degli eigenvalue casuali, allora si conta quanti

sono. Il numero degli eigenvalue reali superiori agli egienvalue casuali costituisce il numero di

fattori da estrarre. Un limite dall’analisi parallela è che all’aumentare delle dimensioni del campione

tende ad incrementare il numero di fattori da estrarre. Il comando per eseguire l’analisi parallela è

“fap <- fa.parallel(M,fm=tipo,fa="fa",sim=TRUE)”. L’analisi usa la matrice M dei dati

grezzi, la funzione “fm” determina il metodo di estrazione e la funzione “fa” stabilisce se

l’estrazione deve basarsi sull’APC (“pc”) o sull’AFE (“fa”). Dato che abbiamo escluso a-priori

l’APC, il comando di della funzione fa è sempre impostato sull’AFE. Infine, la funzione “sim”

serve per escludere o preservare nell’analisi l’uso dei dati simulati. Ponendo il valore di sim

=TRUE, l’analisi con i dati simulati è preservata. L’analisi parallela permette di stampare sia gli

eigenvalue casuali (fap$fa.sim) che gli eigenvalue reali (fap$fa.values). La variabile

“parallelafatta” serve per stampare gli eigenvalue casuali nell’output solo nel caso in cui

l’analisi parallela sia stata effettivamente fatta.

Seconda parte dello script

In questa seconda parte è attivato un ciclo for in quanto il ciclo rende possibile l’esecuzione di

analisi iterative, modificando il numero di fattori da estrarre. I tre criteri usati per determinare il

numero di fattori da estrarre, ossia il criterio Kaiser-Guttman, lo scree-plot di Cattell e l’analisi

parallela possono dare informazioni diverse. Ad esempio, se si segue il criterio Kaiser-Guttman il

numero di fattori da estrarre può essere 3, mentre l’analisi parallela può indicare 6 possibili fattori

da estrarre. Pertanto, visto che non conviene mai usare un solo criterio e visto che, usando più

criteri, si possono ottenere risposte diverse, allora conviene effettuare ripetute AFE e vedere quale

di queste fornisce la migliore soluzione. Quindi se il range di fattori da estrarre va da un massimo di

6 ad un minimo di 3, conviene ripetere l’AFE prima con 6, poi con 5, poi con 4 fattori da estrarre e

così. La soluzione migliore non necessariamente è quella con il minor numero di fattori, ma quella

che rende più comprensibile l’interpretazione dei dati. La soluzione ottimale è quella per cui ad ogni

Page 26: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

25

variabile corrisponde un solo fattore latente. In caso di corrispondenze multiple, ossia una variabile

che ha saturazioni alte in due fattori, occorre vedere in quale dei due fattori conviene assegnarla.

Questo tipo di analisi, oltre che basarsi sui dati psicometrici e statistici, dovrebbe basarsi anche sui

contenuti o caratteristiche delle variabili. Ad esempio, supponiamo di avere due fattori latenti, uno

relativo alla fobia e l’altro all’ansia. Se un item (es.: “ho paura di quello che potrebbe capitarmi in

futuro”) ha saturazioni alte (> 0,30) sia sulla fobia che sull’ansia, occorre vedere, sia in base al

valore della saturazioni dell’item nei due fattori, sia in base al suo contenuto, se conviene

assegnarlo di più alla fobia o all’ansia.

Il comando per eseguire l’analisi fattoriale è “faPC<- fa(M, nfactors=nf,

rotate=rot,fm=tipo,warnings=FALSE)”. Prima di eseguire tale comando occorre scegliere il

tipo di rotazione. Nel programma la scelta è limitata a due sole rotazioni: “varimax” per la rotazione

ortogonale e “oblimin” per quella obliqua. Se desideriamo altri tipi di rotazioni, queste sono incluse

nel pacchetto “GPArotation”, che deve essere scaricato da internet. Se il modello è unifattoriale (un

solo fattore latente), allora si sceglie “none” (nessuna rotazione).

L’output è piuttosto complesso e consiste di varie parti. Dato che l’analisi fattoriale è complessa,

conviene sempre selezionare quale parte dell’output mostrare. Nelle pubblicazioni scientifiche, le

tabelle dell’analisi fattoriale riportano sempre i dati della structure matrix, le comunanze, gli

eigenvalue e la varianza spiegata. Se i fattori sono correlati (obliqui) possono essere richieste le

intercorrelazioni tra i fattori. Anche lo scree-plot viene spesso richiesto e, se si dichiara di avere

fatto l’analisi parallela, a volte può essere richiesto di riportare anche gli eigenvalues casuali.

Le variabili dello script per stampare le varie parti dell’output sono:

1. faPC$loadings (pattern matrix);

2. faPC$Structure (structure matrix);

3. eig2 (eigenvalue);

4. faPC$communality (comunanze);

5. faPC$Vaccounted (quota di varianza spiegata dai fattori);

6. capture.output(f.cor<-summary(faPC)) (intercorrelazioni tra i fattori latenti).

Per quanto riguarda la stampa della matrice pattern e strutture, la funzione “cutoff” serve per non

stampare le saturazioni inferire ad un determinato valore che, di default, è 0,30 (in valore assoluto).

Conviene sempre stampare tutte le saturazioni, anche quelle inferiori a 0,30 in valore assoluto.

Nel programma è anche incluso un comando per stampare il diagramma del modello fattoriale:

“fa.diagram(faPC,digits=2,simple=FALSE,cut=.2)”. Tale diagramma contiene delle funzioni

che servono per impostare la visualizzazione dei dati nel diagramma. Il comando “digits” stabilisce

che i valori numerici sono arrotondati solo fino alla seconda cifra decimale; il comando “simple”

serve per decidere se visualizzare, in caso di variabili con saturazioni doppie, solo la saturazione più

alta ed assume due valori, FALSE per visualizzare tutte le saturazioni e TRUE per visualizzare solo

le più alte; il comando “cut” serve per non stampare saturazioni o correlazioni inferiori a 0,20

(solitamente le correlazioni inferiori a 0,20 sono considerate nulle, in termini di potenza del test).

Le ultime righe dello script in arancione riportano i comandi per salvare l’output dell’AFE su un file

testo. Questo può essere utile nel caso si voglia registrare l’output e poi riutilizzarlo in varie

pubblicazioni. La serie di righe serve per salvare l’output in un file testo nel formato che sia il più

possibile simile a quello stampato sulla console. I comandi per salvare i dati su file sono “sink”, che

Page 27: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

26

è il comando per aprire e chiudere il file; “cat”, che è il comando per scrivere i valori delle variabili

nel file; “write.table” che è il comando per stampare i dati in formato tabella. Il comando “paste”

sere per concatenare più variabili. In questo caso viene usato per stampare il valore della variabile

assieme a dei caratteri speciali, che sono “\n” e “\t”, il carattere “\n” serve per andare a capo ed

iniziare a stampare su una nuova riga; il comando “\t” serve per inserire una tabulazione tra un

carattere e l’altro. Ad esempio, il comando “cat(paste(round(rkmo$MSA,digits=3),"\n"))”

stampa sul file il valore della variabile rbart$chisq e, dopo, avviene lo spostamento nella riga

sottostante dove si stamperà la variabile successiva.

Qui di seguito riportiamo l’esito dell’AFE eseguita sul dataset, contenente i dati di 204 soggetti e di

12 variabili. Eseguiamo l’analisi usando il metodo della fattorializzazione sull’asse principale.

Prima di usare lo script occorre ricordarsi di caricarlo sulla console con la funzione “source”.

> source('D:/MT documents 2/R works/meto 2018/myefa.R')

> myefa(dataset2[,1:12])

[1] KMO test of sample adequacy (KMO > .60)

[1] 0.7864495

[1] ---------------------------------

[1] Bartlett's test of sphericity (p <.05)

[1] chi square statistic

[1] 1533.861

[1] p value (significance)

[1] 0

[1] degrees of freedom

[1] 66

[1] ---------------------------------

[1]

L’indice di KMO è maggiore di 0,60 e il test di Bartlett non è significativo. Ciò significa che il

campione è adeguato per l’analisi statistica.

Scegli tipo di estrazione (1=fatt. asse princ; 2=mass. ver.): 1

premere 'y' per scree plot o 'invio' per evitarlo: y

[1] ------------------------------------

Scelto il metodo di estrazione e scelto di stampare lo scree-plot, otteniamo nella finestra Plots il

seguente grafico:

Page 28: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

27

Lo scree-plot indica che in corrispondenza del terzo e quarto fattore si ha il cambio di pendenza

della curva. La linea orizzontale indica che, secondo il criterio Kaiser-Guttman, il numero di fattori

da estrarre è 2.

premere 'y' per analisi parallela o 'invio' per evitarla: y

Parallel analysis suggests that the number of factors = 3 and the number of

components = NA

[1] parallel analysis

[1] risultati dell'analisi parallela per l'analisi fattoriale

[1] ---------- eigenvalues simulati -------------

[1] 0.55218 0.32392 0.25656 0.16862 0.10385 0.03762 -0.00316 -0.05443 -

0.11030 -0.16952 -0.23766

[12] -0.31525

[1] ---------- eigenvalues reali -------------

[1] 4.2327 1.9046 0.6366 0.0977 -0.0134 -0.0963 -0.1900 -0.2472 -0.3154 -

0.4513 -0.6034 -0.7217

[1] ------------------------------------

L’analisi parallela mostra che il numero di fattori da estrarre è 3. Il grafico dell’analisi parallela

evidenzia meglio il risultato che indica che il numero di fattore da estrarre è 3.

Page 29: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

28

A questo punto, il numero di fattori da estrarre varia da 3 a 2. Dato che l’AFE è una tecnica di

sintesi dei dati, la strategia migliore è partire con il numero più basso di fattori e proseguire

aggiungendo un fattore ad ogni nuova iterazione.

[1] ---------------------START ANALYSIS -------------------------------

inserisci numero di fattori o 'n' per interrompere: 2

Scegli tipo di rotazione (1=varimax; 2=oblimin; default: none): 2

[1] factor analysis results

Iniziamo l’analisi scegliendo di estrarre solo 2 fattori. In questa fase di ricerca del modello migliore

ci limiteremo all’analisi del diagramma del modello fattoriale. Scegliamo la rotazione “oblimin”

perché magari i fattori possono essere correlati tra loro.

Il grafico seguente mostra il digramma del modello a due fattori (nel diagramma le saturazioni

negative sono riportate in rosso).

Page 30: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

29

Il diagramma evidenza che una variabile ha una doppia saturazione. Tale modello riesce a spiegare

il 56,2% della varianza nei dati.

premere 'y' per salvare su file matrice saturazioni o 'invio' per non salvare:

Dopo la stampa dell’output compare la scritta che chiede se si vuole salvare l’output su un file. Dato

che non conviene salvare tutti gli output dell’AFE, ma solo quello del modello che si ritiene più

valido, premendo sul tasto “enter” si evita di creare il file.

[1] ---------------------START ANALYSIS -------------------------------

inserisci numero di fattori o 'n' per interrompere: 3

Scegli tipo di rotazione (1=varimax; 2=oblimin; default: none): 2

[1] factor analysis results

Se aggiungiamo un fattore, creando un modello a tre fattori, il grafico diventa:

Page 31: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

30

Ci sono ancora della variabili con doppie saturazioni (però la seconda saturazione è < 0,30, in

valore assoluto). Si rileva, inoltre, l’esistenza di una debole correlazione tra il fattore 2 ed il fattore

3 ed una forte correlazione tra il fattore 1 ed il fattore 3. Il modello spiega il 64,4% di varianza nei

dati.

Alla fine scegliamo il modello con 3 fattori perché tutte le variabili sono raggruppabili in almeno un

fattore e perché sulla base del contenuto degli item8 i 3 fattori sono dimensioni tra loro distinguibili.

Il fattore PA1 rappresenta la “capacità di essere allegri”, il fattore PA2 rappresenta la

“soddisfazione di vita” ed il fattore PA3 rappresenta l’ “energia o voglia di fare”. In appendice sono

riportati gli item originari della scale ed i relativi fattori latenti o costrutti.

L’output completo per l’AFE relativa al modello con 3 fattori è:

[1] factor analysis results

[1] -------------------------

[1] pattern matrix (loadings matrix)

Loadings:

PA2 PA1 PA3

hap1 0.762 0.056 -0.079

hap2 -0.029 0.778 0.018

hap3 -0.017 0.048 0.739

hap4 0.902 -0.004 0.005

hap5 0.062 0.816 0.066

8 È solo sulla base del contenuto degli item che possiamo definire il significato del fattore latente. È sbagliato basare la

definizione dei fattori latenti solo sulla base della analisi psicometriche.

Page 32: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

31

hap6 -0.017 0.039 0.625

hap7 -0.013 0.985 -0.060

hap8 -0.017 0.167 0.657

hap9 0.623 -0.067 0.036

hap10 0.004 0.566 0.236

hap11 0.038 -0.074 0.890

hap12 0.906 -0.001 0.031

PA2 PA1 PA3

SS loadings 2.612 2.606 2.234

Proportion Var 0.218 0.217 0.186

Cumulative Var 0.218 0.435 0.621

[1] -------------------------

[1] factor structure matrix (This is just the loadings (pattern) matrix times

the factor intercorrelation matrix)

Loadings:

PA2 PA1 PA3

hap1 0.745 0.074 0.170

hap2 0.041 0.786 0.458

hap3 0.197 0.472 0.762

hap4 0.903 0.075 0.259

hap5 0.149 0.859 0.553

hap6 0.164 0.398 0.643

hap7 0.053 0.949 0.503

hap8 0.183 0.544 0.748

hap9 0.628 0.006 0.175

hap10 0.118 0.702 0.562

hap11 0.285 0.442 0.859

hap12 0.915 0.093 0.288

PA2 PA1 PA3

SS loadings 2.823 3.640 3.585

Proportion Var 0.235 0.303 0.299

Cumulative Var 0.235 0.539 0.837

[1] -------------------------

[1] eigenvalues of EFA

[1] 4.43848 2.44443 0.84383 0.21600 0.16724 0.09716 0.03534 -0.00386 -

0.06238 -0.08687 -0.13422

[12] -0.22937

[1] -------------------------

[1] communalities of EFA

hap1 hap2 hap3 hap4 hap5 hap6 hap7 hap8 hap9 hap10 hap11 hap12

0.559 0.618 0.582 0.816 0.747 0.415 0.903 0.579 0.397 0.530 0.743 0.838

[1] -------------------------

[1] variance explained by latent factors

PA2 PA1 PA3

SS loadings 2.612 2.743 2.371

Proportion Var 0.218 0.229 0.198

Cumulative Var 0.218 0.446 0.644

Proportion Explained 0.338 0.355 0.307

Cumulative Proportion 0.338 0.693 1.000

[1] -------------------------

[1] correlations between factors

PA2 PA1 PA3

PA2 1.00 0.08 0.28

Page 33: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

32

PA1 0.08 1.00 0.58

PA3 0.28 0.58 1.00

È possibile salvare i dati su file premendo il tasto “y” quando compare la scritta che chiede se si ha

intenzione di salvare i dati su file.

Page 34: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

33

Analisi di varianza

L’analisi di varianza è una tecnica di analisi che permette di effettuare confronti multipli tra gruppi

o di verificare gli effetti combinati di più variabili indipendenti. L’analisi di varianza, o ANOVA

(ANalysis Of VAriance), è la tecnica statistica più usata per analizzare i dati nella ricerca

psicologica, perché consente di effettuare ricerche con disegni sperimentali complessi, detti

appunto, disegni fattoriali, che permettono di analizzare gli effetti di più variabili

contemporaneamente usando un numero relativamente ridotto di soggetti. Ad esempio, supponiamo

che in una ricerca in laboratorio si voglia verificare come il contrasto cromatico influenzi la

percezione della chiarezza delle superfici. Posso usare superfici monocromatiche, che variano solo

per la chiarezza, oppure superfici cromatiche, ossia superfici che variano anche per tinta e

saturazione. Non solo, posso ipotizzare che possa esserci una differenza tra maschi e femmine,

oppure posso usare come soggetti persone normali e persone che, per professione, dipingono o

fanno lavori in cui è importante la percezione del colore (come il carrozziere, ad esempio). Quindi

le variabili possono essere il livello di contrasto, superfici monocromatiche vs. superfici cromatiche,

maschi vs. femmine e persone non esperte vs. persone esperte di colore. Questo disegno include

parecchie variabili indipendenti, che possono essere caratteristiche che vengono manipolate (colore

delle superfici) o selezionate (sesso o esperienza), di cui si vogliono verificare gli effetti sulla

percezione della chiarezza e, quindi, si rende necessaria un’ANOVA.

Esistono vari tipi di ANOVA, che cambiano a seconda del disegno sperimentale. Essi sono:

Principalmente esistono due grandi gruppi di disegni sperimentali che implicano l’uso

dell’ANOVA: i disegni in cui si ha solo una variabile indipendente che, però si articola in più

Page 35: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

34

livelli. Quando una variabile si articola in più di 2 livelli, si usa l’ANOVA perché esiste il problema

che i t test multipli rischiano di dare informazioni distorte. In particolare, il rischio, maggiore è il

“familiwise error” o errore di gruppo dovuto al fatto che se si effettuano tanti t test, alcuni possono

risultare significativi solo per caso, generando così dei falsi positivi.

L’ANOVA permette di effettuare confronti tra più gruppi di soggetti ma non consente di stabilire

quale coppia di gruppi è responsabile delle differenza significativa. Ad esempio, se abbiamo 5

gruppi, se il l’ANOVA risulta significativa, non sappiamo se la significatività è dovuta alla

differenza tra il primo ed il secondo gruppo, tra il secondo ed il quarto o tra il terzo ed il quinto. Per

verificare quale coppia di gruppi genera la differenza, dobbiamo ricorrere all’analisi dei contrasti

che si suddivide in analisi post-hoc ed in analisi a-priori.

1. L’analisi dei contrasti post-hoc (confronti a posteriori) si fa quando non si ha la minima idea

di quale coppia di gruppi generi la differenza. Quest’analisi procede a tutti i possibili

confronti tra coppie e, per ciascuna coppia, indica se la differenza è significativa o no.

Indicando con n il numero di gruppi, il numero di tutte le possibili combinazioni a coppie

che vengono eseguite nei confronti post-hoc è n!/(2!(n-2)!).

2. L’analisi dei contrasti a priori (confronti a priori) si fa, invece, quando si sa quali coppie

possono generare la differenza significativa. Di solito viene effettuata con i contrasti lineari,

che consentono non solo di verificare l’esistenza di una differenza significativa tra due

gruppi ma anche tra combinazioni di gruppi. Ad esempio, se ho 5 gruppi, con i contrasti

lineari possono verificare se esiste una differenza significativa tra l’insieme dei primi due

gruppi e l’insieme degli ultimi tre gruppi.

Se il disegno sperimentale prevede 2 o più variabili indipendenti, allora abbiamo un disegno

fattoriale. Nei disegni fattoriali le variabili vengono definite, di solito, fattori. I disegni fattoriali si

suddividono in tre grandi categorie:

1. Disegno fattoriale con campioni indipendenti (disegno tra i gruppi). Dati due fattori A e B,

se ciascun livello sia si A che di B prevede l’uso di soggetti diversi, allora il disegno è un

disegno con campioni indipendenti, ossia con gruppi composti da soggetti sempre diversi

per ciascun livello dei fattori. Un esempio di disegno fattoriale con campioni indipendenti è

un disegno sesso × titolo di studio.

2. Disegno fattoriale a misure ripetute (disegno entro i gruppi). Sei fattori A e B prevedono

sempre gli stessi soggetti per ciascuno dei loro livelli, allora è il disegno è a misure ripetute.

Un esempio di disegno fattoriale è un disegno in cui i soggetti devono eseguire tre diversi

compiti o prove per 3 giorni di seguito (prove × giorni).

3. Disegno misto. Se il fattore A prevede soggetti ripetuti e il fattore B prevede soggetti diversi

per ciascun livello, allora abbiamo un disegno misto. Un esempio potrebbe essere un

disegno che usi soggetti testati in 3 diversi giorni e differenziati in base al sesso (giorni ×

sesso).

Nel gergo statistico, i fattori che usano soggetti diversi sono detti anche fattori between, mentre i

fattori che usano sempre gli stessi soggetti sono detti fattori within. Un disegno misto con due

fattori prevede un fattore within ed un fattore between.

Page 36: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

35

Per capire come effettuare l’analisi di varianza con RStudio, faremo uso di 4 esempi di disegno

sperimentali. In particolare, prenderemo in esame i seguenti esempi:

1. Disegno con 1 fattore between: i dati sono presi da un vecchio studio di Eysenck che

consisteva nel verificare se la capacità di memorizzazione dipendenza dal carico cognitivo

del materiale elaborato. L’ipotesi era che maggiore è il carico cognitivo implicato

nell’elaborazione del materiale da memorizzare, migliore è la capacita di ricordare

correttamente il materiale. Nell’esperimento Eysenck selezionò 50 soggetti ripartiti

casualmente ed uniformemente in 5 gruppi diversi, di 10 soggetti ciascuno. Ad ogni gruppo

veniva data una diversa consegna. Il compito dei soggetti era quello di ricordare una lista di

27 parole (il punteggio variava da 0 per nessuno parola ricordata a 27 per le rievocazione

corretta di tutte le parole). Al primo gruppo veniva detto di contare le lettere nelle parole

(count); al secondo di trovare una parola che facesse rima con la parola della lista (rime); al

terzo di trasformare la parola da sostantivo ad aggettivo (adject); al terzo di elaborare

un’immagine da associare alla parola (image); al quinto, infine, veniva espressamente detto

che doveva memorizzare intenzionalmente le parole perché poi gli sarebbe stato chiesto di

ricordarle (int). Le misure sono riportate nel dataset (“recall”) ed i livelli del fattore sono

indicati nella colonna “rec_groups”. Indicando con Y la misura, o variabile dipendente, e

con A il fattore relativo al metodo di elaborazione, il disegno è Y = 5A (5 indica i livelli del

fattore).

2. Disegno con 2 fattori between. Il disegno è sempre quello usato nello studio di Eysenck, con

l’aggiunta, però, del fattore età. In altre parole, Eysenck aveva eseguito il test sia su soggetti

giovani (18-30 anni) che su soggetti anziani (55-65 anni). Quindi oltre al fattore metodo di

elaborazione, o semplicemente metodo, con 5 livelli, Eysenck aveva aggiunto il fattore età

con 2 livelli. Indicano con A il fattore metodo e con B il fattore età, il modello è Y = 5A ×

2B. Le variabili nel dataset per l’analisi sono “recall2” per Y, “rec_groups2” per A e “age”

per B.

3. Disegno con 1 fattore within. In questo caso il disegno è stato elaborato da un ricercatore per

vedere l’efficacia di una tecnica di rilassamento nel ridurre gli attacchi di emicrania. La

misura Y è il numero di ore per settimana in cui la persona dichiara di aver avuto

l’emicrania. L’effetto della tecnica sarebbe quello di ridurre le ore di emicrania.

Nell’esperimento vengo reclutati 9 soggetti che vengono testati per 5 settimane di seguito.

Le prime due settimane servono come baseline, ossia servono per rilevare la frequenza degli

attacchi in assenza di ogni trattamento. Alla terza settimana, e per le 3 settimane successive,

in poi viene applicato il trattamento per verificare se è efficace contro l’emicrania. Quindi il

fattore A è il numero di settimane. Il modello è Y = 5A. Le variabili nel dataset per

l’ANOVA con 1 fattore within sono “migraine” per Y e “time” per A.

4. Disegno misto con 1 fattore within ed 1 fattore within. In questo caso il ricercatore era

interessato a verificare l’efficacia di tre diversi metodi per indurre i soggetti a smettere di

fumare. Il primo metodo consisteva nella graduale riduzione del numero di sigarette da

fumare (gradual); il secondo nell’immediata interruzione del fumo (immed); il terzo

consisteva nel chiedere ai soggetti di seguire una terapia antifumo (therapy). Dato che

venivano usati soggetti diversi per ciascun tipo di metodo, allora il fattore metodo è un

fattore between. Inoltre, il ricercatore voleva anche verificare se il contesto influiva sulla

tendenza a fumare. Quindi il ricercatore chiese ai soggetti di indicare con una scala di valori

Page 37: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

36

da 0 a 10 quanto era intenso il loro desiderio di fumare, sia quando stavano a casa (home), in

un ambiente tranquillo e rilassato, sia quando stavano al lavoro (workpl), un ambiente più

stressante. Il ricercatore ha reclutato in tutto 15 soggetti che vennero ripartiti casualmente in

3 gruppi da 5 soggetti ciascuno a seconda del metodo assegnato per smettere di fumare. I

soggetti venivano testati ripetutamente a casa o al lavoro. Quindi il fattore within A è il

luogo con 2 livelli (caso o lavoro) ed il fattore between B è il metodo di interruzione del

fumo con 3 livelli (graduale, immediato, terapia). Il modello è Y = 2A × 3B.

ANOVA del modello con 1 fattore between (Y = 5A)

In R i comandi per eseguire l’anova sono diversi. Nel nostro esempio ci limitiamo al comando più

usato, ossia il comando “aov”. Il comando “aov” è quello che esegue l’analisi di varianza, così

come il comando “lm” esegue l’analisi di regressione. Il comando aov dà un output che per essere

visualizzato correttamente, nella forma tipica delle tabelle per l’ANOVA, richiede il comando

“summary()”.

L’esecuzione di un’ANOVA con 1 fattore between è abbastanza semplice. Prima di eseguire

l’ANOVA è necessario generare i fattori, ossia le variabili che specificano i livelli della variabile

indipendente necessari per il confronto tra i gruppi. Il comando per creare variabili fattore è

“factor”.

> Y<-dataset2$recall

> A<-factor(dataset2$rec_groups)

> an.ris<-aov(Y~A,data=dataset2)

La variabile “an.ris” contiene l’output dell’analisi di varianza. Per vedere l’output nella forma

tabellare, occorre il comando summary. Applicando tale comando, si visualizza nella console la

tabella dell’ANOVA:

> summary(an.ris)

Df Sum Sq Mean Sq F value Pr(>F)

A 4 351.5 87.88 9.085 1.82e-05 ***

Residuals 45 435.3 9.67

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

154 observations deleted due to missingness

La tabella riporta i gradi di libertà (df), le somme dei quadrate (Sum Sq), la media dei quadrati

(Mean Sq) il valore della statistica F (F value) e la relativa probabilità (Pr(>F)). La tabella indica

anche il livello di significatività della statistica (p < 0,001). C’è un messaggio d’avviso ma è

trascurabile in quanto il dataset include parecchie righe in più.

L’analisi di varianza, da sola, dice solo che sicuramente c’è una differenza significativa. Per sapere

a cosa è dovuta tale differenza occorrono altre informazioni. Un ausilio può essere dato stampando

il grafico delle medie. Usando il comando “plotmeans” è possibile stampare il grafico delle medie,

Page 38: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

37

con le barre degli errori standard, per capire quali gruppi divergono tra loro. Per usare tale comando

occorre prima caricare il pacchetto “gplots".

> library(gplots)

> plotmeans(Y~A,data=dataset2)

Il grafico che si ottiene è il seguente:

Dal grafico si rileva che i gruppi count e rime sono quelli con i valori di ricorso più bassi e che si

distaccano nettamente dagli altri 3 gruppi adject, image e int.

Possiamo eseguire un’analisi post-hoc per vedere quali differenze tra i gruppi sono significative o

no. Il comando per eseguire l’analisi post-hoc è il comando “TukeyHSD”, che esegue il test di

Tukey sulle differenze tra le coppie di medie.

> TukeyHSD(an.ris, ordered = TRUE)

Tukey multiple comparisons of means

95% family-wise confidence level

factor levels have been ordered

Fit: aov(formula = Y ~ A, data = dataset2)

Page 39: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

38

$`A`

diff lwr upr p adj

count-rime 0.1 -3.85223799 4.052238 0.9999937

adject-rime 4.1 0.14776201 8.052238 0.0385792

int-rime 5.1 1.14776201 9.052238 0.0055623

image-rime 6.5 2.54776201 10.452238 0.0002524

adject-count 4.0 0.04776201 7.952238 0.0460196

int-count 5.0 1.04776201 8.952238 0.0068354

image-count 6.4 2.44776201 10.352238 0.0003180

int-adject 1.0 -2.95223799 4.952238 0.9510451

image-adject 2.4 -1.55223799 6.352238 0.4291513

image-int 1.4 -2.55223799 5.352238 0.8510119

L’opzione “ordered = TRUE” nel comando serve per ordinare le differenze dal valore meno

significativo (p > 0,05) a quello più significativo (p < 0,05). Dalla tabella dell’output si rivela che le

differenze significative sono tra le coppie adject-rime, int-rime, image-rime, adject-count, int-count

e image-count. I post-hoc confermano quello che abbiamo visto nel grafico delle medie ossia che i

due gruppi count e rime si differenziano dagli altri tre gruppi.

A questo punto potrebbe essere interessante fare un confronto lineare per essere sicuri che l’insieme

dei due gruppi count e rime si differenzino significativamente dall’insieme dei gruppi adject, int e

image. Per fare i confronti lineari occorre usare il comando “contrasts”, che serve per definire i

coefficienti delle medie da usare per il contrasto. La regola base per effettuare i contrasti è che la

somma dei coefficienti deve essere pari a zero, altrimenti si rischia di effettuare in contrasto errato.

Prima di eseguire il contrasto, creiamo un array con i coefficienti di contrasto:

> cont<-c(2,-3,2,2,-3)

> sum(cont)

[1] 0

Con il comando sum abbiamo verificato che la somma dei coefficienti è zero. La scelta dei valori

dei coefficienti è arbitrari. L’importante è che la somma sia sempre zero. Ad esempio avremmo

potuto usare anche i seguenti valori dei coefficienti per eseguire il contrasto:

> cont2<-c(1,-1.5,1,1,-1.5)

Con il comando “contrast” stabiliamo che per i livelli del fattore A si debba eseguire uno specifico

confronto tra le medie:

> contrasts(A)<-cont

Si ripete di nuovo l’ANOVA con il comando aov:

> an.ris<-aov(Y~A,data=dataset2)

Page 40: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

39

Per visualizzare il contrasto si deve usare il comando “summary.aov”. All’interno di tale comando

dobbiamo specificare il tipo di contrasto con il comando “split” ed assegnarli un nome, in modo da

visualizzarlo nell’output. Per cui scriviamo:

> summary.aov(an.ris, split=list(A=list("contrast"=1)))

Df Sum Sq Mean Sq F value Pr(>F)

A 4 351.5 87.9 9.085 1.82e-05 ***

A: contrast 1 322.4 322.4 33.329 6.77e-07 ***

Residuals 45 435.3 9.7

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

154 observations deleted due to missingness

Si rileva che il contrasto lineare tra l’insieme dei gruppi count e rime e l’insieme dei gruppi adject,

int e image è estremamente significativo.

Se vogliamo fare altri contrasti, basta semplicemente creare una matrice di contrasti. Ad esempio,

oltre al contrasto di sopra possiamo creare altri due contrasti, il contrasto 2 tra il gruppo count e

rime ed il contrasto 3 tra l’insieme dei gruppi adject e image ed il gruppo int. Per creare i nuovi

contrasti scriviamo:

> cont2<-c(0,1,0,0,-1)

> cont3<-c(1,0,1,-2,0)

> contrasts(A)<-cbind(cont,cont2,cont3)

> an.ris<-aov(Y~A,data=dataset2)

> summary.aov(an.ris, split=list(A=list("contrast 1"=1,"contrast 2"=2,"contrast

3"=3)))

Df Sum Sq Mean Sq F value Pr(>F)

A 4 351.5 87.9 9.085 1.82e-05 ***

A: contrast 1 1 322.4 322.4 33.329 6.77e-07 ***

A: contrast 2 1 0.0 0.0 0.005 0.943

A: contrast 3 1 0.3 0.3 0.028 0.869

Residuals 45 435.3 9.7

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

154 observations deleted due to missingness

Si rileva che solo il contrasto 1 è significativo, mentre gli altri due no. Ciò evidenza che il carico

cognitivo dei metodi group e rime è equivalente tra di loro e, nello stesso tempo, anche quello tra i

gruppi adject, image e int è equivalente. Tuttavia, sicuramente il carico cognitivo tra l’insieme dei

metodi count e rime è diverso da quello dell’insieme adject, image e int ed è notevolmente inferiore.

In questo modo l’esperimento conferma che a compiti con carico cognitivo inferiore corrisponde

una scarsa capacità di memorizzazione.

Page 41: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

40

ANOVA del modello con 2 fattori between (Y = 5A × 2B)

In questo caso creare due fattori, che sono il metodo di elaborazione e il livello d’età:

> A<-factor(dataset2$rec_groups2)

> B<-factor(dataset2$age)

> Y<-dataset2$recall2

Usando sempre il commando aov otteniamo:

> an.ris<-aov(Y~A*B,data=dataset2)

> summary(an.ris)

Df Sum Sq Mean Sq F value Pr(>F)

A 4 1514.9 378.7 47.191 < 2e-16 ***

B 1 240.2 240.2 29.936 3.98e-07 ***

A:B 4 190.3 47.6 5.928 0.000279 ***

Residuals 90 722.3 8.0

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

104 observations deleted due to missingness

Ricordiamo che quando scriviamo “A*B” significa che siamo interessati sia all’analisi degli effetti

principali (gli effetti separati dei due fattori A e B) ed, anche, all’interazione trai due fattori (A × B).

L’interazione è fondamentale perché essa aiuta ad interpretare correttamente gli effetti delle

variabili. In particolare, permette di capire se gli effetti delle variabili sono indipendenti o no. Se le

variabili sono indipendenti, allora l’interazione non è significativa. Se l’interazione è significativa,

allora vuole dire che gli effetti principali non sono tra loro indipendenti. In questo caso sia il fattore

metodo che il fattore età è significativo. Sicuramente la significatività del fattore metodo è

interpretabile in termini di carico cognitivo: metodi che richiedono un alto carico cognitivo

nell’elaborazione del materiale favoriscono la memorizzazione del materiale. Anche il fattore età è

facilmente interpretabile: i soggetti giovani ricordano meglio le parole rispetto ai soggetti anziani.

Ma l’interazione come si spiega? A questo punto occorre creare un grafico che evidenzi le

caratteristiche dell’interazione. Tale grafico si ottiene con la funzione “interaction.plot”.

> interaction.plot(A,B,Y,xlab = "Factor A",ylab = "dep. var.",main="interaction

plot",las=1)

Nel comando occorre specificare il primo (A) ed il secondo (B) fattore e la variabile dipendente

(Y). La funzioni “xlab”, “ylab” servono per assegnare un nome all’asse orizzontale e verticale del

grafico, rispettivamente, mentre la funzione “main” serve per assegnare un titolo al grafico. Il

comando “las=1” serve per stampare i numeri del grafico sempre in orizzontale.

Il grafico che si ottiene è il seguente:

Page 42: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

41

Dal grafico si rileva che l’interazione è dovuta al fatto che è vero che i giovani (young) ricordano

meglio degli anziani (old), però i due gruppi di età hanno prestazioni simili quando il metodo di

elaborazione richiede poco carico cognitivo (count e rime), mentre divergono parecchio quando il

metodo richiede un elevato carico cognitivo (adject, image e int). Ciò significa che con l’avanzare

dell’età, risultano più compromesse le funzioni cognitive che richiedono un elevato carico

cognitivo.

ANOVA del modello con 1 fattore within (Y = 5A)

Nell’ANOVA con fattori within il problema è la corretta determinazione della varianza d’errore.

Mentre nell’ANOVA con fattori between la varianza d’errore non è altro che la varianza residua,

una volta estratta quella dovuta agli effetti principali ed all’interazione, nell’ANOVA con fattori

within, in realtà non è così. La varianza d’errore ha caratteristiche diverse, questo perché nei disegni

within, in realtà abbiamo sempre un fattore in più che è il fattore “soggetto”. Il modello della

varianza con 1 fattore between è Y = A, mentre quello della varianza con 1 fattore within è Y = A ×

soggetto. L’operatore “×” indica che nell’ANOVA con 1 fattore within abbiamo due effetti

principali, il fattore A ed il fattore soggetto e l’interazione tra i due fattori. Mentre il fattore soggetto

viene escluso dall’analisi, perché non ritenuto interessante in quanto è noto che le persone

differiscono tra loro, l’interazione viene mantenuta perché costituisce la varianza d’errore del

Page 43: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

42

fattore within. Perciò quando si esegue un’ANOVA con 1 fattore within, è necessario prendere della

accortezze. Per prima cosa occorre definire la misura Y, il fattore within A ed il fattore soggetto

(subj) nel seguente modo:

> A<-factor(dataset2$time)

> subj<-factor(dataset2$subj_1w)

> Y<-dataset2$migraine

Per l’ANOVA si usa sempre il comando aov, ma si deve scrivere:

> an.ris<-aov(Y~A+Error(subj/A),data=dataset2)

Nel comando aov si deve specificare che l’errore è l’interazione A × soggetto. Per specificare

l’errore basta scrivere “Error(subj/A)”. L’output dell’analisi è:

> summary(an.ris)

Error: subj

Df Sum Sq Mean Sq F value Pr(>F)

Residuals 8 486.7 60.84

Error: subj:A

Df Sum Sq Mean Sq F value Pr(>F)

A 4 2449.2 612.3 85.04 <2e-16 ***

Residuals 32 230.4 7.2

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

La tabella è un po’ più complessa, ma i dati da vedere sono quelli della parte in fondo, in cui sono

riportati i valori relativo al fattore A ed all’errore. Il test risulta significativo per interpretare

correttamente l’output occorre stampare con plotmeans il grafico delle medie:

Page 44: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

43

Il grafico dimostra chiaramente che dalla terza settimana in poi la tecnica di rilassamento determina

una significativa riduzione degli attacchi di emicrania. Quindi la differenza è dovuta,

sostanzialmente, agli attacchi rilevati prima del trattamento nelle prime due settimane ed a quelli

rilevati dopo il trattamento, nelle ultime tre settimane.

ANOVA del modello misto con 1 fattore within ed 1 fattore between (Y = 2A × 3B)

Nel comando aov occorre specificare correttamente il termine d’errore del modello di varianza. Il

modello reale dell’ANOVA per un disegno misto con 1 fattore within (A) ed 1 fattore between (B)

è Y = A + B + subj + A×subj. Pertanto, prima di applicare il comando aov, occorre definire la

variabile Y, i due fattori A e B ed il fattore subj:

> A<-factor(dataset2$place)

> B<-factor(dataset2$method)

> subj<-factor(dataset2$subj_mix)

> Y<-dataset2$smoke_des

Il comando per eseguire l’ANOVA mista è

> an.ris<-aov(dataset2$smoke_des~A*B+Error(subj/A),data=dataset2)

Nel comando aov si specifica che si desidera analizzare gli effetit principali di A e di B, la loro

interazione e che il termine d’errore per il fattore within e l’interazione è “Error(subj/A)”. Il

risultato dell’analisi è:

Page 45: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

44

> summary(an.ris)

Error: subj

Df Sum Sq Mean Sq F value Pr(>F)

B 2 14.87 7.433 4.33 0.0384 *

Residuals 12 20.60 1.717

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: subj:A

Df Sum Sq Mean Sq F value Pr(>F)

A 1 26.133 26.133 44.800 2.22e-05 ***

A:B 2 2.867 1.433 2.457 0.128

Residuals 12 7.000 0.583

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Il grafico dell’interazione permette di spiegare meglio i risultati dell’ANOVA:

> interaction.plot(B,A,Y,xlab = "Factor B",ylab = "dep. var.",main="interaction

plot",las=1)

Gli effetti principali sono entrambi significativi, nel senso che tra i tre metodi antifumo, quello che

garantisce il miglior risultato è la terapia antifumo, mentre quello che garantisce il peggior risultato

è l’immediata interruzione del fumo. Per quanto riguarda il contesto si vede che i soggetti tendono a

fumare più a casa che al lavoro, probabilmente perché al lavoro possono fumare solo nei momenti

Page 46: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

45

di pausa. Tuttavia, l’interazione non è significativa e ciò significa che il metodo antifumo funziona

sia quando il soggetto sta fumando a casa o al lavoro. Quindi il metodo funziona in generale sulle

abitudini del fumatore, indipendentemente dal contesto in cui si trova. Se, ad esempio, fosse stato

osservato che al lavoro i tre metodi avessero dato risultati equivalenti (stesse medie) ciò significava

che il metodo antifumo e, in particolare, la terapia antifumo poteva funzionare solo quando la

persona decideva di fumare in casa. In questo caso, molto probabilmente, l’interazione tra i fattori

sarebbe risultata significativa.

Alcune considerazioni sull’analisi di varianza

In linea di principio, non esistono limiti nell’esecuzione dell’ANOVA, dato che è possibile

combinare più fattori sia between che within. Ad esempio, se si hanno due fattori within W1 w W2

e due fattori between B1 e B2, allora il modello è Y = W1 + W2 + B1 + B2 + W1W2 + W1B1 +

W1B2 + W2B1 + W2B2 + B1B2 + W1B1B2 + W2B1B2 + W1W2B1 + W1W2B2 + W1W2B1B2.

In alti termini, il modello si compone di 4 effetti principali, 6 interazioni a due vie, 4 interazioni a 3

vie ed una interazione a 4 vie. In termini di comandi con R, la funzione sarebbe

aov(y~(W1*W2*B1*B2)+Error(Subject/(W1*W2))+(B1*B2), data=mydataframe)

Sebbene il programma possa fare l’ANOVA di modelli di ANOVA molto complessi, si sconsiglia

fortemente di usare per l’ANOVA modelli con più di tre fattori. Questo perché qualsiasi effetto o

interazione che risulti significativa nell’analisi deve essere spiegata. In particolare, spesso molti

trascurano di dare una spiegazione alle interazioni, ritenendole poco rilevanti. In realtà le interazioni

vanno sempre spiegate. Se si hanno tre fattori A, B e C e l’interazione ABC risulta significativa,

questa interazione va spiegata. Ovviamente, il tipo di spiegazione dipende dalle variabili adottate

nel disegno e dalle ipotesi di ricerca. Se si hanno 4 fattori A, B, C e D, l’interazione ABCD è

impossibile da spiegare, indipendentemente dal tipo di variabili e dalle ipotesi di ricerca. Quindi,

eseguendo un’ANOVA con 4 fattori si rischia di ottenere un’interazione a 4 vie che è assolutamente

impossibile da spiegare. Perciò conviene sempre limitarsi alla configurazione di disegni fattoriali

con, al massimo, 3 fattori. Se il disegno prevede l’analisi congiunta di molte variabili indipendenti,

un modo per ridurre il numero di fattori è l’accorpamento di variabili (ad esempio invece di usare

medie distinte per maschi e femmine si usa una media comune, sia per i maschi che per le femmine)

oppure l’esecuzione di analisi separate. Ad esempio, se si hanno 4 fattori A, B, C e D, si possono

fare analisi a 3 vie con le seguenti combinazioni di variabili: ABC, ABD, ACD, BCD.

Page 47: Analisi multivariate con RStudio parte 2 EPG1 di ... · EPG1 di Metodologia della ricerca e tecniche multivariate di analisi dei dati ... La validità del modello è stabilita dal

46

Appendice

Item della scala di felicità (happyness)

item della scala “happyness” fattore

1 I feel that life is rewarding PA2 - “soddisfazione di vita”

2 I often experience joy and elation PA1 - “capacità di essere allegri”

3 I feel I have a great deal of energy PA3 - “energia o voglia di fare”

4 Life is good PA2 - “soddisfazione di vita”

5 I am very happy PA1 - “capacità di essere allegri”

6 I feel fully mentally alert PA3 - “energia o voglia di fare”

7 I laught a lot PA1 - “capacità di essere allegri”

8 I rarely wake up feeling rested (item invertito) PA3 - “energia o voglia di fare”

9 I am satisfied about everything in my life PA2 - “soddisfazione di vita”

10 I find most things amusing PA1 - “capacità di essere allegri”

11 I feel able to take anything on PA3 - “energia o voglia di fare”

12 I do not think that the world is a good place (item invertito) PA2 - “soddisfazione di vita”