Dispensa del corso

Test per le organizzazioni - A.A. 2025/2026

Autore/Autrice

Margherita Calderan & Ottavia M. Epifania

Data di Pubblicazione

24 maggio 2026

Credits
  • Dispensa Testing psicologico by Corrado Caudek

  • Brown, Anna. (2023). Psychometrics in Exercises using R and RStudio. Textbook and data resource. Available from https://bookdown.org/annabrown/psychometricsR.

  • Altoè, G. (2022). Corso di Testing Psicologico, Scienze psicologiche dello sviluppo, della personalità e delle relazioni interpersonali, A.A. 2022/23

  • Marci, M. (2025). Corso di Testing Psicologico, Scienze psicologiche dello sviluppo, della personalità e delle relazioni interpersonali, A.A. 2025/26

Altri riferimenti utili sono:

1 Misurazione in psicologia

1.1 Il concetto di misura

Definizione

Processo di assegnazione di numeri o simboli a proprietà di oggetti, eventi o fenomeni, seguendo regole definite e condivise per rappresentarne quantitativamente le proprietà e consentirne la descrizione, il confronto e l’analisi.

Vanno distinte le quantità dalle qualità delle unità di analisi:

Quantità Qualità
Misurazione Rilevazione
esprime una manifestazione particolare della quantità si esprime con simboli (anche numerici), ma i numeri non esprimono misure di quantità
Esempio La larghezza della cattedra è una misura della quantità “lunghezza”

La misurazione implica una relazione tra due sistemi:

  • Sistema relazionale numerico: i numeri naturali con le loro proprietà → stabilire una relazione d’ordine (\(>\), \(<\), \(=\)) e operazioni
  • Sistema relazionale empirico: le proprietà degli oggetti

Questi due sistemi sono collegati da una regola di misurazione.

1.1.1 Un esempio

Il bastoncino \(a\) è lungo il doppio del bastoncino \(b\):

\[b = \frac{1}{2}a \quad \text{oppure} \quad a = 2b\]

Se aggiungiamo una costante \(k\) ad \(a\) e \(b\), il rapporto tra \(a\) e \(b\) non cambia. Il sistema relazionale numerico è in relazione diretta con il sistema relazionale empirico.

Le variabili psicologiche non fanno parte del sistema relazionale empirico! Come si possono quantificare? Come si possono misurare?

1.2 Variabili osservate vs. Variabili latenti

  • Variabili che non possono essere osservate direttamenteVariabili latenti (es. Intelligenza)
  • Inferite da indicatori osservabili direttamente → Variabili osservate (es. risposte alle Matrici di Raven)

L’operazionalizzazione della variabile latente è cruciale.

Le variabili latenti devono essere collegate alle variabili osservate attraverso modelli matematici e statistici.

Assunzioni:

  • Le variabili latenti sono la causa sottostante delle variabili osservate
  • Indipendenza locale: la correlazione tra variabili osservate scompare dopo aver controllato l’influenza della variabile latente

La leadership, per esempio, non si può vedere né toccare — non si può osservare direttamente → non è nel sistema relazionale empirico.

Quello che si può vedere direttamente sono i comportamenti che possono essere ricondotti alla leadership → sono nel sistema relazionale empirico e si possono misurare.

Si “traduce” la definizione teorica di una variabile/caratteristica psicologica in qualcosa di osservabile → i comportamenti (che possono anche essere le risposte a un questionario!).

1.3 Operazionalizzazione

Si tratta della “traduzione” in comportamenti osservabili ed oggettivi di variabili latenti psicologiche non direttamente osservabili.

La definizione teorica del costrutto è di vitale importanza per la definizione dei comportamenti osservabili ad esso legati: la misurazione del costrutto dipende proprio da questi!

Dominio di contenuto

Universo dei possibili comportamenti che, coerentemente con la definizione, possono rappresentare le operazionalizzazioni del costrutto.

Quando è molto ampio → facets

1.3.1 Esempio: Estroversione

Definizione: L’estroversione è un tratto di personalità caratterizzato da socievolezza, assertività, livello elevato di attività, ricerca di stimoli ed esperienza di emozioni positive (Costa & McCrae, 1992).

Facets Aggettivi prototipici
Socievolezza Socievole
Assertività Deciso
Attività Energico
Ricerca di stimoli Avventuroso
Emozioni positive Entusiastico
Espansività Espansivo

1.3.2 Esempio: Leadership

Definizione: La leadership è il processo attraverso cui un individuo influenza un gruppo di persone al fine di raggiungere un obiettivo comune (Northouse, 2021).

Facets Aggettivi prototipici
Influenza sociale Persuasivo
Visione Ispiratore
Decisione Determinato
Gestione del gruppo Coordinatore
Motivazione Coinvolgente
Responsabilità Affidabile

1.3.3 Esempio: Triade Oscura

Alcuni costrutti di personalità sono concettualizzati come dimensioni relativamente unitarie, senza una struttura gerarchica stabile composta da facets.

Un esempio è la Triade Oscura della personalità, composta da:

  • Machiavellismo: caratterizzato da manipolazione interpersonale, cinismo, distacco emotivo e orientamento strategico al raggiungimento dei propri obiettivi
  • Narcisismo: caratterizzato da grandiosità, bisogno di ammirazione, senso di superiorità e forte focalizzazione su sé stessi
  • Psicopatia subclinica: caratterizzata da impulsività, ridotta empatia, scarsa ansia e tendenza a comportamenti antisociali non necessariamente clinici

(Paulhus & Williams, 2002)

1.4 Tipi di variabili

QUALITATIVE / CATEGORIALI

  • Sconnesse: \(\{a, b, c\}\)
  • Ordinate: \(\{a, b, c\}\) con \(a < b < c\) (oppure \(a > b > c\))

QUANTITATIVE / METRICHE

  • Discrete: \(\mathbb{Z}\)
  • Continue: \(\mathbb{R}\)

1.5 Scale di misura (Stevens, 1946)

Le variabili si differenziano in base alla quantità di informazione che può essere ricavata:

1.5.1 Scala nominale

Distingue un insieme di dati in diverse categorie. Vale solo l’equivalenza (\(=\) o \(\neq\)).

Esempi: Comune di residenza, genere, patologia clinica.

Al posto di “A”, “B”, “C” si poteva scrivere \(\alpha\), \(\beta\), \(\gamma\), 1, 2, 3 (ma i numeri valgono solo come etichette!).

Caratteristiche:

  • Categorie distintive: gli elementi che appartengono a categorie differenti vengono considerati di tipo diverso
  • Categorie mutualmente escludentesi: ogni elemento può rientrare in una ed una sola categoria
  • Categorie collettivamente esaustive: tutti gli elementi vengono classificati nelle categorie della variabile, nessuno escluso

1.5.2 Scala ordinale

Distingue un insieme di dati in diverse categorie che sono ordinabili a seconda della quantità di caratteristica posseduta. Vale sia l’equivalenza (\(=\) o \(\neq\)) sia l’ordinamento (\(<\) o \(>\)).

Esempi: Titolo di studio, gradimento di un prodotto, valutazione di una malattia (alto, medio, basso).

Le etichette numeriche valgono per il loro ordine (non ha senso compiere operazioni tra di loro).

1.5.3 Scala a intervalli equivalenti

Lo \(0\) è arbitrario, ma c’è un’unità di misura per cui le categorie si trovano alla stessa distanza. Vale equivalenza (\(=\) o \(\neq\)), ordinamento (\(<\) o \(>\)) e differenza (\(+\) o \(-\)).

Esiste una relazione d’ordine tra le quantità e la distanza tra le quantità e nota e definita da una unità di misura costante e nota.

Esempi: Temperatura in Celsius, Q.I., scale di atteggiamento.

Se ci sono 0°C, non vuol dire che non c’è calore!

Prendiamo due temperature, \(T_a\) e \(T_b\). Queste temperature in Celsius \(C\) sono \(T_a(C) = 5\) e \(T_b(C) = 10\).

Quello che si può dire:

  • \(T_a(C) < T_b(C)\) (oppure \(T_b(C) > T_a(C)\))
  • \(T_b(C) - T_a(C) = 5\)
  • Non possiamo dire che \(T_b(C) = 2T_a(C)\).

Infatti, volendo trasformare le due temperature in Fahrenheit tramite la relazione

\[F = \dfrac{9}{5}C + 32\] si vedrebbe che \(T_a(F) = \dfrac{9}{5}5 + 32 = 41\) e \(T_a(F) = \dfrac{9}{5}10 + 32 = 50\). Rimane la relazione d’ordine, per cui anche \(T_a(F) < T_b(F)\), ma cambia sia la differenza tra le due quantità \(T_b(F) - T_a(F) = 9\) sia la relazione tra le due, per cui si vede chiaramente che \(T_a(F) \neq T_b(F)\).

1.5.4 Scala a rapporti equivalenti

Lo \(0\) è assoluto: indica assenza del fenomeno. Vale equivalenza (\(=\) o \(\neq\)), ordinamento (\(<\) o \(>\)), differenza (\(+\) o \(-\)) e rapporto (\(\times\) o \(\div\)).

Esempi: Peso, altezza, valori diagnostici.

La presenza dello 0 assoluto permette di andare oltre la mera relazione d’ordine e distanza tra le quantità.

Si prendano ad esempio due pesi, \(P_a\) e \(P_b\). Questi pesi, misurati in chilogrammi \(K\), sono \(P_a(K)= 10\) e \(P_b(K) = 30\). Quello che si può dire:

  • \(P_a(K) < P_b(K)\) (\(P_b(K) > P_a(K)\))
  • \(P_b(K) - P_a(K) = 20\)
  • Ma soprattutto \(P_a(K) = \dfrac{1}{3}P_b(K)\) oppure \(P_b(K) = 3P_a(K)\)

La relazione tra \(P_a\) e \(P_b\) rimane invariante attraverso le diverse trasformazioni di scala.

Ad esempio, trasformando \(P_a(K)\) e \(P_b(K)\) in libbre (\(L\)) mediante la relazione

\[L = K \times 2.20462\] per cui \(P_a(L) = 10 \times 2.20462 = 22.0462\) e \(P_b(L) = 20 \times 2.20462 = 44.0924\). La relazione d’ordine è matenuta e, al netto dei decimali, rimane anche invariante il rapporto tra i due pesi.

2 Descrittive di Base

Statistica descrittiva:

  • Riassume, descrive, esplora i dati osservati
  • Prima fase nella valutazione delle proprietà psicometriche di uno strumento

Statistica inferenziale:

  • Usa i dati di un campione per fare inferenze sulla popolazione
  • Confronti tra gruppi, valutazione di interventi, validazione di test

2.1 Frequenze

Notazioni fondamentali:

  • Sia \(X\) la variabile di interesse
  • Sia \(X_i\) la categoria/livello \(i\)-esima di \(X\)
  • Sia \(n\) il totale delle unità statistiche

2.1.1 Frequenze assolute semplici

La frequenza assoluta semplice di una categoria è il numero naturale di unità statistiche che presentano tale categoria.

\[f_i \geq 0, \quad \sum_{i=1}^{k} f_i = n\]

# Esempio: frequenze assolute semplici
fi <- table(burnout$StressLevel)
fi

  1   2   3   4   5   6   7   8   9  10 
220 199 199 200 196 197 191 208 214 176 

2.1.2 Frequenze assolute cumulate

La frequenza assoluta cumulata di una categoria è la somma delle frequenze assolute semplici delle categorie precedenti più la frequenza assoluta semplice della categoria data.

\[F_i = f_1 + f_2 + \ldots + f_i = \sum_{j=1}^{i} f_j\]

Fi <- cumsum(table(burnout$StressLevel))
Fi
   1    2    3    4    5    6    7    8    9   10 
 220  419  618  818 1014 1211 1402 1610 1824 2000 
Importante

Le frequenze cumulate si calcolano solo quando le categorie di una variabile presentano un ordinamento (quindi non si calcolano per variabili misurate a livello nominale).

2.1.3 Frequenze relative semplici

La frequenza relativa semplice è data dal rapporto tra la frequenza assoluta semplice di tale categoria e il numero totale di unità statistiche osservate.

\[f_i\% = \frac{f_i}{n} \cdot 100 \quad (0 \leq f_i\% \leq 100, \quad \sum_{i=1}^{k} f_i\% = 100)\]

n <- nrow(burnout)
pi_rel <- table(burnout$StressLevel) / n
round(pi_rel, 3)

    1     2     3     4     5     6     7     8     9    10 
0.110 0.100 0.100 0.100 0.098 0.098 0.096 0.104 0.107 0.088 

Una frequenza relativa semplice varia sempre tra 0 e 1.

2.1.4 Frequenze relative cumulate

La frequenza relativa cumulata è la somma delle frequenze relative semplici delle categorie precedenti più la frequenza relativa semplice della categoria data.

Pi <- cumsum(table(burnout$StressLevel) / n)
round(Pi, 3)
    1     2     3     4     5     6     7     8     9    10 
0.110 0.210 0.309 0.409 0.507 0.606 0.701 0.805 0.912 1.000 

Una frequenza relativa cumulata varia sempre tra 0 e 1.

2.2 Indici di tendenza centrale

Un indice di tendenza centrale è un valore che descrive e riassume il centro di una distribuzione di dati.

Indice Variabile nominale Variabile ordinale Variabile quantitativa
Moda SI SI SI
Mediana NO SI SI
Media NO NO SI

2.2.1 La moda

La moda di una distribuzione è la categoria che si presenta con la massima frequenza:

\[Mo(X) = \max(f_i)\]

Si può calcolare per le variabili misurate a qualsiasi livello, anche se di fatto viene calcolata solo per le variabili categoriali.

2.2.2 La mediana

La mediana è il dato che occupa la posizione centrale rispetto alla distribuzione ordinata dei dati:

  • preceduta da almeno 50% dei casi
  • superata da almeno 50% dei casi

La posizione della mediana è:

\[Pos_{Me} = \frac{n+1}{2}\]

Per individuarla sulla distribuzione di frequenza, si cerca la prima frequenza cumulata maggiore o uguale alla posizione cercata.

median(as.numeric(burnout$StressLevel))
[1] 5

2.2.3 La media aritmetica

La media aritmetica è data dalla somma dei dati divisa per il numero di unità statistiche:

\[\bar{X} = \frac{\sum_{i=1}^{n} x_i}{n}\]

La media è una sorta di baricentro della distribuzione dei dati. È sensibile ai valori estremi (outlier).

mean(burnout$Age)
[1] 40.6945

2.3 Indici di variabilità

Il concetto di variabilità si riferisce a quanto i punteggi di una distribuzione sono sparsi, ovvero quanto siano simili o dissimili tra loro.

  • Il ricorso a un indice di tendenza centrale (come la media) comporta una forte semplificazione
  • È fondamentale capire quanto i dati siano dispersi intorno all’indice di tendenza centrale
  • La variabilità è una caratteristica fondamentale delle distribuzioni: “Variability is the essence of statistics” (Cobb, 1992)

Gli indici di variabilità possono assumere solo valori positivi (non ha senso parlare di dispersione negativa) o nulli (quando i dati hanno tutti lo stesso valore).

2.3.1 Campo di variazione (Gamma)

Il campo di variazione è la differenza tra il valore massimo e il valore minimo osservato:

\[\text{gamma} = X_{max} - X_{min}\]

team_A <- c(38, 42, 44, 36, 39, 42, 38, 41)
max(team_A) - min(team_A)
[1] 8
Limitazione

Dipende solo da due valori (massimo e minimo) e non considera la distribuzione dei dati intermedi.

2.3.2 La varianza

La varianza \(\sigma^2\) è la media degli scarti al quadrato tra i dati e la media:

\[\sigma^2 = \frac{\sum_i^n (X_i - \bar{X})^2}{n}\]

La varianza assume valore minimo \(0\) quando tutti i dati sono uguali tra loro e aumenta all’aumentare della dispersione.

Importante

La funzione var() di R calcola la varianza campionaria, che divide per \(n-1\) anziché \(n\). Per dati descrittivi (popolazione osservata) si usa \(n\); per stimare la varianza della popolazione da un campione si usa \(n-1\).

2.3.3 La deviazione standard

La deviazione standard è la radice della varianza:

\[\sigma = \sqrt{\sigma^2}\]

Riporta l’indice di variabilità sulla scala della variabile.

Esempio: Se in un campione di dipendenti la variabile WorkHoursPerWeek ha media \(40\) ore e deviazione standard \(2.5\), i dipendenti differiscono mediamente di \(2.5\) ore dal carico di lavoro medio.

2.3.4 Il coefficiente di variazione

Il coefficiente di variazione è il rapporto tra la deviazione standard e il valore assoluto della media:

\[CV = \frac{\sigma}{|\bar{X}|}\]

Il CV è un indice di variabilità relativa fondamentale per eseguire confronti tra fenomeni misurati su scale diverse.

media_esp <- abs(mean(burnout$Experience))
sd_esp    <- sd(burnout$Experience)
media_ore <- abs(mean(burnout$WorkHoursPerWeek))
sd_ore    <- sd(burnout$WorkHoursPerWeek)

cv_esp <- sd_esp / media_esp
cv_ore <- sd_ore / media_ore

round(cv_esp, 2)
[1] 0.91
round(cv_ore, 2)
[1] 0.24

2.3.5 I quantili e la differenza interquartilica (IQR)

La differenza interquartilica è la differenza tra il terzo e il primo quartile:

\[IQR = Q_{75} - Q_{25}\]

L’IQR misura la dispersione del 50% centrale dei dati ed è un indice robusto perché i valori estremi incidono poco o per nulla.

Outlier: valori oltre \([Q_1 - 1.5 \times IQR \;;\; Q_3 + 1.5 \times IQR]\).

Q1 <- quantile(burnout$Experience, prob = 0.25)
Q3 <- quantile(burnout$Experience, prob = 0.75)
differenza_iqr <- Q3 - Q1
limite_inferiore <- Q1 - (1.5 * differenza_iqr)
limite_superiore <- Q3 + (1.5 * differenza_iqr)

Il boxplot visualizza Q1, mediana, Q3 e gli outlier in un unico grafico.

2.4 I percentili

Il percentile \(x_p\) di ordine \(p\) è quella categoria/valore che è:

  • preceduta da almeno \(p\%\) dei casi
  • superata da almeno \((1-p)\%\) dei casi
Tipo Ordine
Quartili percentili di ordine 25 - 50 - 75
Decili percentili di ordine 10 - 20 - … - 90
Percentili percentili di ordine 1 - 2 - … - 98 - 99
quantile(burnout$SatisfactionLevel, probs = c(0.05, 0.25, 0.50, 0.75, 0.95))
    5%    25%    50%    75%    95% 
1.2100 2.0000 3.0250 4.0000 4.7905 

2.4.1 Rango percentile

Il rango percentile (\(Rp\)) indica la percentuale di casi che hanno un valore uguale o inferiore a un particolare punteggio \(X_i\):

\[Rp = \frac{B}{N} \times 100\]

dove \(B\) è il numero di casi \(\leq X_i\) e \(N\) è il numero totale di casi.

2.5 Indici di forma

Gli indici di forma descrivono come è distribuita una variabile, oltre alla sua posizione centrale e dispersione. Due distribuzioni possono avere stessa media e deviazione standard ma forma diversa.

2.5.1 Asimmetria (Skewness)

L’asimmetria misura quanto una distribuzione si discosta dalla simmetria rispetto al centro.

Tipo Valore indice Caratteristiche
Simmetrica \(\approx 0\) Media = Mediana = Moda
Asimmetria positiva \(> 0\) Moda < Mediana < Media
Asimmetria negativa \(< 0\) Media < Mediana < Moda
library(psych)
skew(burnout$WorkHoursPerWeek)
[1] 0.05606748

Interpretazione: valore vicino a 0 indica distribuzione approssimativamente simmetrica.

2.5.2 Curtosi (Kurtosis)

La curtosi misura quanto i dati si concentrano nelle code della distribuzione. Molti software riportano l’eccesso di curtosi rispetto alla distribuzione normale (il cui valore di curtosi è 3):

Tipo Valore indice Forma
Mesocurtica \(\approx 0\) Forma normale
Leptocurtica \(>0\) Code pesanti
Platicurtica \(<0\) Code leggere
kurtosi(burnout$WorkHoursPerWeek)
[1] -1.186166

3 Probabilità

3.1 La distribuzione normale

Si presuppone che la caratteristica misurata abbia una distribuzione nota nella popolazione. Di solito si assume una distribuzione normale: la maggior parte degli individui ha quantità intermedie della caratteristica, quindi pochi individui si collocano agli estremi.

La distribuzione normale è definita da due parametri:

  • \(\mu\) (la media)
  • \(\sigma^2\) (la varianza)

3.2 Standardizzazione e taratura

  1. Raccogliere i punteggi grezzi sul campione normativo
  2. Stimare i parametri della distribuzione (\(\mu\), \(\sigma\))
  3. Trasformare i punteggi in scale standardizzate
  4. Produrre le tavole di conversione grezzi → standardizzati

Scale comuni: percentili, punti Z, punteggi T…

Il campione normativo

Il campione normativo è il gruppo di soggetti le cui risposte al test costituiscono il termine di riferimento per valutare qualsiasi soggetto sottoposto successivamente al test.

  • Rappresentatività — rispecchia la popolazione target
  • Ampiezza — migliaia di soggetti per ridurre l’errore di stima

Un buon manuale deve descrivere le caratteristiche del campione normativo.

3.3 Punteggi grezzi e standardizzati

  • Punteggi grezzi: valori raccolti direttamente dal test; non interpretabili direttamente
  • Standardizzazione: trasformazione in valori interpretabili e confrontabili

3.3.1 Formula generale

La trasformazione lineare che riscala \(X\) verso una distribuzione target:

\[Y = (X - \bar{X})\frac{s_Y}{s_X} + \bar{Y}\]

dove \(\bar{Y}\) e \(s_Y\) sono la media e deviazione standard target:

Scala \(\bar{Y}\) \(s_Y\)
Punteggi T 50 10
QI 100 15
Punteggi Z 0 1

3.3.2 Il punto Z

Se la distribuzione target ha \(\bar{Y} = 0\) e \(s_Y = 1\):

\[Z = \frac{X - \bar{X}}{s_X}\]

Dove:

  • \(X\) è il punteggio grezzo
  • \(\bar{X}\) è la media della popolazione
  • \(s_X\) è la deviazione standard della popolazione

Esprime la distanza di \(X\) dalla media in unità di deviazioni standard.

  • Z = \(-1.96\) significa che il soggetto ha ottenuto un punteggio di 1.96 deviazioni standard inferiore rispetto al punteggio medio della popolazione
  • Nel caso in cui la distribuzione dei punteggi sia approssimativamente normale, i punti Z possono essere utilizzati per interpretare direttamente le prestazioni dei soggetti

I punteggi standardizzati permettono di confrontare misure su scale diverse, portandole tutte sulla stessa unità di misura.

3.4 La probabilità

3.4.1 Introduzione

  • In termini generali, la probabilità può essere vista come il grado di fiducia rispetto al manifestarsi di un evento
  • La probabilità è una misura matematica che serve ad esprimere la nostra incertezza
  • È un numero sempre compreso tra 0 e 1: dove 0 indica un evento impossibile e 1 indica un evento certo

Un esempio classico è il lancio di una moneta equa: la probabilità di ottenere testa è \(\frac{1}{2}\). In una singola serie di lanci potremmo ottenere più o meno del 50% di teste, ma all’aumentare del numero di lanci la frequenza relativa si avvicina sempre di più a \(\frac{1}{2}\).

3.4.2 Spazio campionario, esiti ed eventi

Dato un fenomeno casuale, l’insieme di tutti i possibili esiti è detto spazio campionario \(S\). Gli elementi di \(S\) devono essere:

  • Mutuamente esclusivi: due esiti non possono verificarsi contemporaneamente, \(A \cap B = \emptyset\)
  • Collettivamente esaustivi: insieme coprono tutti i casi possibili, \(A \cup B = S\)

Quando entrambe le condizioni valgono, diciamo che gli eventi costituiscono una partizione dello spazio campionario.

Un evento \(E\) è semplicemente un sottoinsieme di \(S\).

Esempio 1: Moneta

  • Fenomeno: lancio di una moneta
  • \(S = \{\text{testa, croce}\}\)
  • Evento “esce testa”: \(E = \{\text{testa}\}\)

Esempio 2: Dado

  • Fenomeno: lancio di un dado a 6 facce
  • \(S = \{1, 2, 3, 4, 5, 6\}\)
  • Evento “numero pari”: \(E = \{2, 4, 6\}\)

3.4.3 Gli assiomi di Kolmogorov (1956)

La probabilità \(P(\cdot)\) è una funzione che assegna un valore numerico a ogni evento:

  1. \(P(A) \geq 0\) — nessuna probabilità può essere negativa
  2. \(P(S) = 1\) — la somma delle probabilità di tutti gli esiti è 1
  3. se \(A \cap B = \emptyset\), allora \(P(A \cup B) = P(A) + P(B)\)

Esempio: dado

Poiché le sei facce sono equiprobabili: \(P(1) = P(2) = \cdots = P(6) = a\). Per l’assioma 2: \(6a = 1 \Rightarrow a = \frac{1}{6}\).

La probabilità di ottenere un numero pari è:

\[P(E) = P(2) + P(4) + P(6) = \frac{1}{6} + \frac{1}{6} + \frac{1}{6} = \frac{1}{2}\]

3.5 Spazi campionari discreti e continui

Discreto Continuo
Definizione Esiti numerabili in categorie Esiti su un continuum di valori
Esempio Numero di errori: \(S = \{0, 1, 2, \ldots\}\) Tempo di risposta: \(S = \{\theta > 0\}\)
Probabilità \(P(X = x) = f(x)\) \(P(a \leq X \leq b) = \int_a^b f(x)\,dx\)

Nel caso continuo, la probabilità di un singolo valore esatto è sempre zero: ha senso solo chiedersi la probabilità di un intervallo. Questa probabilità si calcola come area sotto una curva.

3.6 Variabili aleatorie e distribuzioni di probabilità

Una variabile aleatoria è una funzione \(X : S \to \mathbb{R}\) che assegna un valore reale a ogni esito dello spazio campionario.

Esempio: nel lancio di una moneta, \(X(\text{croce}) = 0\) e \(X(\text{testa}) = 1\).

Una distribuzione di probabilità descrive quali valori può assumere \(X\) e con che probabilità.

3.6.1 Valore atteso

Il valore atteso è la media ponderata di tutti i valori possibili, con pesi dati dalle probabilità — ovvero il valore “tipico” nel lungo periodo:

\[E(X) = \sum_{x \in X(S)} x \times P(X = x)\]

Per un dado equo: \(E(X) = \frac{1}{6}(1+2+3+4+5+6) = 3.5\).

3.6.2 Varianza

La varianza misura quanto i valori si disperdono attorno alla media:

\[\text{Var}(X) = E\!\left[(X - E(X))^2\right]\]

Nella distribuzione normale, valore atteso e varianza corrispondono esattamente a \(\mu\) e \(\sigma^2\).

3.6.3 Distribuzioni comuni

Distribuzione Supporto \(E[Y]\) \(\text{Var}(Y)\)
Normale \((\mu, \sigma^2)\) \(x \in \mathbb{R}\) \(\mu\) \(\sigma^2\)
Gamma \((\alpha, \lambda)\) \(x \in (0,\infty)\) \(\alpha/\lambda\) \(\alpha/\lambda^2\)
Binomiale \((n, p)\) \(x \in \{0,1,\dots,n\}\) \(np\) \(np(1-p)\)
Poisson \((\lambda)\) \(x \in \{0,1,2,\dots\}\) \(\lambda\) \(\lambda\)

3.7 La distribuzione normale standard

La distribuzione normale standard è una distribuzione di probabilità continua con spazio campionario \(S = (-\infty, +\infty)\), media \(\mu = 0\) e deviazione standard \(\sigma = 1\).

  • Un evento è un qualsiasi intervallo di valori: ad esempio \(Z \geq 2\)
  • La probabilità di quell’evento è l’area sotto la curva in quell’intervallo
  • L’area totale sotto la curva è uguale a 1

Esempio: l’area tra \(z = -1\) e \(z = +1\) è circa \(0.68\): il 68% dei soggetti cade in questo intervallo.

3.7.1 Dal punteggio Z alla probabilità

Se un punteggio PSWQ ha \(z \geq 2\) e ci chiediamo quanto sia raro ottenere un punteggio del genere: dobbiamo calcolare l’area sotto la curva a destra di \(z = 2\). Quella area è la probabilità: \(P(Z \geq 2) \approx 0.023\).

Solo il 2.3% della popolazione rientra in quella zona critica.

3.8 Distribuzioni di probabilità in R

In R sono disponibili quattro funzioni per ogni distribuzione di probabilità:

  • d*: calcola la massa di probabilità (discrete) o la densità (continue)
  • p*: calcola la probabilità cumulata \(P(X \leq q)\) dato un quantile
  • q*: calcola il quantile dato un livello di probabilità cumulata
  • r*: genera un campione casuale dalla distribuzione

dove * è il nome della distribuzione in R (es. norm, binom, t, …).

Distribuzione Tipo Nome R
Binomiale discreta binom
Poisson discreta pois
Uniforme continua unif
Normale continua norm
t di Student continua t

3.8.1 Funzioni per la distribuzione normale

Funzione Cosa calcola
dnorm(x, mean, sd) Densità in \(x\) (altezza della curva, non una probabilità)
pnorm(q, mean, sd) \(P(X \leq q)\) — area a sinistra di \(q\)
qnorm(p, mean, sd) Il valore \(x\) tale che \(P(X \leq x) = p\)
rnorm(n, mean, sd) Genera \(n\) valori casuali dalla Normale
dnorm()

dnorm() restituisce la densità in un punto, cioè l’altezza della curva. Per le distribuzioni continue, la densità non è una probabilità: la probabilità di un singolo valore esatto è sempre zero.

Per le distribuzioni discrete (es. Binomiale), dbinom() restituisce invece una vera probabilità: \(P(X = x)\).

# Probabilità di punteggio >= 60, con mu=40, sd=10
pnorm(60, mean = 40, sd = 10, lower.tail = FALSE)
[1] 0.02275013
# Probabilità di punteggio compreso tra 30 e 50
pnorm(50, mean = 40, sd = 10) - pnorm(30, mean = 40, sd = 10)
[1] 0.6826895
# Quale punteggio corrisponde al 95° percentile?
qnorm(0.95, mean = 40, sd = 10)
[1] 56.44854

4 Test

British Psychological Society

A psychological test is any procedure on the basis of which inferences are made concerning a person’s capacity, propensity or liability to act, react, experience, or to structure or order thoughts or behaviours in particular ways.

Australian Psychological Society

A psychological test is a set of standard items or stimuli, the responses to which form the basis for an inference which goes beyond item content and for which psychologists accept ethical responsibility in professional use.

In comune

Andare oltre le risposte osservate per fare inferenza su delle variabili che non si possono osservare direttamente (variabili latenti)

I test misurano alcuni aspetti del comportamento attraverso metodi di somministrazione, di scoring e di interpretazione altamente standardizzati e controllati. I comportamenti vengono registrati e interpretati secondo le procedure specifiche di ogni test \(\rightarrow\) vengono espressi sinteticamente in un indice numerico.

Possono misurare diversi aspetti della persona:

  • Emozioni, personalità, atteggiamenti ecc. → test di prestazione tipica
  • Intelligenza, abilità → test di prestazione massima

Queste caratteristiche possono essere distinte in:

  • Tratti: caratteristiche stabili della persona che difficilmente mutano con il tempo (o che richiedono molto tempo per cambiare)
  • Stati: caratteristiche transitorie elicitate da particolari situazioni

4.1 Perché i test?

La somministrazione di stimoli/domande standard predefiniti riduce gli effetti di distorsione dovuti ad elementi estranei.

L’analisi delle risposte è un processo aperto e standardizzato \(\rightarrow\) replicabile da chiunque.

I test sono (devono essere):

  • Affidabili: Costanti nella loro prestazione
  • Validi: Misurano quello che dicono di misurare e non altro

4.2 Come è fatto un test?

  • Manuale: Contiene i riferimenti teorici (quadro teorico di riferimento) entro cui è stato sviluppato il test, le informazioni circa la popolazione target e il campione rappresentativo e normativo, le procedure utilizzate per lo sviluppo, le istruzioni di somministrazione, registrazione delle risposte, le procedure da usare per lo scoring e le norme per la trasformazione dei punteggi grezzi in punteggi standardizzati
  • Materiale stimolo: Le domande/gli stimoli
  • Foglio di notazione: per registrare le risposte
  • Griglia per la correzione: come ottenere i punteggi

4.3 A cosa servono?

I test servono a ottenere dai soggetti delle prestazioni nella situazione contingente (attenzione!). A partire da quelle prestazioni si dovrebbe poter arrivare a una generalizzazione al comportamento fuori dalla situazione sperimentale, permettendo quindi previsioni relative alla vita quotidiana.

In particolare, servono a:

  • Fare valutazioni (rispetto a diversi costrutti)
  • Fare diagnosi (sono uno degli strumenti che supportano la diagnosi; il test in sé non fa la diagnosi)
  • Prendere delle decisioni

4.3.1 Dove si usano?

Ambito educativo

Test di intelligenza, test di profitto. Possono aiutare a migliorare la progettazione didattica o a individuare studenti con particolari difficoltà (o con particolari talenti → plusdotazione).

Ambito sanitario

Fini diagnostici e di cura. Non solo intelligenza, ma anche aspetti legati alla personalità, all’emotività.

Ambito organizzativo

Screening del personale attraverso (spesso) test di intelligenza e test specifici per l’azienda.

4.4 Come si costruisce un test?

4.4.1 Fase I: Sviluppo

  • Definizione chiara del costrutto che si vuole misurare ed esplicitazione del quadro di riferimento teorico e metodologico
    • Cosa va incluso/escluso dal dominio di contenuto del costrutto
    • Sfaccettature e dimensioni del costrutto (aspetto — frequenza/intensità —, modalità — pensiero, comportamento —, tempo, situazioni)
  • Individuazione degli indicatori → definizione del dominio di contenuto del test
  • Formalizzazione degli stimoli

4.4.2 Fase II: Validazione

Studio preliminare

Somministrazione “pilota” a un campione di soggetti (\(n \approx 100\)).

Analisi preliminari delle statistiche descrittive degli item e del punteggio totale al test, ad esempio:

  • Verifica delle ridondanze tra gli item
  • Risposte mancanti
  • Commenti riferiti dai soggetti stessi
Studio esplorativo

Esplorazione della dimensionalità del test e della coerenza interna degli item.

Somministrazione della versione rifinita al passo precedente a un campione più ampio (\(n \approx 200\)).

Analisi esplorativa della struttura fattoriale della scala (Quante dimensioni latenti ci sono?) → Exploratory Factor Analysis. La dimensionalità del tratto latente è ricavata dalla variabilità nei dati.

Quante dimensioni latenti sono necessarie per spiegare la variabilità osservata nei dati?

Studio confermativo

Viene studiata la dimensionalità della struttura trovata allo step precedente per capire quanto questa sia replicabile e viene investigata la validità esterna della misura.

Somministrazione della versione definitiva a un altro campione (\(n \approx 200\)).

Analisi confermativa della struttura fattoriale → Confirmatory Factor Analysis. La dimensionalità del tratto latente è stabilita a priori, così come le relazioni tra item e tratto latente.

Il modello fattoriale è adatto a spiegare la variabilità tra i dati?

Standardizzazione e taratura

Il campione deve essere rappresentativo della popolazione target e deve essere estremamente ampio (nell’ordine delle migliaia).

Standardizzazione dei punteggi:

  • Percentili
  • Punteggi standardizzati, ad esempio:
    • Punti \(z\): \(z_i = \dfrac{x_i - \mu}{\sigma}\)
    • Punti \(T\): \(T_i = 50 + 10z_i\)

Produzione delle tavole di conversione grezzi–standardizzati.

4.5 Tipi di test

4.5.1 Prestazione Massima

Definizione

Misura quanto una persona sa fare nelle migliori condizioni possibili o quanto una persona conosca di un determinato ambito.

Questo presuppone che le domande abbiano una risposta corretta.

Riguardano risorse cognitive, abilità, intelligenza.

Alcune caratteristiche:

  • Esiste una risposta corretta (e.g., Matrici di Raven) o una risposta più corretta delle altre (e.g., Situational Judgment Test)
  • L’accuratezza e/o la velocità complessiva sono la misura da cui parte l’inferenza per il costrutto latente
  • Richiedono che la persona sia concentrata e svolga uno sforzo cognitivo attivo per la loro compilazione
  • Possono avere un limite di tempo

In caso di test a risposta chiusa, l’item è composto da:

  • Item stem: La domanda a cui dare una risposta, fornisce lo stimolo di partenza
  • Le alternative di risposta:
    • La risposta corretta (una sola)
    • Il o i distrattori, ovvero delle risposte errate

Possono essere utilizzati per la selezione del personale:

  • Matrici di tipo Raven (valutazione dell’intelligenza fluida e del ragionamento astratto)
  • Situational Judgment Test (SJT): Scenario lavorativo credibile dove viene presentata una criticità e la persona deve trovare la strategia risolutiva migliore
Validità e sviluppo SJT

La validità concerne principalmente il tipo di scenario più che la metodologia in sé.

Lo sviluppo richiede l’analisi e conoscenza approfondita delle dinamiche aziendali e dei vari problemi emersi, da cui sviluppare gli scenari ipotetici con le possibili strategie risolutive.

4.5.2 Prestazione Tipica

Definizione

Misura come una persona pensa/sente/si comporta in situazioni tipiche.

Esistono solo risposte personali che non sono né corrette né errate.

Riguardano tratti di personalità, atteggiamenti, motivazioni, sistemi di valori (ecc.).

Alcune caratteristiche:

  • Nessuna risposta giusta o sbagliata
  • Basati sulla capacità introspettiva della persona: lo sforzo richiesto è rivolto verso sé stessi
  • In alcuni casi, le persone possono mentire (desiderabilità sociale)
  • Scale di risposta con vari formati, tutti ugualmente accettabili

Test di personalità, questionari per la valutazione degli atteggiamenti, opinioni ecc.

4.5.3 Confronto

Caratteristica Prestazione massima Prestazione tipica
Cosa misura Abilità Tratti e comportamenti
Risposte corrette No
Sforzo richiesto Alto e intenzionale Riflessivo/auto-descrittivo
Esempi Test cognitivi Questionari di personalità
Uso in azienda Selezione capacità Fit organizzativo

4.6 Scale di risposta

4.6.1 Item Vero/Falso

Sono item formulati in modo che l’unica possibile risposta possa essere Sì/No o Vero/Falso.

Mi commuovo quando vedo un film drammatico.

  • No
Vantaggi

Sono estremamente facili da comprendere per chiunque.

Svantaggi

La scala di risposta potrebbe essere troppo riduttiva e particolarmente complessa per certe tipologie di persone.

Usati sia per prestazione tipica sia massima.

4.6.2 Item a scelta multipla forzata

Preferisco un lavoro nel quale:

  1. Posso crescere come persona
  2. Posso guadagnare bene
  3. Posso imparare cose nuove

Le opzioni di risposta sono realmente ordinabili? Sono anche solo comparabili?

Narcissistic Personality Inventory
  1. Non sono né meglio né peggio di altre persone
  2. Penso di essere una persona speciale

Una persona con un alto livello di narcisismo ha più probabilità di scegliere la seconda opzione.

In prestazione massima sono i tipici item a risposta multipla.

4.6.3 Rating Scales (Scale Likert)

L’evoluzione delle scale con item Sì/No o Vero/Falso \(\rightarrow\) aggiunta di livelli intermedi.

Summating rating scales: Scale composte da diverse domande (item) il cui punteggio totale è ottenuto attraverso la somma dei punteggi alle valutazioni fornite ad ogni item.

Assunzione

Il costrutto latente si muove lungo un continuum sottostante alle opzioni di risposta, ovvero è possibile dare una quantità alla variabile psicologica misurata a seconda dell’opzione di risposta scelta.

Esempio: Esprimere il proprio livello di accordo con l’affermazione “Sono una persona organizzata”:

\[\text{Per niente d'accordo} \quad \square \quad \square \quad \square \quad \square \quad \square \quad \text{Completamente d'accordo}\]

L’assunzione è che il livello di accordo con l’affermazione vari lungo un continuum delimitato dagli ancoraggi “Per niente d’accordo” e “Completamente d’accordo”.

4.6.4 Visual Analogue Scale (VAS)

Molto utilizzate anche in psicologia dello sviluppo. Prevedono una linea continua su cui la persona indica la propria risposta segnando un punto.

4.6.5 Domini delle rating scales

Accordo

Indicare il grado di accordo con un’affermazione.

Esempio: Sono una persona organizzata

\[\text{Per niente d'accordo} \qquad — \qquad \text{Completamente d'accordo}\]

Intensità

Dare una valutazione vera e propria rispetto a un argomento in termini di buono/cattivo, insufficiente/sufficiente, importante/non importante, ecc.

Esempio: Indicare il proprio livello di competenze informatiche

5 = alto; 4 = medio-alto; 3 = medio; 2 = medio-basso; 1 = basso

Frequenza

Indicare la frequenza con cui vengono messi in atto i comportamenti o vengono sperimentati i vissuti descritti dall’item.

Esempio: Nell’ultimo anno, mi sono sentito ansioso:

Mai — Raramente — Qualche volta — Spesso — Sempre

Attenzione! Cosa vuol dire “Spesso”? E “Qualche volta”? Vogliono dire la stessa cosa per tutti?

4.6.6 Quanti punti?

Come regola generale, più è alto il numero di punti della scala, maggiore è poi l’attendibilità della misura.

Solitamente si considerano scale con un numero di punti tra 4 e 7. Più di 7 punti sono “inutili”.

Numero dispari o numero pari di punti?

Un numero dispari di punti permette l’alternativa neutra:

  • Ci sono casi (e.g., valutazione di soddisfazione per un servizio) dove ha senso avere un’alternativa neutra
  • In altri casi (e.g., valutazione degli atteggiamenti verso un gruppo sociale) l’alternativa neutra funge da “rifugio” per non sbilanciarsi

4.6.7 Criticità

Acquiescienza

Essere sistematicamente d’accordo con le affermazioni proposte dagli item.

Estremismo

Scegliere sempre le risposte estreme.

Evasività

Scegliere sempre i punti centrali della scala o le risposte “Non so”.

Desiderabilità sociale

Rispondere in modo da mostrarsi delle belle persone sempre e comunque.

4.7 Attendibilità

Grado in cui una procedura di misurazione produce lo stesso risultato in prove ripetute.

\[X = V + E\]

dove:

  • \(X\): misura rilevata
  • \(V\): parte vera
  • \(E\): errore — fluttuazioni casuali oppure costante e sistematico

L’attendibilità di una misura è la proporzione di \(X\) che non riflette l’errore di misurazione:

\[\rho = \dfrac{V}{V + E}\]

4.7.1 Proprietà dell’errore casuale

  • La media degli errori è 0: \((+2) + (-1) + (+1) + (-2) = 0\)
  • La correlazione fra punteggio vero ed errore è zero (l’errore cambia sempre indipendentemente e imprevedibilmente)
  • La correlazione fra errore e punteggio vero alla misurazione successiva è zero (l’errore alla prima misurazione non influenza l’errore alla seconda misurazione)
  • La correlazione fra errori di misurazioni diverse è zero (ogni errore è unico)

Quando l’errore va sempre dalla stessa parte, è sistematico (bias).

4.8 Validità

4.8.1 Validità di costrutto

Quello che si sta misurando… è proprio quello che si voleva misurare e non altro!

Elementi utili per la validità di costrutto:

  • Chiara definizione del costrutto teorico
  • Misurare il costrutto con metodi differenti

Convergente: La misura di interesse correla con misure che misurano lo stesso costrutto o costrutti simili.

Esempio: La leadership misurata con un nuovo questionario correla fortemente con la leadership misurata con il gold standard.

Divergente/Discriminante: La misura di interesse NON correla con misure che misurano costrutti diversi.

Esempio: La nuova misura della leadership non correla con una misura per la mindfulness.

4.8.2 Validità Statistica

Quello che stiamo inferendo a partire dalle analisi ha senso perché le analisi hanno senso!

Elementi utili per la validità statistica:

  • Appropriatezza dei metodi statistici utilizzati sulla base delle variabili misurate
  • Adeguatezza dell’ampiezza campionaria

4.8.3 Validità Interna

I risultati osservati in uno studio riflettono realmente l’effetto della variabile indipendente sulla variabile dipendente, senza essere distorti da fattori confondenti.

Elementi utili per la validità interna:

  • Controllo di fattori esterni e variabili confondenti
  • Disegni sperimentali appropriati (randomizzazione, gruppo di controllo)
  • Misurazioni valide e attendibili

4.8.4 Validità Esterna

Il grado in cui i risultati sono rappresentativi della popolazione di interesse e il grado in cui sono replicabili.

Elementi utili per la validità esterna:

  • Il campione è rappresentativo della popolazione target
  • La validità ecologica

Esempio: Il nuovo questionario per la leadership è stato somministrato a un campione di studenti e studentesse universitari. I risultati sono generalizzabili alla popolazione degli studenti iscritti al corso di studio, NON per la popolazione dei manager aziendali.

4.8.5 Validità Ecologica

Rappresenta la generalizzabilità dei risultati di una ricerca a quella che è la vita quotidiana.

I dati raccolti devono essere rappresentativi del comportamento dell’individuo nella sua realtà abituale.

Il problema degli esperimenti di laboratorio, dei questionari, degli scenari: non sono la vita reale. Il laboratorio fornisce la possibilità di avere un alto controllo rispetto alle manipolazioni sperimentali e alle variabili confondenti. Tuttavia è un ambiente molto lontano dall’ambiente in cui le persone agiscono normalmente.

5 Dimensionalità

5.1 BFI: Scoring

Il Big Five Inventory (BFI) misura cinque dimensioni della personalità:

Dimensione Item
Estroversione (8 item) item01, item06, item11, item16, item21, item26, item31, item36
Gradevolezza (9 item) item02, item07, item12, item17, item22, item27, item32, item37, item42
Coscienziosità (9 item) item03, item08, item13, item18, item23, item28, item33, item38, item43
Nevroticismo (8 item) item04, item09, item14, item19, item24, item29, item34, item39
Apertura all’esperienza (10 item) item05, item10, item15, item20, item25, item30, item35, item40, item41, item44

Gli item in grassetto sono gli item reverse.

5.2 Item Reverse

Item straight

Sono item il cui contenuto è formulato nella direzione del costrutto.

A punteggi alti nell’item sono verosimilmente associati livelli alti del costrutto.

Item Reverse

Sono item il cui contenuto è formulato nella direzione opposta al costrutto.

A punteggi bassi nell’item sono verosimilmente associati livelli alti del costrutto.

Esempio (Estroversione):

  • I01: è loquaceitem straight; punteggio: 5
  • I21: tende ad essere taciturnaitem reverse; punteggio: 1

L’item 21 è un item reverse!

5.2.1 Tipologie di item reverse

Polar opposite

Nell’item reverse viene utilizzato un termine che è concettualmente contrario al termine usato nell’item straight.

Negated regular

Nell’item reverse viene aggiunta la negazione sul termine usato nell’item straight.

Negated polar opposite

Nell’item reverse viene aggiunta la negazione al termine che è concettualmente contrario al termine usato nell’item straight.

La doppia negazione implica che l’item reverse stia affermando la stessa identica cosa dell’item straight.

Esempio: Io mi vedo come una persona che… LAVORA IN MODO ACCURATO

  • Polar opposite: Lavora in modo inaccurato
  • Negated regular: Lavora in modo non accurato
  • Negated polar opposite: Lavora in modo non inaccurato

5.2.2 Reversione della scala

Scala a 5 punti:

1 2 3 4 5
Straight 1 2 3 4 5
Reverse 5 4 3 2 1

Scala a 7 punti:

1 2 3 4 5 6 7
Straight 1 2 3 4 5 6 7
Reverse 7 6 5 4 3 2 1

5.2.3 Pro e contro degli item reverse

Pro
  • Obbligano le persone a rallentare nella compilazione e leggere con attenzione l’item per comprenderlo
  • A posteriori, permettono di identificare le persone che hanno risposto a caso al questionario
Contro
  • Le negazioni sono più difficili da comprendere (specie le doppie negazioni)
  • Non sempre si può trovare il polar opposite, per cui la negazione è “d’obbligo”
  • Potrebbero non misurare il costrutto nello stesso modo dell’item straight

5.3 Analisi degli item

5.3.1 Difficoltà degli item

Item dicotomici

La difficoltà è semplicemente la proporzione di risposte corrette a un item:

\[p_i = \frac{1}{N} \sum_{n=1}^{N} Y_{ni}\]

dove \(N\) è il totale dei rispondenti e \(Y_{ni} \in \{0,1\}\).

Più correttamente, \(p_i\) rappresenta la facilità dell’item, per cui la difficoltà è stimata come \(1 - p_i\).

Item politomici

La difficoltà corrisponde al punteggio medio osservato su ogni item:

\[p_i = \frac{1}{N} \sum_{n=1}^{N} Y_{ni}\]

dove \(Y_{ni} \in \{1, 2, \ldots, K\}\) e \(K\) sono le categorie di risposta dell’item. La difficoltà è quindi la tendenza media dell’item.

La difficoltà degli item dipende dal campione di rispondenti considerato, ovvero dal livello latente di abilità delle persone sotto osservazione. Questo vuol dire che non è una qualità assoluta degli item.

5.3.1.1 Item dicotomici: variabilità

La deviazione standard per ogni item è:

\[s_i = \sqrt{p_i(1-p_i)}\]

Per cui la variabilità è massima quando \(p_i = .50\).

5.3.1.2 Item politomici: difficoltà normalizzata

Il punteggio medio per ogni item \(p_i\) è una buona stima della difficoltà. Per rendere però i punteggi comparabili, si “corregge” il punteggio dell’item considerando il valore massimo e minimo ottenibile teoricamente:

\[\pi_i = \dfrac{p_i - \min(Y_i)}{\max(Y_i) - \min(Y_i)}\]

È possibile anche dicotomizzare:

Proporzione del punteggio massimo

\[\pi_i = \dfrac{1}{n} \sum_{n = 1}^{N}Y_{pi} = \max(Y_i)\]

La difficoltà è la proporzione di persone che hanno scelto il punteggio massimo.

Proporzione \(Y_i \geq k_i\)

\(k_i\) è un valore di cut-off deciso arbitrariamente (può essere la media, la mediana, un punto a caso):

\[\pi_i = \dfrac{1}{n}\sum_{n = 1}^{N} Y_{pi} = Y_{pi} \geq k_i\]

5.3.2 Discriminatività

Con discriminatività di un item si intende la sua capacità di distinguere tra rispondenti con livelli alti e bassi di tratto latente.

La misura “prediletta” è la correlazione item-totale (meglio item totale corretta).

Attenzione!

Assume che il tratto misurato sia unidimensionale.

Come la difficoltà, dipende dal campione. Maggiore è l’eterogeneità dei livelli di abilità delle persone, maggiore è la capacità discriminativa degli item.

5.3.2.1 Correlazione item-totale corretta

Se si considera la correlazione tra ogni singolo item e il punteggio totale, calcolato come somma dei punteggi a ogni item, sarà sempre positiva.

Per questo si utilizza la correlazione “corretta”, ovvero senza l’item incluso nel totale \(T_{n(-i)} = \sum_{j \ne i} Y_{nj}\):

\[r_{i,\mathrm{tot}(-i)} = \frac{\sum_{n=1}^{N} (Y_{ni} - \bar{Y}_i)(T_{n(-i)} - \overline{T_{(-i)}})}{\sqrt{\sum_{n=1}^{N} (Y_{ni} - \bar{Y}_i)^2} \sqrt{\sum_{n=1}^{N} (T_{n(-i)} - \overline{T_{(-i)}})^2}}\]

Per item dicotomici si applica la correlazione punto-biseriale:

\[r_{pb,i}^{*} = \frac{\bar{T}_{1(-i)} - \bar{T}_{0(-i)}}{s_{T(-i)}} \sqrt{p_i q_i}\]

dove di nuovo il totale è calcolato escludendo un item alla volta.

5.3.3 Analisi dei distrattori

La risposta corretta è sempre il focus dell’analisi, ma la difficoltà e discriminatività di ogni item dipendono anche da come sono strutturati i distrattori.

I distrattori non devono mai essere più probabili della risposta corretta, né deve esserci un distrattore più scelto degli altri o meno scelto degli altri.

Ci si aspetta che i distrattori vengano scelti in maniera uniforme, ovvero abbastanza a caso.

Questa analisi si può fare sia considerando il campione nella sua totalità sia considerando diversi gruppi di rispondenti, suddivisi a seconda del punteggio totale osservato.

5.3.4 Analisi dei missing

L’analisi dei missing permette di indagare più a fondo la validità degli item e del test. Questa analisi permette di capire se la lunghezza del questionario è adeguata (solo se la somministrazione degli item non è randomizzata) o se gli item hanno delle formulazioni che non permettono di dare una risposta.

Rule of thumb

Se un item ha circa più del 5% di risposte missing dovrebbe essere ricontrollato ed eventualmente eliminato.

5.4 Correlazione

Tra gli scopi di una validazione di test, si vuole trovare il numero delle dimensioni non osservate (i fattori latenti) che permettono di raggruppare tra di loro gli item in base alle loro similarità.

Un esempio

Triste, Artistic3, Curios3, Inventiv3, Loquace, Stressat3, Ansios3, Socievole, Energic3

Come potrebbero raggrupparsi? Cosa potrebbero indicare?

L’assunzione sottostante è che item con contenuto simile tendono a ricevere risposte simili.

La correlazione è una misura della similarità tra gli item: più gli item hanno un contenuto simile, più le correlazioni tra i loro punteggi dovrebbero essere simili.

5.4.1 Correlazione di Pearson

\[r_{ij} = r_{Y_i Y_j} = \frac{\operatorname{Cov}(Y_i, Y_j)}{\sigma_{Y_i}\,\sigma_{Y_j}} = \frac{\sum_{m=1}^{N} (y_{mi} - \bar{y}_i)(y_{mj} - \bar{y}_j)}{\sqrt{\sum_{m=1}^{N} (y_{mi} - \bar{y}_i)^2} \,\sqrt{\sum_{m=1}^{N} (y_{mj} - \bar{y}_j)^2}}\]

dove \(r_{ij}\) è la correlazione per ogni coppia di item \((i,j)\) e \(m\) è l’indice del soggetto.

La correlazione di Pearson va bene quando si hanno item con distribuzioni quasi normali. Peccato che gli item siano quasi sempre misurati su scala Likert!

Rules of thumb

Considerando \(k\) come numero di categorie di risposta:

  1. Se \(k \geq 5\): La correlazione di Pearson potrebbe essere adeguata, dati alcuni controlli circa la linearità e normalità della distribuzione delle risposte alle coppie di item
  2. Se \(k \leq 4\): Pearson rischia di portare stime distorte:
    • \(k = 2\): Correlazione tetracorica
    • \(2 < k \leq 4\): Correlazione policorica

Skewness e Kurtosis sono indici fondamentali per fare inferenze circa la normalità delle distribuzioni:

  • MPlus User guide (raccomandazioni più rigide): Sk e Ku \(\in [-1, +1]\)
  • Curran, West e Finch: Sk \(\in [-2, +2]\); Ku \(\in [-7, +7]\)

5.4.2 Correlazione Tetracorica

Per variabili dicotomiche (e.g., vero vs. falso), non ha senso calcolare la correlazione di Pearson.

Le risposte agli item \(Y_i\) sono la realizzazione di una variabile latente \(Y_i^*\):

  • \(Y_i^*\) è continua e distribuita normalmente; \(Y_i\) no!

\[Y_i = \begin{cases} 1 & \text{se } Y_i^* \geq \tau_i \\ 0 & \text{se } Y_i^* < \tau_i \end{cases}\]

dove \(\tau_i\) è una soglia fissa (incognita) da cui dipende la risposta positiva.

\[r_{\text{tet}_{Y_i Y_j}} = r_{Y_i^* Y_j^*}\]

Punto di partenza: la tabella di contingenza \(2 \times 2\):

\(Y_j = 0\) \(Y_j = 1\) Totale
\(Y_i = 0\) \(n_{00}\) \(n_{01}\) \(n_{0\bullet}\)
\(Y_i = 1\) \(n_{10}\) \(n_{11}\) \(n_{1\bullet}\)
Totale \(n_{\bullet0}\) \(n_{\bullet1}\) \(n\)

La correlazione tetracorica è calcolata a partire dai valori marginali della tabella:

\[r_{\text{tet}_{Y_i, Y_j}} \approx \cos \left(\dfrac{\pi}{1+ \sqrt{\dfrac{\hat{\pi}_{00}\hat{\pi}_{11}}{\hat{\pi}_{10}\hat{\pi}_{01}}}}\right)\]

Call: tetrachoric(x = table(lsats6$Q3, lsats6$Q4))
tetrachoric correlation 
[1] 0.19

 with tau of 
    0     0 
-0.13 -0.72 

Rappresentazione grafica della correlazione tetracorica

Le soglie \(\tau\) esprimono il livello di costrutto che bisogna possedere (sul tratto latente non osservato) per dare una risposta corretta

In questo caso, la correlazione è positiva, non molto forte. Per osservare una risposta corretta al primo item bisogna avere un livello latente di almeno \(-0.13\), per il secondo item \(-0.72\). Entrambi gli item sono poco sotto la media \(0\), per cui si potrebbe pensare che sono item a cui è abbastanza semplice rispondere.

5.4.3 Correlazione Policorica

È la metodologia più appropriata per calcolare le correlazioni tra item misurati su scala Likert con \(k\) categorie.

Come per la tetracorica, le risposte agli item \(Y_i\) sono la realizzazione di una variabile latente \(Y_i^*\):

\[Y_i = \begin{cases} 0 & \text{se } Y_i^* < \tau_{i,0} \\ k & \text{se } \tau_{i, k-1} \leq Y_i^* \leq \tau_{i, k} \end{cases}\]

con \(k = 1, \ldots, K_i\).

La correlazione tra i punteggi degli item è stimata sulla variabile latente continua sottostante. Le soglie associate ad ogni categoria per ogni item vengono stimate insieme alla correlazione.

Rappresentazione grafica della correlazione policorica

6 Analisi Fattoriale - FA

(a) Da questo
(b) A questo
Figura 1: Trovare la causa comune

6.1 Scopo

  • Raggruppare le variabili ossevate (gli item) in una serie di variabili latenti (fattori) sulla base della loro correlazione
  • Inferire quanti sono i fattori latenti necessari per spiegare la variabilità nei dati
  • Trovare quali variabili osservate vadano su quale fattore latente
  • Stabilire la forza della relazione tra le variabili osservate e il fattore latente
  • Ricavare il punteggio latente di ogni persona, ovvero il loro livello di costrutto
Exploratory Factor Analysis (EFA)

Quanti e quali dimensioni latenti si devono utilizzare per spiegare le covariazioni tra le variabili osservate?

Sono i dati che guidano la scelta delle dimensioni latenti

Confirmatory Factor Analysis (CFA)

Esiste un modello teorico rispetto a quanti fattori latenti sono coinvolti, sulla loro relazione tra loro e con le variabili osservate

Viene testato un modello teorico per vedere se si conforma ed è in grado di spiegare le variazioni nei dati

Le saturazioni (factor loadings) esprimono la correlazione tra l’item e il fattore latente (elevate al quadrato: varianza spiegata dal fattore per i punteggi osservati negli item)

7 Analisi Fattoriale Esplorativa - EFA

# se non avete il pacchetto -> install.packages("nomepacchetto")
# e poi...
library(psych)
library(corrplot)
library(ggplot2)
library(patchwork)
library(tidyverse)
library(lavaan)

# impostazione grafica 
set_theme(theme_bw(base_size = 14))
Simbolo Significato
\(n\) Numero di soggetti
\(s\) Indice del soggetto (\(s = 1, \ldots, n\))
\(p\) Numero di item (variabili osservate)
\(i\) Indice dell’item generico (\(i = 1, \ldots, p\))
\(k\) Secondo indice di item, usato nelle formule di covarianza tra coppie (\(k \neq i\))
\(Y_{si}\) Risposta del soggetto \(s\) all’item \(i\)
\(m\) Numero di fattori comuni (\(m \ll p\))
\(j\) Indice del fattore (\(j = 1, \ldots, m\))
\(\mu_i\) Intercetta (media) dell’item \(i\)
\(\theta_{sj}\) Punteggio latente del soggetto \(s\) sul fattore \(j\)
\(\lambda_{ij}\) Saturazione fattoriale dell’item \(i\) sul fattore \(j\)
\(\varepsilon_{si}\) Errore specifico del soggetto \(s\) sull’item \(i\)
\(\psi_i\) Varianza dell’errore specifico dell’item \(i\) (unicità)
\(h_i^2\) Comunalità dell’item \(i\)
\(\mathbf{R}\) Matrice di correlazione osservata (\(p \times p\))
\(\hat{\mathbf{R}}\) Matrice di correlazione riprodotta dal modello
\(\boldsymbol{\Lambda}\) Matrice dei loading (\(p \times m\))
\(\boldsymbol{\Phi}\) Matrice di correlazione tra i fattori (\(m \times m\); \(= \mathbf{I}\) se ortogonali)
\(\boldsymbol{\Psi}\) Matrice diagonale delle unicità (\(p \times p\))

7.0.1 Introduzione

La matrice di correlazione policorica dei 25 item mostra una struttura a blocchi: gli item della stessa scala correlano molto tra loro, mentre le correlazioni tra scale diverse sono più basse.

La domanda centrale è: perché questi blocchi emergono?

L’analisi fattoriale esplorativa parte da una matrice di correlazioni \(p \times p\) tra \(p\) variabili osservate e cerca una matrice \(p \times m\) di saturazioni fattoriali (\(\lambda\)) che spieghi le correlazioni tramite \(m \ll p\) fattori comuni latenti.

7.0.2 Il modello monofattoriale

Gli item non correlano direttamente tra loro, ma perché sono tutti influenzati da una stessa variabile latente (il fattore \(\theta\)).

Per \(i = 1, \ldots, p\) item e \(s = 1, \ldots, n\) soggetti, il modello monofattoriale è:

\[ Y_{si} = \mu_i + \lambda_i \,\theta_s + \varepsilon_{si} \]

dove:

  • \(\mu_i\) è l’intercetta dell’item \(i\);
  • \(\theta_s\) è il punteggio latente del soggetto \(s\) sul fattore comune;
  • \(\lambda_i\) è la saturazione fattoriale dell’item \(i\): indica quanto fortemente il fattore influenza quell’item;
  • \(\varepsilon_{si}\) è l’errore specifico (tutto ciò che non appartiene al fattore comune).

Assunzione Notazione
(Convenzione) Item centrati e standardizzati \(\mathbb{E}(Y_i) = 0\)
Il fattore comune è standardizzato \(\mathbb{E}(\theta) = 0\), \(\mathbb{V}(\theta) = 1\)
Gli errori hanno media nulla e varianza \(\psi_i\) \(\mathbb{E}(\varepsilon_i) = 0\), \(\mathbb{V}(\varepsilon_i) = \psi_i\)
Errori tra loro incorrelati \(\mathrm{Cov}(\varepsilon_i, \varepsilon_k) = 0\) per \(i \neq k\)
Errori incorrelati con il fattore \(\mathrm{Cov}(\varepsilon_i, \theta) = 0\)

Date queste ipotesi, l’interdipendenza (cioè le correlazioni) fra le variabili osservate è interamente spiegata dal singolo fattore (indipendenza locale/indipendenza condizionale): una volta noto il valore del fattore \(\theta\), le risposte agli item non si influenzano a vicenda, \[P(Y_i, Y_k \mid \theta) = P(Y_i \mid \theta) \cdot P(Y_k \mid \theta).\]

Esempio


La correlazione tra due item è spuria: nasce perché entrambi dipendono da \(\theta\).

La relazione tra consumo di gelati e violenza, ad esempio, è dovuta alla causa comune “temperatura”, non a un legame diretto.

7.0.3 Comunalità e unicità

Sotto le assunzioni del modello, la varianza di \(Y_i\) si scompone in due parti:

\[ \underbrace{\mathbb{V}(Y_i)}_{= 1 \text{ se std.}} = \underbrace{h_i^2}_{\text{comunalità}} + \underbrace{\psi_i}_{\text{unicità}} \]

Unicità. Varianza non spiegata dai fattori comuni: \(\psi_i = 1 - h_i^2\)

Comunalità. Varianza spiegata dai fattori comuni: \(h_i^2 = \lambda_i^2\)

Comunalità - multifattoriale
  • Con \(m\) fattori ortogonali: \(h_i^2 = \sum_{j=1}^m \lambda_{ij}^2\).
  • Con \(m\) fattori correlati: \(h_i^2 = \boldsymbol{\lambda}_i \,\boldsymbol{\Phi}\, \boldsymbol{\lambda}_i^\mathsf{T},\)

con \({\lambda}_i = ({\lambda}_{i1},{\lambda}_{i2}, \dots, {\lambda}_{im})\) e \(\mathbf{\Phi}\) (matrice di correlazione \(m \times m\))

7.0.3.1 La tetrade

Spearman osservò che le prestazioni scolastiche (Classics, English, Math, …) correlano tutte tra loro, quindi ipotizzò l’estistenza di un fattore generale \(g\) (intelligenza) latente…

\[ \begin{array}{ccccc} \hline & y_c & y_e & y_m & y_p \\ \hline y_c & 1.00 & 0.78 & 0.70 & 0.66 \\ y_e & & 1.00 & 0.64 & 0.54 \\ y_m & & & 1.00 & 0.45 \\ y_p & & & & 1.00 \\ \hline \end{array} \]

Se esiste un fattore comune \(\theta\), allora \(y_i\) e \(y_k\), una volta controllato \(\theta\), devono risultare condizionalmente indipendenti. La correlazione parziale vale zero quando:

\[ r_{ik} = r_{i\theta} \cdot r_{k\theta} = \lambda_i \cdot \lambda_k \]

Questa condizione implica che ogni correlazione osservata è scomponibile come prodotto di due saturazioni.

set.seed(123)
n  <- 1000
f  <- rnorm(n, 24, 12) # fattore latente
y1 <- 10 + 7 * f + rnorm(n, 0, 50) # osservate funzione della latente
y2 <-  3 + 2 * f + rnorm(n, 0, 50)

Y  <- cbind(y1, y2, f) #variabili osservate e latente
round(cor(Y), 3)    # correlazioni semplici
      y1    y2     f
y1 1.000 0.380 0.867
y2 0.380 1.000 0.423
f  0.867 0.423 1.000
fm1 <- lm(y1 ~ f) # controllo per il fattore
fm2 <- lm(y2 ~ f)
round(cor(fm1$res, fm2$res), 3)   # correlazione parziale
[1] 0.028

La correlazione tra \(y_1\) e \(y_2\) era interamente dovuta all’effetto condiviso di \(f\).

Senza bisogno di guardare i residui, avendo le correlazioni tra una variabile comune \(f\) e tra le \(y\), la correlazione parziale si può ottenere:

\[ r_{12 \mid f} = \frac{r_{12} - r_{1f}\,r_{2f}}{\sqrt{(1 - r_{1f}^2)(1 - r_{2f}^2)}} \]

R <- cor(Y)
R
          y1        y2         f
y1 1.0000000 0.3799708 0.8673960
y2 0.3799708 1.0000000 0.4233576
f  0.8673960 0.4233576 1.0000000
# formula
(R[1, 2] - R[1, 3] * R[2, 3]) / 
  sqrt((1 - R[1, 3]^2) * (1- R[2, 3]^2)) 
[1] 0.02828618

Se \(r_{ij} = \lambda_i \lambda_j\) per ogni coppia, possiamo ricavare i loading dalle sole correlazioni osservate.

\[ \begin{array}{ccccc} \hline & y_c & y_e & y_m & y_p \\ \hline y_c & 1.00 & 0.78 & 0.70 & 0.66 \\ y_e & & 1.00 & 0.64 & 0.54 \\ y_m & & & 1.00 & 0.45 \\ y_p & & & & 1.00 \\ \hline \end{array} \]

Per tre variabili \(c\), \(e\), \(m\):

\[ \lambda_m = \sqrt{\frac{r_{cm} \cdot r_{em}}{r_{ce}}} \]

Applicando questa formula con diverse terne si ottengono stime multiple dello stesso loading:

\[ \hat\lambda_m = \sqrt{\frac{0.70 \times 0.64}{0.78}} \approx 0.76, \qquad \hat\lambda_m = \sqrt{\frac{0.78 \times 0.45}{0.66}} \approx 0.69, \qquad \hat\lambda_m = \sqrt{\frac{0.64 \times 0.45}{0.54}} \approx 0.73 \]

Se tutte le stime sono coerenti, il modello a un fattore è plausibile. Se divergono, servono almeno due fattori.

Assumi tre variabili \(c,e,m\). Dal modello a un fattore:

\[ r_{cm}=\lambda_c\lambda_m,\qquad r_{em}=\lambda_e\lambda_m,\qquad r_{ce}=\lambda_c\lambda_e. \]

Moltiplica le prime due:

\[ r_{cm}r_{em} = (\lambda_c\lambda_m)(\lambda_e\lambda_m) = \lambda_c\lambda_e\lambda_m^2. \]

Ora dividi per la terza:

\[ \frac{r_{cm}r_{em}}{r_{ce}} = \frac{\lambda_c\lambda_e\lambda_m^2}{\lambda_c\lambda_e} = \lambda_m^2, \]

quindi

\[ \lambda_m=\sqrt{\frac{r_{cm}r_{em}}{r_{ce}}}. \]

7.0.3.2 Struttura dei loadings

Formalmente, se hai \(p\) item e 1 fattore, la matrice dei loadings è un vettore colonna:

\[ \Lambda = \begin{bmatrix} \lambda_1\\ \lambda_2\\ \vdots\\ \lambda_p \end{bmatrix} \]

e quindi

\[ \Lambda \Lambda^\mathsf{T} = \begin{bmatrix} \lambda_1^2 & \lambda_1\lambda_2 & \cdots & \lambda_1\lambda_p\\ \lambda_2\lambda_1 & \lambda_2^2 & \cdots & \lambda_2\lambda_p\\ \vdots & \vdots & \ddots & \vdots\\ \lambda_p\lambda_1 & \lambda_p\lambda_2 & \cdots & \lambda_p^2 \end{bmatrix}. \]

La diagonale contiene le comunalità degli item, mentre fuori diagonale compaiono le covarianze riprodotte tra item.

Per ottenere la matrice di covarianza teorica del modello bisogna aggiungere la matrice delle unicità \(\Psi = \operatorname{diag}(\psi_1, \psi_2, \ldots, \psi_p)\):

\[ \Sigma = \Lambda \Lambda^\mathsf{T} + \Psi = \begin{bmatrix} \lambda_1^2 + \psi_1 & \lambda_1\lambda_2 & \cdots & \lambda_1\lambda_p\\ \lambda_2\lambda_1 & \lambda_2^2 + \psi_2 & \cdots & \lambda_2\lambda_p\\ \vdots & \vdots & \ddots & \vdots\\ \lambda_p\lambda_1 & \lambda_p\lambda_2 & \cdots & \lambda_p^2 + \psi_p \end{bmatrix}. \]

Il termine \(\psi_i\) rappresenta la varianza specifica (o unicità) dell’item \(i\), cioè la quota di varianza non spiegata dal fattore comune.

Elemento Formula Interpretazione
Diagonale \(\lambda_i^2 + \psi_i\) Varianza totale = comunalità + unicità
Fuori diagonale \(\lambda_i \lambda_j\) Covarianza riprodotta tra item \(i\) e \(j\)

Quindi \(\Lambda\Lambda^\mathsf{T}\) da sola riproduce correttamente le covarianze fuori diagonale, ma sulla diagonale contiene solo le comunalità \(\lambda_i^2\), ovvero la quota di varianza spiegata dal fattore comune. Aggiungere \(\Psi\) completa la decomposizione: varianza totale = parte comune + parte specifica.

Dato che le variabili sono standardizzate (varianza = 1), la matrice di correlazione riprodotta dal modello è:

\[ R = \Lambda \Lambda^\mathsf{T} + \Psi \]

con \(\psi_i = 1 - \lambda_i^2\) sulla diagonale, così che \(\sigma_{i} = \lambda_i^2 + (1 - \lambda_i^2) = 1\). Le correlazioni riprodotte fuori diagonale sono semplicemente \(\hat{r}_{ij} = \lambda_i \lambda_j\).

Spearman <- matrix(c(
  1.00, 0.78, 0.70, 0.66,
  0.78, 1.00, 0.64, 0.54,
  0.70, 0.64, 1.00, 0.45,
  0.66, 0.54, 0.45, 1.00
), byrow = TRUE, ncol = 4,
dimnames = list(c("C","E","M","P"), c("C","E","M","P")))

Spearman
     C    E    M    P
C 1.00 0.78 0.70 0.66
E 0.78 1.00 0.64 0.54
M 0.70 0.64 1.00 0.45
P 0.66 0.54 0.45 1.00
# funzione del pacchetto stats R base
fm <- factanal(covmat = Spearman, factors = 1) #specifico matrice e fattori
fm

Call:
factanal(factors = 1, covmat = Spearman)

Uniquenesses:
    C     E     M     P 
0.086 0.329 0.460 0.539 

Loadings:
  Factor1
C 0.956  
E 0.819  
M 0.735  
P 0.679  

               Factor1
SS loadings      2.587
Proportion Var   0.647

The degrees of freedom for the model is 2 and the fit was 0.023 

La somma dei quadrati delle saturazioni fornisce la varianza totale spiegata dal fattore:

\[ \sum_i \lambda_i^2 = \text{SS loadings} = 2.587 \]

Ciascun \(\lambda_i^2\) è la comunalità del singolo item: \(C^2 + E^2 + M^2 + P^2\), il risultato è visualizzato in SS loadings 2.587.

# loadings
C <- 0.956  
E <- 0.819  
M <- 0.735  
P <- 0.679  

# total variance
C^2 + E^2 + M^2 + P^2
[1] 2.585963

La Proportion Var ci dice quanto della varianza è spiegata dal fattore. Assumendo variabili standardizzate, la varianza totale attesa è \(4\) e quindi \(2.587 / 4 \approx 0.647\).

# proportion of variance
(C^2 + E^2 + M^2 + P^2)/4
[1] 0.6464908

La comunalità di ciascun item è \(h_i^2 = 1 - \text{uniqueness}\), cioè la quota di varianza spiegata dal/i fattore/i comuni.

Nel caso monofattoriale, coincide con \(\lambda_i^2\), quindi il loading si recupera come radice quadrata della comunalità.

comm <- 1 - fm$uniquenesses   # comunalità: quanto il fattore spiega quell'item?

tab <- data.frame(
  loading     = sqrt(comm),      # solo con 1 fattore!
  communality = comm,            # h² = λ²  (quota spiegata)
  uniqueness  = fm$uniquenesses  # ψ = 1 - h² (quota residua)
)

tab$prop_var_item <- comm / 4   # contributo di ciascun item
                                 # alla Proportion Var totale
tab
    loading communality uniqueness prop_var_item
C 0.9562592   0.9144316 0.08556841     0.2286079
E 0.8193894   0.6713990 0.32860098     0.1678498
M 0.7350297   0.5402686 0.45973140     0.1350671
P 0.6790257   0.4610759 0.53892412     0.1152690
# se sommo i contributi ho la varianza totale spiegata dal fattore
sum(tab$prop_var_item) 
[1] 0.6467938

Si può anche ricostruire esplicitamente la matrice di correlazione riprodotta \(\hat{R} = \Lambda\Lambda^\mathsf{T} + \Psi\) e confrontarla con quella osservata:

lambda <- sqrt(comm)  # vettore dei loadings (1 fattore)
Psi    <- diag(fm$uniquenesses)   # matrice diagonale delle unicità

R_hat <- lambda %*% t(lambda) + Psi  # matrice riprodotta

# aggiungo i nomi alle colonne e righe
rownames(R_hat) <- colnames(R_hat) <- c("C","E","M","P")

round(R_hat, 3)# correlazioni riprodotte dal modello
      C     E     M     P
C 1.000 0.784 0.703 0.649
E 0.784 1.000 0.602 0.556
M 0.703 0.602 1.000 0.499
P 0.649 0.556 0.499 1.000
round(Spearman - R_hat, 3)  # residui (differenze dalla matrice osservata)
       C      E      M      P
C  0.000 -0.004 -0.003  0.011
E -0.004  0.000  0.038 -0.016
M -0.003  0.038  0.000 -0.049
P  0.011 -0.016 -0.049  0.000

7.0.4 Il modello multifattoriale

Con \(m\) fattori comuni e \(p\) variabili, il modello è:

\[ \mathbf{Y}_s = \boldsymbol{\mu} + \boldsymbol{\Lambda}\,\boldsymbol{\theta}_s + \boldsymbol{\varepsilon}_s \]

In forma scalare: \[ Y_{si} = \mu_i + \lambda_{i1}\theta_{s1} + \cdots + \lambda_{im}\theta_{sm} + \varepsilon_{si} \]

La matrice di covarianza teorica risulta:

  • Fattori ortogonali (\(\boldsymbol{\Phi} = \mathbf{I}\)): \(\boldsymbol{\Sigma} = \boldsymbol{\Lambda}\boldsymbol{\Lambda}^\mathsf{T} + \boldsymbol{\Psi}\)

  • Fattori obliqui (\(\boldsymbol{\Phi} \neq \mathbf{I}\)): \(\boldsymbol{\Sigma} = \boldsymbol{\Lambda}\boldsymbol{\Phi}\boldsymbol{\Lambda}^\mathsf{T} + \boldsymbol{\Psi}\)

dove \(\boldsymbol{\Phi}\) è la matrice di correlazioni tra i fattori, e \(\boldsymbol{\Psi}\) la matrice diagonale delle unicità (\(p \times p\)).

7.0.4.1 Esempio applicato

Dati di 250 pazienti con 4 scale di Neuroticismo (N1–N4) e 4 di Estroversione (E1–E4).

Codice
varnames <- c("N1","N2","N3","N4","E1","E2","E3","E4")
cors <- '
  1.000
  0.767  1.000
  0.731  0.709  1.000
  0.778  0.738  0.762  1.000
 -0.351 -0.302 -0.356 -0.318  1.000
 -0.316 -0.280 -0.300 -0.267  0.675  1.000
 -0.296 -0.289 -0.297 -0.296  0.634  0.651  1.000
 -0.282 -0.254 -0.292 -0.245  0.534  0.593  0.566  1.000
'
psychot_cor_mat <- getCov(cors, names = varnames)
psychot_cor_mat
       N1     N2     N3     N4     E1     E2     E3     E4
N1  1.000  0.767  0.731  0.778 -0.351 -0.316 -0.296 -0.282
N2  0.767  1.000  0.709  0.738 -0.302 -0.280 -0.289 -0.254
N3  0.731  0.709  1.000  0.762 -0.356 -0.300 -0.297 -0.292
N4  0.778  0.738  0.762  1.000 -0.318 -0.267 -0.296 -0.245
E1 -0.351 -0.302 -0.356 -0.318  1.000  0.675  0.634  0.534
E2 -0.316 -0.280 -0.300 -0.267  0.675  1.000  0.651  0.593
E3 -0.296 -0.289 -0.297 -0.296  0.634  0.651  1.000  0.566
E4 -0.282 -0.254 -0.292 -0.245  0.534  0.593  0.566  1.000

7.0.4.2 EFA a 2 fattori con rotazione ortogonale

n_brown <- 250

efa_ort <- factanal(
  covmat   = psychot_cor_mat,
  factors  = 2,
  rotation = "varimax",
  n.obs    = n_brown
)
efa_ort

Call:
factanal(factors = 2, covmat = psychot_cor_mat, n.obs = n_brown,     rotation = "varimax")

Uniquenesses:
   N1    N2    N3    N4    E1    E2    E3    E4 
0.219 0.280 0.289 0.217 0.362 0.293 0.381 0.511 

Loadings:
   Factor1 Factor2
N1  0.854  -0.228 
N2  0.826  -0.194 
N3  0.811  -0.233 
N4  0.865  -0.186 
E1 -0.202   0.773 
E2 -0.139   0.829 
E3 -0.158   0.771 
E4 -0.147   0.684 

               Factor1 Factor2
SS loadings      2.923   2.526
Proportion Var   0.365   0.316
Cumulative Var   0.365   0.681

Test of the hypothesis that 2 factors are sufficient.
The chi square statistic is 9.58 on 13 degrees of freedom.
The p-value is 0.728 
Esercizio

Partendo dai loading calcola con R (o con la calcolatrice o a mano) le quantità:

  1. SS loadings,
  2. Proportion Var
  3. Cumulative Var
  4. communalità (vedi sopra)
  5. unicità (controlla che il risultato sia come quello riportato in efa_ort$uniquenesses)
lambda <- efa_ort$loadings[1:8,1:2]
lambda
      Factor1    Factor2
N1  0.8537641 -0.2277964
N2  0.8257412 -0.1944553
N3  0.8105499 -0.2334530
N4  0.8651568 -0.1860795
E1 -0.2015257  0.7729335
E2 -0.1387371  0.8294011
E3 -0.1584101  0.7707741
E4 -0.1467635  0.6837448
# ...

Matrice riprodotta e residui

# loadings * trasposto(loadings) + diagonale unicità
Rr <- lambda %*% t(lambda) + diag(efa_ort$uniqueness)
round(Rr, 2)
      N1    N2    N3    N4    E1    E2    E3    E4
N1  1.00  0.75  0.75  0.78 -0.35 -0.31 -0.31 -0.28
N2  0.75  1.00  0.71  0.75 -0.32 -0.28 -0.28 -0.25
N3  0.75  0.71  1.00  0.74 -0.34 -0.31 -0.31 -0.28
N4  0.78  0.75  0.74  1.00 -0.32 -0.27 -0.28 -0.25
E1 -0.35 -0.32 -0.34 -0.32  1.00  0.67  0.63  0.56
E2 -0.31 -0.28 -0.31 -0.27  0.67  1.00  0.66  0.59
E3 -0.31 -0.28 -0.31 -0.28  0.63  0.66  1.00  0.55
E4 -0.28 -0.25 -0.28 -0.25  0.56  0.59  0.55  1.00
round(psychot_cor_mat - Rr, 3)   # residui: idealmente prossimi a 0
       N1     N2     N3     N4     E1     E2     E3     E4
N1  0.000  0.018 -0.014 -0.003 -0.003 -0.009  0.015 -0.001
N2  0.018  0.000 -0.006 -0.013  0.015 -0.004 -0.008  0.000
N3 -0.014 -0.006  0.000  0.017 -0.012  0.006  0.011 -0.013
N4 -0.003 -0.013  0.017  0.000  0.000  0.007 -0.016  0.009
E1 -0.003  0.015 -0.012  0.000  0.000  0.006  0.006 -0.024
E2 -0.009 -0.004  0.006  0.007  0.006  0.000 -0.010  0.006
E3  0.015 -0.008  0.011 -0.016  0.006 -0.010  0.000  0.016
E4 -0.001  0.000 -0.013  0.009 -0.024  0.006  0.016  0.000

Visualizzaione:

fa.diagram(lambda)

7.0.4.3 EFA con rotazione obliqua

efa_obl <- fa(psychot_cor_mat, nfactors = 2, n.obs = n_brown,
              rotate = "oblimin")
efa_obl
Factor Analysis using method =  minres
Call: fa(r = psychot_cor_mat, nfactors = 2, n.obs = n_brown, rotate = "oblimin")
Standardized loadings (pattern matrix) based upon correlation matrix
     MR1   MR2   h2   u2 com
N1  0.88 -0.02 0.78 0.22   1
N2  0.85  0.01 0.72 0.28   1
N3  0.83 -0.04 0.71 0.29   1
N4  0.90  0.03 0.78 0.22   1
E1 -0.05  0.77 0.63 0.37   1
E2  0.03  0.86 0.71 0.29   1
E3  0.00  0.79 0.63 0.37   1
E4 -0.01  0.70 0.49 0.51   1

                       MR1  MR2
SS loadings           3.00 2.45
Proportion Var        0.37 0.31
Cumulative Var        0.37 0.68
Proportion Explained  0.55 0.45
Cumulative Proportion 0.55 1.00

 With factor correlations of 
      MR1   MR2
MR1  1.00 -0.43
MR2 -0.43  1.00

Mean item complexity =  1
Test of the hypothesis that 2 factors are sufficient.

df null model =  28  with the objective function =  5.02 with Chi Square =  1231.22
df of  the model are 13  and the objective function was  0.04 

The root mean square of the residuals (RMSR) is  0.01 
The df corrected root mean square of the residuals is  0.02 

The harmonic n.obs is  250 with the empirical chi square  1.73  with prob <  1 
The total n.obs was  250  with Likelihood Chi Square =  9.65  with prob <  0.72 

Tucker Lewis Index of factoring reliability =  1.006
RMSEA index =  0  and the 90 % confidence intervals are  0 0.047
BIC =  -62.12
Fit based upon off diagonal values = 1
Measures of factor score adequacy             
                                                   MR1  MR2
Correlation of (regression) scores with factors   0.96 0.94
Multiple R square of scores with factors          0.93 0.87
Minimum correlation of possible factor scores     0.85 0.75

Il modello è stato stimato con il metodo minres (minimum residual) su una matrice di correlazione (psychot_cor_mat), con 2 fattori e 250 osservatori. La rotazione usata è oblimin, una rotazione obliqua che permette ai fattori di essere correlati tra loro.

Pattern Matrix (Carichi Fattoriali)

La tabella mostra i carichi standardizzati (pattern matrix) degli 8 item sui 2 fattori. La struttura è estremamente semplice: ogni item carica quasi esclusivamente su un solo fattore.

Pattern Matrix
Item MR1 MR2
N1 0.88 −0.02 0.78 0.22
N2 0.85 0.01 0.72 0.28
N3 0.83 −0.04 0.71 0.29
N4 0.90 0.03 0.78 0.22
E1 −0.05 0.77 0.63 0.37
E2 0.03 0.86 0.71 0.29
E3 0.00 0.79 0.63 0.37
E4 −0.01 0.70 0.49 0.51

MR1 cattura gli item N1–N4 (probabilmente Nevroticismo), MR2 cattura E1–E4 (probabilmente Estroversione).

  • (communality): quota di varianza dell’item spiegata dai fattori
  • (uniqueness): varianza residua non spiegata (= 1 − h²)
  • com (complexity): tutti = 1, ogni item satura puramente su un solo fattore

Varianza Spiegata

Indice MR1 MR2
SS Loadings 3.00 2.45
Proportion Var 0.37 0.31
Cumulative Var 0.37 0.68
Proportion Explained 0.55 0.45
Cumulative Proportion 0.55 1.00

I due fattori spiegano congiuntamente il 68% della varianza totale degli item.

Correlazione tra Fattori

\[r_{\text{MR1, MR2}} = -0.43\]

I fattori risultano correlati negativamente, il che è teoricamente sensato per Nevroticismo ed Estroversione.

Indici di Fit del Modello

Tutti gli indici indicano un ottimo adattamento del modello ai dati:

Indice Valore Soglia consigliata
RMSR 0.01 < 0.05
Likelihood \(\chi^2\) 9.65 (p = 0.72) p > 0.05
TLI 1.006 > 0.95
RMSEA 0.00 [90% CI: 0, 0.047] < 0.05
BIC −62.12 Più basso = meglio

Il test \(\chi^2\) non significativo indica che il modello a 2 fattori non viene rifiutato: i residui sono compatibili con l’errore casuale.

Correlazione tra i fattori:

round(efa_obl$Phi, 3)
       MR1    MR2
MR1  1.000 -0.431
MR2 -0.431  1.000
Phi <- efa_obl$Phi

Lamdba e unicità:

lambda_obl <- matrix(efa_obl$loadings[, 1:2], nrow = 8)
lambda_obl
             [,1]        [,2]
[1,]  0.877075569 -0.01577815
[2,]  0.852280802  0.01128419
[3,]  0.826584447 -0.03684789
[4,]  0.898762806  0.03121279
[5,] -0.048589010  0.77186847
[6,]  0.034700239  0.85566012
[7,]  0.002815265  0.79291602
[8,] -0.007884591  0.69545191
Psi_obl <- diag(efa_obl$uniquenesses)
Psi_obl
          [,1]      [,2]      [,3]     [,4]      [,5]      [,6]      [,7]
[1,] 0.2185506 0.0000000 0.0000000 0.000000 0.0000000 0.0000000 0.0000000
[2,] 0.0000000 0.2817872 0.0000000 0.000000 0.0000000 0.0000000 0.0000000
[3,] 0.0000000 0.0000000 0.2891237 0.000000 0.0000000 0.0000000 0.0000000
[4,] 0.0000000 0.0000000 0.0000000 0.215453 0.0000000 0.0000000 0.0000000
[5,] 0.0000000 0.0000000 0.0000000 0.000000 0.3695024 0.0000000 0.0000000
[6,] 0.0000000 0.0000000 0.0000000 0.000000 0.0000000 0.2922572 0.0000000
[7,] 0.0000000 0.0000000 0.0000000 0.000000 0.0000000 0.0000000 0.3732021
[8,] 0.0000000 0.0000000 0.0000000 0.000000 0.0000000 0.0000000 0.0000000
          [,8]
[1,] 0.0000000
[2,] 0.0000000
[3,] 0.0000000
[4,] 0.0000000
[5,] 0.0000000
[6,] 0.0000000
[7,] 0.0000000
[8,] 0.5115539

Matrice riprodotta:

R_hat_obl <- lambda_obl %*% Phi %*% t(lambda_obl) + Psi_obl

round(R_hat_obl, 2)
      [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]
[1,]  1.00  0.75  0.75  0.78 -0.35 -0.31 -0.31 -0.28
[2,]  0.75  1.00  0.71  0.75 -0.32 -0.28 -0.28 -0.25
[3,]  0.75  0.71  1.00  0.74 -0.34 -0.31 -0.31 -0.28
[4,]  0.78  0.75  0.74  1.00 -0.32 -0.27 -0.28 -0.25
[5,] -0.35 -0.32 -0.34 -0.32  1.00  0.67  0.63  0.55
[6,] -0.31 -0.28 -0.31 -0.27  0.67  1.00  0.67  0.59
[7,] -0.31 -0.28 -0.31 -0.28  0.63  0.67  1.00  0.55
[8,] -0.28 -0.25 -0.28 -0.25  0.55  0.59  0.55  1.00

Residui

round(psychot_cor_mat - R_hat_obl, 2)
      N1    N2    N3    N4    E1    E2    E3    E4
N1  0.00  0.02 -0.01  0.00  0.00 -0.01  0.01  0.00
N2  0.02  0.00  0.00 -0.01  0.01  0.00 -0.01  0.00
N3 -0.01  0.00  0.00  0.02 -0.01  0.01  0.01 -0.01
N4  0.00 -0.01  0.02  0.00  0.00  0.01 -0.02  0.01
E1  0.00  0.01 -0.01  0.00  0.00  0.01  0.01 -0.02
E2 -0.01  0.00  0.01  0.01  0.01  0.00 -0.01  0.01
E3  0.01 -0.01  0.01 -0.02  0.01 -0.01  0.00  0.01
E4  0.00  0.00 -0.01  0.01 -0.02  0.01  0.01  0.00

Visualizzazione

fa.diagram(efa_obl) # qui al posto di lambda mettiamo il modello

7.0.5 Step preliminari per condurre FA

Prima di condurre FA (sia esplorativa sia confermativa), ci si deve porre delle domande circa le correlazioni e la struttura di covarianza tra gli indciatori osservati:

  1. Ci sono delle correlazioni tra gli item?
  2. Le correlazioni tra gli item possono essere dovute a delle variabili latenti?
  3. Di quante dimensioni latenti ho bisogno per poter spiegare le correlazioni tra gli item?

Le prime due domande richiedono una risposta sia che si voglia usare un approccio esplorativo sia che si voglia usare un approccio confermativo. La terza fa parte del mondo esplorativo

7.0.5.1 Ci sono delle correlazioni tra gli item?

Test di sfericità di Bartlett

Verifica se la matrice di correlazione \(\mathbf{R}\) è significativamente diversa da una matrice identità \(\mathbf{I}\) (ovvero una matrice dove è prevista la non correlazione tra tutte le variabili).

\(H_0: \mathbf{R} = \mathbf{I} \qquad H_1: \mathbf{R} \neq \mathbf{I}\)

\[\chi^2 = - (n-1 - \dfrac{2I + 5}{6}) \ln |\mathbf{R}| \qquad \text{con} \quad df = \dfrac{I(I-1)}{2}\] con \(n\) ampiezza campionaria, \(I\) numero di item e \(|\mathbf{R}|\) determinante di \(\mathbf{R}\)

7.1 Un esempio

\(n = 50\); \(I = 2\)

\[\mathbf{R} = \begin{pmatrix} 1 & 0.6 \\ 0.6 & 1 \end{pmatrix}\]

\[\mathbf{I} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}\]

Determinante: \(|\mathbf{R}|=1\cdot 1−0.6^2=1−0.36=0.64\)

\(\chi^2 = - (n-1 - \dfrac{2I + 5}{6}) \ln |\mathbf{R}| = - (50-1 - \dfrac{2\cdot2 + 5}{6}) \ln 0.64 = \approx 21.2\)

\(\dfrac{I(I-1)}{2} = \dfrac{2(2-1)}{2} = 1\)

\(p\)-value \(= 4.1376451\times 10^{-6}\)

7.1.0.1 Le correlazioni sono spiegabili dalle variabili latenti?

Kayser-Meyer-Olkin

Misura dell’adeguatezza dei dati per l’analisi fattoriale prendendo in considerazione le correlazioni parziali (le correlazioni che rimangono una volta tolto l’effetto delle variabili latenti) degli item

\[KMO = \frac{\sum_{i \ne j} r_{ij}^2}{\sum_{i \ne j} r_{ij}^2 + \sum_{i \ne j} p_{ij}^2}\]

con:

\(r_{ij}\): Correlazione tra \(i,j\) (con \(i, j = 1, \ldots, I\) e \(i \ne j\))

\(p_{ij} = -\frac{\omega_{ij}}{\sqrt{\omega_{ii}\,\omega_{jj}}} \quad \text{con} \quad \Omega = R^{-1}\): Correlazione parziale tra \(i, j\) (controllando per tutte le altre, ovvero quanto resta della relazione tra due variabili dopo aver tolto tutto il resto)

\(KMO > .90\): Ottimo, \(KMO > .70\): Accettabile

Un esempio

\(I = 3\)

\[\mathbf{R} = \begin{pmatrix} 1 & 0.6 & 0.5 \\ 0.6 & 1 & 0.4 \\ 0.5 & 0.4 & 1 \end{pmatrix}\]

\(r_{12}^2 = 0.36, \quad r_{13}^2 = 0.25, \quad r_{23}^2 = 0.16\)

\(\sum r_{ij}^2 = 0.36 + 0.25 + 0.16 = 0.77\)

\[\Omega = \mathbf{R}^{-1} \approx \begin{pmatrix} 1.56 & -0.88 & -0.43 \\ -0.88 & 1.45 & -0.22 \\ -0.43 & -0.22 & 1.29 \end{pmatrix}\]

con \(p_{ij} = -\frac{\omega_{ij}}{\sqrt{\omega_{ii}\,\omega_{jj}}}\) si ottengono:

\(p_{12} = -\frac{\omega_{12}}{\sqrt{\omega_{11}\,\omega_{22}}} = -\frac{-0.88}{\sqrt{1.56 \cdot 1.45}} \approx 0.59\)

\(p_{13} = -\frac{\omega_{13}}{\sqrt{\omega_{11}\,\omega_{33}}} = -\frac{-0.43}{\sqrt{1.56 \cdot 1.29}} \approx 0.30\)

\(p_{23} = -\frac{\omega_{23}}{\sqrt{\omega_{22}\,\omega_{33}}} = -\frac{-0.22}{\sqrt{1.45 \cdot 1.29}} \approx 0.16\)

\(\sum p_{ij}^2 = 0.59^2 + 0.30^2 + 0.16^2 \approx 0.47\)

\[KMO = \frac{\sum r_{ij}^2}{\sum r_{ij}^2 + \sum p_{ij}^2} = \frac{0.77}{0.77 + 0.47} \approx 0.62\]

7.1.1 Determinare il numero di fattori

La domanda: Di quanti fattori ho bisogno?

L’EFA è esplorativa: non impone a priori quanti fattori estrarre.

7.1.1.1 Autovalori e Scree plot

Prima di stimare il modello EFA si analizza la matrice di correlazione \(\mathbf{R}\) per capire quanta struttura latente contiene. Uno strumento utile è la sua scomposizione in autovalori e autovettori:

\[\mathbf{R}\,\mathbf{v} = e\,\mathbf{v}\]

dove \(\mathbf{v}\) è un autovettore (una direzione nello spazio degli item lungo cui la matrice si limita a scalare i vettori senza ruotarli) e \(e\) è il corrispondente autovalore, il fattore di scala: ci dice quanta varianza totale è concentrata lungo quella direzione. Per una matrice di correlazione la somma di tutti gli autovalori è uguale a \(p\) (uno per item standardizzato).

Gli autovettori individuano le direzioni di massima varianza in ordine decrescente: il primo autovettore punta nella direzione in cui i dati variano di più (il “fattore generale” comune a tutti gli item), il secondo nella direzione di massima varianza residua ortogonale al primo, e così via.

Per capire meglio è utile rappresentarli geometricamente, consideriamo il caso più semplice: 2 item e correlazione variabile. Ogni partecipante è un punto nello spazio bidimensionale definito dai due item; la forma di questa nuvola dipende interamente dalla correlazione \(r\).

Quattro scenari di correlazione tra 2 item (n = 200). Le frecce indicano i due assi principali; la loro lunghezza è proporzionale a √e. Con r = 0 la nuvola è circolare e i due autovalori sono uguali. All’aumentare di |r| il primo asse cattura sempre più varianza a scapito del secondo.

L’Asse 1 (rosso) cattura ciò che i due item hanno in comune: punta sempre lungo la diagonale positiva quando \(r > 0\), lungo quella negativa quando \(r < 0\). L’Asse 2 (arancione) è sempre ortogonale al primo e cattura la varianza residua non condivisa. Con \(r = 0.95\) l’Asse 2 è quasi scomparso (\(e_2 = 0.05\)): un solo fattore basterebbe a descrivere quasi tutta la struttura.

Gli autovalori ci dicono quindi quanti fattori estrarre.

7.1.1.2 Criterio di Kaiser

Trattenere i fattori con autovalore \(\geq 1\) (cioè che spiegano più varianza di un singolo item standardizzato). Utile come prima indicazione, ma tende a sovrastimare il numero di fattori.

Lo scree plot mostra il “gomito” dopo il quale gli autovalori calano gradualmente: si trattengono i fattori prima del gomito.

7.1.1.3 Parallel Analysis

Confronta gli autovalori osservati con la distribuzione degli autovalori attesi da dati completamente casuali (stessa dimensione del dataset). Si trattengono solo i fattori il cui autovalore reale supera il 95° percentile della distribuzione casuale:

\[ \text{soglia}_k = \hat{q}_{0.95} \!\left(\lambda^{\text{rand}}_{k,1}, \ldots, \lambda^{\text{rand}}_{k,B}\right) \]

7.1.2 Minimum Average Partial (MAP)

Il MAP misura la correlazione residua media rimasta tra gli item dopo aver rimosso via via 1, 2, 3, … fattori:

\[MAP(f) = \dfrac{1}{p(p-1)} \sum_{i \neq j} {r_{ij}^{(f)}}^2\]

\[f^* = \arg \min_f MAP(f)\]

\(p(p-1)\): Numero di coppie di variabili

\(r_{ij}^{(f)}\) correlazione parziale tra ogni coppia di variabili dopo aver estratto \(f\) fattori

Si sceglie \(f\) che minimizza MAP(\(f\)): troppo pochi fattori → correlazioni residue ancora alte; troppi fattori → i nuovi fattori inseguono rumore e MAP risale.

Tre criteri a confronto
Criterio Logica Tendenza
Kaiser (\(\lambda \geq 1\)) Autovalore ≥ varianza di 1 item Sovrastima
Parallel Analysis Autovalore reale > autovalore casuale (95°pct) Più conservativo
MAP Minimizza la correlazione residua Generalmente accurato

In pratica, usarli insieme: se concordano, la scelta è robusta.


7.1.3 Estrazione e rotazione

7.1.3.1 L’estrazione: dalla matrice \(\mathbf{R}\) ai loadings

Estrarre i fattori significa trovare \(\boldsymbol{\Lambda}\) che minimizza la differenza tra \(\mathbf{R}\) osservata e la matrice ricostruita dal modello \(\hat{\mathbf{R}}\).

7.1.3.2 I loadings: cosa sono geometricamente

Una volta estratti, i loadings descrivono la struttura: quanto ciascun item è correlato con ciascun fattore latente. Geometricamente, si rappresentano gli item come punti in uno spazio dove gli assi sono i fattori. Con 1 fattore lo spazio è monodimensionale: il loading è semplicemente la coordinata dell’item su quell’unico asse.

Con 2 fattori lo spazio diventa bidimensionale (F1 \(\times\) F2): ogni item ha due coordinate, e la proiezione ortogonale del punto su ciascun asse dà il loading corrispondente. Un loading alto su F1 significa che il punto cade vicino all’asse F1 (e lontano da F2); un cross-loading si verifica quando un punto è equidistante da entrambi gli assi.

Autovalori vs. loadings

Gli autovalori iniziali (scree plot, Kaiser) sono proprietà della matrice \(\mathbf{R}\) prima della stima del modello. I loadings stimati misurano l’associazione tra ogni item e il fattore; la loro somma dei quadrati (SS Loadings = \(\sum_i \hat{\lambda}_{ik}^2\)) indica quanta varianza comune cattura ciascun fattore.

7.1.3.3 Rotazione

Lavoriamo sugli item E + N del dataset bfi:

fit_efa_EN <- fa(R_EN, nfactors = 2, fm = "minres",
                 rotate = "none", n.obs = n_obs)
round(fit_efa_EN$loadings[,], 3)
      MR1   MR2
E1 -0.398 0.501
E2 -0.640 0.458
E3 -0.380 0.467
E4 -0.536 0.479
E5 -0.344 0.465
N1  0.661 0.501
N2  0.649 0.480
N3  0.659 0.422
N4  0.681 0.088
N5  0.525 0.203

Prima della rotazione, il primo fattore tende ad essere generale (tutti gli item caricano nella stessa direzione); il secondo separa parzialmente i cluster, ma gli assi non sono ancora allineati ai dati.

La soluzione non ruotata è spesso difficile da interpretare. La rotazione trasforma gli assi per ottenere la simple structure: ogni item carica alto su un solo fattore e vicino a zero sugli altri. Concretamente, ruotare gli assi equivale a cambiare il sistema di riferimento: i punti non si spostano, ma le loro coordinate (= i loadings) cambiano.

data.frame(item = c("E1","E2","E3","E4","E5","N1","N2","N3","N4","N5"),
           orto = unname(fit_varimax$loadings[,]),
           obli = unname(fit_oblimin$loadings[,]))
   item       orto.1       orto.2      obli.1       obli.2
1    E1 -0.027089709  0.639785522  0.08835104  0.654370957
2    E2 -0.248418033  0.746620903 -0.11589160  0.752709875
3    E3 -0.032168309  0.601427011  0.07628341  0.614799996
4    E4 -0.151197447  0.702607959 -0.02564875  0.712501774
5    E5 -0.004451518  0.578385566  0.10011297  0.592581647
6    N1  0.829313831  0.015594220  0.84051647  0.057799840
7    N2  0.807017875  0.005902044  0.81624219  0.046741777
8    N3  0.781040964 -0.046263437  0.78056783 -0.008034159
9    N4  0.602064742 -0.329252928  0.54859984 -0.307103846
10   N5  0.543706187 -0.144682669  0.52303366 -0.120874443

Con una rotazione ortogonale (es. varimax) i fattori sono incorrelati per costruzione: esiste una sola matrice di loadings. Con una rotazione obliqua (es. oblimin) i fattori possono correlare tra loro, e questo introduce tre quantità distinte:

  • \(\boldsymbol{\Lambda}\) (\(p \times m\)) — pattern matrix: l’effetto diretto del fattore \(j\) sull’item \(i\), al netto degli altri fattori
  • \(\boldsymbol{\Phi}\) (\(m \times m\)) — matrice di correlazione tra fattori: quanto i fattori si assomigliano tra loro
  • \(\boldsymbol{S} = \boldsymbol{\Lambda}\boldsymbol{\Phi}\) (\(p \times m\)) — structure matrix: la correlazione totale tra item \(i\) e fattore \(j\)

\(\boldsymbol{\Phi}\) ha 1 sulla diagonale e correlazioni \(\phi_{jj'}\) fuori diagonale. Con rotazione ortogonale \(\boldsymbol{\Phi} = \mathbf{I}\) per costruzione.

7.1.3.4 Structure matrix \(\boldsymbol{S}\)

Ogni elemento \(s_{ij}\) è la correlazione totale tra l’item \(i\) e il fattore \(j\). Risponde alla domanda:

“Quanto si muove insieme l’item \(i\) con il fattore \(j\), considerando anche le relazioni tra i fattori?”

\[\boldsymbol{S} = \boldsymbol{\Lambda}\,\boldsymbol{\Phi}\]

L’elemento \(s_{ij}\) include due contributi: l’effetto diretto del fattore \(j\) sull’item \(i\) (il pattern loading \(\lambda_{ij}\)) più gli effetti indiretti degli altri fattori \(j'\), mediati dalla loro correlazione \(\phi_{jj'}\) con il fattore \(j\):

\[s_{ij} = \lambda_{ij} + \sum_{j' \neq j} \lambda_{ij'}\,\phi_{j'j}\]

Se \(\boldsymbol{\Phi} = \mathbf{I}\) (fattori ortogonali), \(\boldsymbol{S} = \boldsymbol{\Lambda}\): le due matrici coincidono.

7.1.3.4.1 Esempio con i dati E + N
fit_oblimin <- fa(R_EN, nfactors = 2, fm = "minres",
                  rotate = "oblimin", n.obs = n_obs)

# Pattern matrix — effetti diretti, output di default di fa()
L_pattern <- fit_oblimin$loadings[,]
round(L_pattern, 3)
      MR1    MR2
E1  0.088  0.654
E2 -0.116  0.753
E3  0.076  0.615
E4 -0.026  0.713
E5  0.100  0.593
N1  0.841  0.058
N2  0.816  0.047
N3  0.781 -0.008
N4  0.549 -0.307
N5  0.523 -0.121
# Phi — correlazione tra i fattori (m × m)
round(fit_oblimin$Phi, 3)
       MR1    MR2
MR1  1.000 -0.224
MR2 -0.224  1.000
# Structure matrix — correlazioni totali item-fattore (p × m)
L_structure <- L_pattern %*% fit_oblimin$Phi
round(L_structure, 3)
      MR1    MR2
E1 -0.058  0.635
E2 -0.285  0.779
E3 -0.062  0.598
E4 -0.186  0.718
E5 -0.033  0.570
N1  0.828 -0.131
N2  0.806 -0.136
N3  0.782 -0.183
N4  0.618 -0.430
N5  0.550 -0.238

7.1.4 Fit del modello EFA

Per scegliere il “miglior” modello di EFA, vanno confrontate diverse soluzioni che prendano in considerazione diversi modelli fattoriali

Indici comparativi

Akaike’s Information Criterion: \(AIC = 2g - 2 \log(\mathcal{L})\)

Bayesian Information Criterion: \(BIC = g\log(n) - 2 \log(\mathcal{L})\)

\(g\): Numero di parametri liberi stimati dal modello

\(\mathcal{L}\): Funzione di verosimiglianza del modello

\(n\): ampiezza campionaria

AIC e BIC sono indici di entropia: Minore è il loro valore, meglio è la fit del modello

Penalizzano modelli troppo complessi

Test \(\chi^2\) (Goodness-of-fit)

Basato sulla verosimiglianza \(\mathcal{L}\) ottenuta dal confronto tra la matrice di covarianza osservata (\(cov\)) e la matrice di covarianza attesa (\(\hat{cov}\)) secondo il modello fattoriale

\(H_0\): \(cov = \hat{cov}\)

\(df\): Numero di elementi unici nella matrice di covarianza \(-\) numero di parametri stimati (saturazioni, correlazioni tra fattori ecc.)

Molto sensibile all’ampiezza campionaria! Non deve essere l’unica statistica a guidare la scelta del modello

Root mean square error of approximation (RMSEA)

Indice di fit assoluto basato sul \(\chi^2\):

\(RMSEA = \dfrac{\chi^2 -df}{df(n-1)}\)

\(E(\chi^2) = df\) \(\rightarrow\) più è piccolo il valore di RMSEA, minore è l’errore, migliore è il modello

\(RMSEA < .10\) fit accettabile

\(RMSEA < .05\) fit ottima

Comparative Fit Index (CFI)

Confronta la performance del modello target (\(T\)) e di un modello baseline (\(B\)) in cui tutte le covarianze sono fissate a 0 (non c’è correlazione tra le variabili manifeste) e le varianze sono stimate liberamente a partire dai dati:

\[CFI = \dfrac{(\chi_B^2 - df_B) - (\chi_T^2 - df_T)}{(\chi_B^2 - df_B)}\]

Se il modello \(T\) è correttamente specificato: \((\chi_T^2 - df_T) \approx 0 \rightarrow CFI \approx 1\)

\(CFI \geq .90\) Valori accettabili

\(CFI \geq .95\) Valori ottimali

Attenzione!!!

Pensato per modelli confermativi

In EFA viene usato in senso compartivo, nel senso di vedere come cambia la fit del modelo in base al numero di fattori inseriti nel modello fattoriale

Viene definito indice comparativo ma non con lo stesso significato degli indici di entropia (AIC e BIC)

7.1.4.1 Oltre gli indici

Per valutare la buona fit di un modello fattoriale esplorativo vanno tenuti a mente i principi di:

  • Causazione: Varianza spiegata da/dai fattore/i latenti (ispezionare la matrice dei residui dei modelli)
  • Parsimonia: Non aggiungere fattori non necessari
  • Struttura semplice: Almeno 3 item per fattore e nessun cross-loading

8 Analisi Fattoriale Confermativa - CFA

A differenza dell’EFA, l’Analisi Fattoriale Confermativa (CFA) permette di testare delle ipotesi specificando a priori un modello in cui vengono esplicitate:

  • Le relazioni indicatore — fattore latente
  • I rapporti tra i fattori latenti
Ipotesi sotto esame

Ogni indicatore è la realizzazione di un singolo e specifico fattore latente.

Ogni indicatore satura su una specifica dimensione latente definita a priori sulla base di un modello teorico.

Il modello teorico

\[\mathbf{Y}_p = \boldsymbol{\mu} + \boldsymbol{\Lambda}\,\boldsymbol{\theta}_p + \boldsymbol{\varepsilon}_p\]

con:

  • \(\mathbf{Y}_p \in \mathbb{R}^{I \times 1}\): vettore delle risposte a tutti gli \(I\) indicatori della persona \(p\)
  • \(\boldsymbol{\mu} \in \mathbb{R}^{I \times 1}\): vettore dei valori medi attesi di tutti gli \(I\) indicatori
  • \(\boldsymbol{\Lambda} \in \mathbb{R}^{I \times F}\): matrice \(I \times F\) delle saturazioni degli \(I\) item sulle \(F\) dimensioni latenti
  • \(\boldsymbol{\theta}_p \in \mathbb{R}^{F \times 1}\): vettore dei factor scores — ovvero dei livelli latenti attesi — sulle \(F\) dimensioni latenti per la persona \(p\)
  • \(\boldsymbol{\varepsilon}_p \in \mathbb{R}^{I \times 1}\): vettore degli errori/residui associati agli indicatori della persona \(p\)

8.1 Analisi delle strutture di covarianza (Jöreskog, 1969)

L’idea centrale della CFA è confrontare due matrici di covarianza:

  • Matrice di covarianza osservata: \(\mathbf{S}\)
  • Matrice di covarianza attesa sulla base del modello teorico: \(\boldsymbol{\Sigma}(\boldsymbol{\zeta})\)

dove \(\boldsymbol{\zeta}\) contiene tutti i parametri del modello (saturazioni, varianze, covarianze, errori specifici).

OBIETTIVO

Stimare i parametri a partire dalla matrice di covarianza osservata in modo che:

\[\mathbf{S} \approx \boldsymbol{\Sigma}(\boldsymbol{\zeta})\]

8.2 Statistiche di fit per modelli CFA

8.2.1 \(\chi^2\)

L’ipotesi nulla del test del \(\chi^2\) è:

\[H_0: \mathbf{S} = \boldsymbol{\Sigma}(\boldsymbol{\zeta})\]

I gradi di libertà sono:

\[df = \dfrac{I(I+1)}{2} - t\]

dove \(I\) è il numero di indicatori e \(t\) il numero di parametri liberi che si stimano nel modello (contenuti in \(\boldsymbol{\zeta}\)).

Se \(I = 4\), la matrice di covarianza è:

\[ \mathbf{S} = \begin{pmatrix} \mathbf{s_{11}} & s_{12} & s_{13} & s_{14} \\ s_{21} & \mathbf{s_{22}} & s_{23} & s_{24} \\ s_{31} & s_{32} & \mathbf{s_{33}} & s_{34} \\ s_{41} & s_{42} & s_{43} & \mathbf{s_{44}} \end{pmatrix} \]

Ci sono \(\dfrac{I(I+1)}{2} = \dfrac{4(4+1)}{2} = 10\) elementi unici:

  • 4 varianze nella diagonale principale
  • 6 covarianze nel triangolo inferiore (o equivalentemente nel triangolo superiore)

Dati questi 10 elementi, si possono stimare AL MASSIMO 9 parametri.

8.2.2 La logica dei gradi di libertà

\(df > 0\) (Overidentified)

Il modello è testabile perché c’è più informazione nei dati di quanto richiesto dal modello.

La matrice di covarianza \(\mathbf{S}\) non può essere riprodotta perfettamente da \(\boldsymbol{\Sigma}(\boldsymbol{\zeta})\): il modello è falsificabile.

\(df = 0\) (Just identified)

Situazione al limite dove il numero di parametri è uguale ai dati empirici.

La matrice di covarianza \(\mathbf{S}\) può essere riprodotta perfettamente da \(\boldsymbol{\Sigma}(\boldsymbol{\zeta})\).

Il modello non è falsificabile.

\(df < 0\) (Underidentified)

Ci sono più parametri che informazione disponibile.

Diversi set di parametri possono essere usati per \(\boldsymbol{\Sigma}(\boldsymbol{\zeta})\) (sistema indeterminato, non esiste una soluzione unica).

8.2.3 Root Mean Square Error of Approximation (RMSEA)

Indice di fit assoluto basato sul \(\chi^2\):

\[\text{RMSEA} = \sqrt{\dfrac{\chi^2 - df}{df(n-1)}}\]

Poiché \(E(\chi^2) = df\), più è piccolo il valore di RMSEA, minore è l’errore e migliore è il modello.

  • \(\text{RMSEA} < .10\): fit accettabile
  • \(\text{RMSEA} < .05\): fit ottimale

8.2.4 Comparative Fit Index (CFI)

Confronta la performance del modello target (\(T\)) e di un modello baseline (\(B\)) in cui tutte le covarianze sono fissate a 0 (non c’è correlazione tra le variabili manifeste) e le varianze sono stimate liberamente a partire dai dati:

\[\text{CFI} = \dfrac{(\chi_B^2 - df_B) - (\chi_T^2 - df_T)}{(\chi_B^2 - df_B)}\]

Se il modello \(T\) è correttamente specificato: \((\chi_T^2 - df_T) \approx 0 \Rightarrow \text{CFI} \approx 1\).

  • \(\text{CFI} \geq .90\): valori accettabili
  • \(\text{CFI} \geq .95\): valori ottimali

8.2.5 Tucker-Lewis Index (TLI)

Stesso principio del CFI ma basato su \(\chi_N^2 = \chi^2/df\) (che tende a 1 quando \(\chi^2 = df\)):

\[\text{TLI} = \dfrac{(\chi_B^2/df_B) - (\chi_T^2/df_T)}{\chi_B^2/df_B - 1}\]

  • \(\text{TLI} \geq .90\): valori accettabili
  • \(\text{TLI} \geq .95\): valori ottimali

8.3 Scalare e contare i parametri

8.3.1 Contare i parametri

I parametri da stimare sono di due tipi:

Variabili latenti \(\boldsymbol{\theta}_p\)

\[\boldsymbol{\Phi} = \operatorname{Var}(\boldsymbol{\theta}_p) \in \mathbb{R}^{F \times F}\]

Matrice delle varianze e covarianze delle \(F\) variabili latenti.

Se il modello prevede \(F\) fattori ortogonali, allora \(\phi_{ij} = 0\ \forall i \neq j\) e quindi \(\boldsymbol{\Phi}\) è una matrice diagonale.

Indicatori

\[\boldsymbol{\Lambda} \in \mathbb{R}^{I \times F} \quad \text{e} \quad \boldsymbol{\varepsilon}_p = (\varepsilon_{1p}, \varepsilon_{2p}, \ldots, \varepsilon_{Ip})^\top\]

Per gli errori viene stimata la varianza \(\operatorname{Var}(\varepsilon_i)\) di ogni indicatore.

8.3.2 Scalare i parametri

Rimane il problema di fissare la scala per l’interpretazione delle saturazioni sulla variabile latente. Due approcci:

  • Metodo Indicatore-Variabile Latente
  • Metodo della Standardizzazione della Variabile Latente
Equivalenza

I due metodi sono matematicamente equivalenti: si può passare da uno all’altro senza problemi.

Non cambia il fit del modello, non cambia il numero di parametri stimati in \(\boldsymbol{\zeta}\) (ma cambiano i parametri specifici che vengono stimati). Cambia la scala e l’interpretazione delle saturazioni (e delle covarianze).

\[\boldsymbol{\zeta} = \{\boldsymbol{\Lambda},\ \operatorname{Var}(\varepsilon_i),\ \boldsymbol{\Phi}\}\]

8.3.2.1 Metodo Indicatore-Variabile Latente

Si fissa una saturazione (solitamente quella del primo item di ogni fattore):

\[\lambda_1 = 1\]

La variabile latente \(\theta\) assume così la scala del primo item. La varianza \(\operatorname{Var}(\theta)\) viene stimata liberamente (e influenza l’interpretazione delle saturazioni).

Conteggio dei parametri:

  • Saturazioni: \(I - F\)
  • Varianze residue per ogni indicatore: \(I\)
  • Per le variabili latenti: \(\dfrac{F(F+1)}{2}\) (una varianza per ogni \(\theta\) + le covarianze)

\[|\boldsymbol{\zeta}| = I + (I - F) + \dfrac{F(F+1)}{2}\]

8.3.2.2 Metodo della Standardizzazione della Variabile Latente

Viene fissata la varianza della variabile latente:

\[\operatorname{Var}(\theta) = 1\]

Vengono stimati tutti i \(\lambda_i\) relativi a quella variabile latente. I \(\lambda_i\) si possono interpretare come venivano interpretati in EFA (cioè come correlazioni variabile latente—indicatore). Al posto delle covarianze tra fattori si stimano direttamente le correlazioni.

Conteggio dei parametri:

  • Saturazioni: \(I\)
  • Varianze residue per ogni indicatore: \(I\)
  • Per le variabili latenti: \(\dfrac{F(F-1)}{2}\) (solo covarianze/correlazioni tra i \(\theta\), perché le varianze sono fissate a 1)

\[|\boldsymbol{\zeta}| = 2I + \dfrac{F(F-1)}{2}\]

8.4 CFA in R: la funzione cfa() di lavaan

La sintassi di lavaan usa alcuni simboli specifici:

Simbolo Significato
=~ Factor loading (saturazione \(\lambda_i\))
~~ Varianza/covarianza
user = 1 Parametro stabilito dall’utente
ustart = 1 Constraint sulla stima dei parametri (non stimato, fissato a priori per settare la metrica)
free = 0 Parametri NON stimati
free != 0 Parametri stimati
start Valore iniziale del parametro usato come punto di partenza della stima
est Stima ottenuta attraverso gli algoritmi di ottimizzazione

8.4.1 Esempio con il dataset HolzingerSwineford1939

Per illustrare la CFA usiamo il classico dataset incluso in lavaan, che contiene 9 test cognitivi somministrati a 301 bambini. L’ipotesi teorica è che ci siano 3 fattori latenti: visual (x1, x2, x3), textual (x4, x5, x6) e speed (x7, x8, x9).

library(lavaan)
library(semPlot)

modello <- '
  visual  =~ x1 + x2 + x3
  textual =~ x4 + x5 + x6
  speed   =~ x7 + x8 + x9
'

# Metodo Indicatore-LV: la prima saturazione di ogni fattore è fissata a 1
fit_ind <- cfa(modello, data = HolzingerSwineford1939)

# Metodo Standardizzazione-LV: la varianza dei fattori è fissata a 1
fit_std <- cfa(modello, data = HolzingerSwineford1939, std.lv = TRUE)

Esaminiamo la tabella dei parametri del modello con metodo Indicatore-LV:

parTable(fit_ind)[, c("lhs", "op", "rhs", "user", "free", "ustart", "est")]
       lhs op     rhs user free ustart   est
1   visual =~      x1    1    0      1 1.000
2   visual =~      x2    1    1     NA 0.554
3   visual =~      x3    1    2     NA 0.729
4  textual =~      x4    1    0      1 1.000
5  textual =~      x5    1    3     NA 1.113
6  textual =~      x6    1    4     NA 0.926
7    speed =~      x7    1    0      1 1.000
8    speed =~      x8    1    5     NA 1.180
9    speed =~      x9    1    6     NA 1.082
10      x1 ~~      x1    0    7     NA 0.549
11      x2 ~~      x2    0    8     NA 1.134
12      x3 ~~      x3    0    9     NA 0.844
13      x4 ~~      x4    0   10     NA 0.371
14      x5 ~~      x5    0   11     NA 0.446
15      x6 ~~      x6    0   12     NA 0.356
16      x7 ~~      x7    0   13     NA 0.799
17      x8 ~~      x8    0   14     NA 0.488
18      x9 ~~      x9    0   15     NA 0.566
19  visual ~~  visual    0   16     NA 0.809
20 textual ~~ textual    0   17     NA 0.979
21   speed ~~   speed    0   18     NA 0.384
22  visual ~~ textual    0   19     NA 0.408
23  visual ~~   speed    0   20     NA 0.262
24 textual ~~   speed    0   21     NA 0.173

Nella colonna ustart si vede il vincolo 1 sulla prima saturazione di ogni fattore (x1, x4, x7). I parametri stimati liberamente hanno free != 0.

Con \(I = 9\) indicatori e \(F = 3\) fattori:

\[|\boldsymbol{\zeta}| = I + (I - F) + \dfrac{F(F+1)}{2} = 9 + 6 + 6 = 21\]

8.4.2 Fit del modello

summary(fit_ind, fit.measures = TRUE, standardized = TRUE)
lavaan 0.6-19 ended normally after 35 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                        21

  Number of observations                           301

Model Test User Model:
                                                      
  Test statistic                                85.306
  Degrees of freedom                                24
  P-value (Chi-square)                           0.000

Model Test Baseline Model:

  Test statistic                               918.852
  Degrees of freedom                                36
  P-value                                        0.000

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.931
  Tucker-Lewis Index (TLI)                       0.896

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -3737.745
  Loglikelihood unrestricted model (H1)      -3695.092
                                                      
  Akaike (AIC)                                7517.490
  Bayesian (BIC)                              7595.339
  Sample-size adjusted Bayesian (SABIC)       7528.739

Root Mean Square Error of Approximation:

  RMSEA                                          0.092
  90 Percent confidence interval - lower         0.071
  90 Percent confidence interval - upper         0.114
  P-value H_0: RMSEA <= 0.050                    0.001
  P-value H_0: RMSEA >= 0.080                    0.840

Standardized Root Mean Square Residual:

  SRMR                                           0.065

Parameter Estimates:

  Standard errors                             Standard
  Information                                 Expected
  Information saturated (h1) model          Structured

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  visual =~                                                             
    x1                1.000                               0.900    0.772
    x2                0.554    0.100    5.554    0.000    0.498    0.424
    x3                0.729    0.109    6.685    0.000    0.656    0.581
  textual =~                                                            
    x4                1.000                               0.990    0.852
    x5                1.113    0.065   17.014    0.000    1.102    0.855
    x6                0.926    0.055   16.703    0.000    0.917    0.838
  speed =~                                                              
    x7                1.000                               0.619    0.570
    x8                1.180    0.165    7.152    0.000    0.731    0.723
    x9                1.082    0.151    7.155    0.000    0.670    0.665

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  visual ~~                                                             
    textual           0.408    0.074    5.552    0.000    0.459    0.459
    speed             0.262    0.056    4.660    0.000    0.471    0.471
  textual ~~                                                            
    speed             0.173    0.049    3.518    0.000    0.283    0.283

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .x1                0.549    0.114    4.833    0.000    0.549    0.404
   .x2                1.134    0.102   11.146    0.000    1.134    0.821
   .x3                0.844    0.091    9.317    0.000    0.844    0.662
   .x4                0.371    0.048    7.779    0.000    0.371    0.275
   .x5                0.446    0.058    7.642    0.000    0.446    0.269
   .x6                0.356    0.043    8.277    0.000    0.356    0.298
   .x7                0.799    0.081    9.823    0.000    0.799    0.676
   .x8                0.488    0.074    6.573    0.000    0.488    0.477
   .x9                0.566    0.071    8.003    0.000    0.566    0.558
    visual            0.809    0.145    5.564    0.000    1.000    1.000
    textual           0.979    0.112    8.737    0.000    1.000    1.000
    speed             0.384    0.086    4.451    0.000    1.000    1.000

L’output di summary() riporta:

  • Test statistic (\(\chi^2\)) e relativi gradi di libertà e p-value
  • CFI e TLI (Comparative e Tucker-Lewis Fit Index)
  • RMSEA con intervallo di confidenza
  • SRMR (Standardized Root Mean Square Residual)
  • Le stime dei parametri (saturazioni Latent Variables, varianze/covarianze)
  • La colonna Std.all riporta le stime completamente standardizzate (interpretabili come correlazioni quando le variabili sono standardizzate)

8.4.3 Diagramma del modello

semPaths(fit_std, what = "std", layout = "tree2",
         style = "OpenMx", edge.label.cex = 0.9)

Nel diagramma:

  • I cerchi/ovali rappresentano le variabili latenti
  • I rettangoli rappresentano gli indicatori osservati
  • Le frecce a una punta dai latenti agli osservati sono le saturazioni \(\lambda\)
  • Le frecce a due punte tra i fattori sono le covarianze/correlazioni \(\phi\)
  • Le frecce circolari sugli osservati rappresentano le varianze residue \(\operatorname{Var}(\varepsilon_i)\)

8.5 Violazione di normalità/linearità

Quando gli item non permettono di sostenere la normalità e linearità dei punteggi (i.e., item su scala Likert con poche categorie), si utilizzano:

  • Matrice di correlazione policorica (se \(k \geq 3\), dove \(k\) è il numero di categorie)
  • Matrice di correlazione tetracorica (se \(k = 2\))

8.5.1 Logica delle soglie

Le risposte agli item \(Y_i\) sono trattate come la realizzazione di una variabile latente \(Y_i^*\) continua e distribuita normalmente. Nel caso dicotomico:

\[Y_i = \begin{cases} 1 & \text{se } Y_i^* \geq \tau_i \\ 0 & \text{se } Y_i^* < \tau_i \end{cases}\]

dove \(\tau_i\) è una soglia fissa (incognita) da cui dipende la risposta positiva.

\[r_{\text{tet}_{Y_i Y_j}} = r_{Y_i^* Y_j^*}\]

Attenzione!

In questo caso le soglie stimate per ogni item vanno considerate sia come parametri del modello sia come parte dell’informazione iniziale a disposizione per la stima.

8.5.2 Conteggio dell’informazione (caso ordinale)

Considerando il caso di variabili categoriali e quindi la correlazione policorica, \(\mathbf{S}\) diventa una matrice di correlazione (con 1 sulla diagonale), perché le variabili osservate sono prese come realizzazione di variabili latenti standardizzate:

\[ \mathbf{S} = \begin{pmatrix} 1 & s_{12} & s_{13} & s_{14} \\ s_{21} & 1 & s_{23} & s_{24} \\ s_{31} & s_{32} & 1 & s_{34} \\ s_{41} & s_{42} & s_{43} & 1 \end{pmatrix} \]

Il numero di parametri unici in \(\mathbf{S}\) è quindi:

\[\dfrac{I(I-1)}{2}\]

Nella quantità di informazione totale vanno contate anche le soglie per ogni item:

\[\sum_{i=1}^{I}(k_i - 1)\]

dove \(k_i\) è il numero di categorie di risposta dell’item \(i\).

L’informazione totale è quindi:

\[\dfrac{I(I-1)}{2} + \sum_{i=1}^{I}(k_i - 1)\]

Ad esempio, con \(I = 4\) e \(k = 5\):

\[\dfrac{4(4-1)}{2} + 4 \times 4 = 6 + 16 = 22\]

8.5.3 Conteggio dei parametri (caso ordinale)

Si applica la stessa metodologia per scalare e interpretare i parametri presentata sopra (Indicatore-LV o Standardizzazione-LV). Il tipo di scalatura non influisce sul numero totale di parametri stimati.

Nel caso delle correlazioni basate sulle soglie (policoriche o tetracoriche), il conteggio dei parametri deve includere anche le soglie:

\[\boldsymbol{\zeta} = \{\boldsymbol{\Lambda},\ \operatorname{Var}(\varepsilon_i),\ \boldsymbol{\Phi},\ \boldsymbol{\tau}\}\]

con

\[\boldsymbol{\tau} = I \times (k - 1)\]

Attenzione!

Siccome il modello è ordinale (i.e., i dati osservati sono la realizzazione di variabili latenti con varianza nota), non vengono stimate le varianze d’errore degli item.

Ad esempio, con \(I = 20\) item, \(k = 5\) categorie e \(F = 2\) fattori, usando il metodo Indicatore-Variabile Latente:

\[(20 - 2) + \dfrac{2(2+1)}{2} + 20(5-1) = 18 + 3 + 80 = 101\]

8.5.4 CFA ordinale in R

In lavaan basta indicare quali item trattare come ordinali tramite l’argomento ordered:

fit_ord <- cfa(modello, data = dati, ordered = colnames(dati))
summary(fit_ord, fit.measures = TRUE)

8.6 Attendibilità

Disclaimer

Tutto il discorso che segue sull’attendibilità e sulla sua valutazione riguarda la Classical Test Theory.

L’attendibilità è il grado in cui una procedura di misurazione produce lo stesso risultato in prove ripetute. Come visto precedentemente:

\[X = V + E\]

con \(X\) misura rilevata, \(V\) parte vera, \(E\) errore (fluttuazioni casuali oppure costante e sistematico).

L’attendibilità di una misura è la proporzione di \(X\) che non riflette l’errore di misurazione:

\[\rho = \dfrac{V}{V + E}\]

Problema: non è possibile conoscere \(V\) (non lo osserviamo mai), quindi non è effettivamente possibile stimare l’attendibilità a partire da questa definizione. Si utilizzano metodologie che permettono di approssimare il calcolo di \(V\):

Attendibilità test-retest

Viene somministrato lo stesso test allo stesso gruppo di soggetti in due momenti distinti (solitamente almeno 3 mesi di distanza).

Si calcola il coefficiente di correlazione tra i punteggi ottenuti nelle due somministrazioni.

Coefficiente di stabilità

Forme parallele

Vengono somministrate due versioni dello stesso test che possono essere considerate equivalenti allo stesso gruppo di persone.

Il contenuto, la formulazione degli item e degli eventuali distrattori devono essere pressoché identici.

Si calcola la correlazione tra i punteggi ottenuti ai due test.

Coefficiente di equivalenza

Split-Half

Si basa sulla somministrazione di una singola misura che viene suddivisa in due metà equivalenti (in termini di copertura del dominio di contenuto).

Viene calcolata la correlazione tra i punteggi delle due metà → attendibilità che si osserverebbe su una misura lunga la metà dell’originale.

Viene impiegato il coefficiente di Spearman-Brown per calcolare l’attendibilità complessiva dell’intera misura.

Coefficiente di coerenza interna

8.6.1 \(\alpha\) di Cronbach

È la misura di attendibilità più conosciuta e usata. È interamente basata sulla correlazione tra gli item:

\[\alpha = \dfrac{I}{I-1}\left(1 - \dfrac{\sum_{i=1}^{I}\sigma_{X_i}^2}{\sigma_X^2}\right)\]

dove:

  • \(X = \sum_{i=1}^{I} X_i\): punteggio totale al test
  • \(\sigma_X^2\): varianza del punteggio totale
  • \(\sigma_{X_i}^2\): varianze degli item

8.6.1.1 Cut-off di interpretazione

\(\alpha\) Interpretazione
\(< .70\) inaccettabile
\(.70 - .79\) accettabile
\(.80 - .89\) buona
\(\geq .90\) eccellente
Attenzione!
  • Il valore di \(\alpha\) aumenta all’aumentare del numero di item, indipendentemente dal fatto che siano utili o meno.
  • \(\alpha\) non si accorge della multidimensionalità: può essere alto anche se la scala misura più costrutti diversi.

Per questo motivo \(\alpha\) va sempre calcolato separatamente per ogni dimensione della scala, mai sull’insieme degli item se questi misurano costrutti diversi.

8.6.1.2 \(\alpha\) in R

library(psych)

# Sbagliato: calcolare alpha su item che misurano costrutti diversi
alpha(dati[, c(itemN, itemC)])$total

# Corretto: calcolare alpha separatamente per ogni dimensione
alpha(dati[, itemN])$total
alpha(dati[, itemC])$total

8.6.2 \(\alpha\) se l’item è eliminato

Misura il contributo di ogni singolo item alla coerenza interna (non è un giudizio assoluto sulla bontà dell’item o su quanto contribuisce alla misurazione del costrutto):

\[\Delta \alpha = \alpha_{(-i)} - \alpha\]

Interpretazione:

  • \(\Delta \alpha \geq .05\): l’item probabilmente non contribuisce alla coerenza interna (rimuoverlo migliora \(\alpha\))
  • \(0 < \Delta \alpha < .02\): l’item va bene così
  • \(\Delta \alpha < 0\): togliere l’item peggiora la coerenza interna della scala (l’item è utile)

In R, l’output di psych::alpha() contiene una sezione alpha.drop con i valori di \(\alpha\) ottenuti rimuovendo un item alla volta:

res <- alpha(dati[, itemN])
round(res$alpha.drop[, c("raw_alpha", "std.alpha", "alpha se")], 2)