La scelta del numero di componenti nell’Analisi in Componenti Principali

Nei differenti ambiti di ricerca, accade spesso di dover analizzare contemporaneamente un numero molto elevato di variabili. In questi casi, per comprendere meglio le strutture latenti all’interno dei dati, potrebbe risultare molto utile sostituire le p variabili originarie con un numero ridotto di variabili artificiali (o componenti principali) che garantiscono la sintesi e la facilità di lettura, garantendo la minor perdita possibile di informazione. Una metodologia statistica multivariata che permette di fare ciò è l’Analisi delle Componenti Principali o ACP. In breve, si suppone che le variabili artificiali siano una combinazione lineare delle variabili osservate.

Partendo da una matrice dei dati, l’applicazione dell’ACP consente di sostituire alle p variabili (tra loro correlate) un nuovo insieme di variabili artificiali dette COMPONENTI PRINCIPALI che:

1.sono tra loro incorrelate (ortogonali);
2.sono elencate in ordine decrescente rispetto alla loro varianza (nel senso che la prima CP sarà la combinazione lineare di massima varianza, la seconda CP sarà la seconda combinazione lineare in termini di varianza e cosi via).

Alla fine si otterranno tante combinazioni lineari quante sono le variabili originarie e spetterà al ricercatore scegliere il numero di Componenti principali ritenuto idoneo e interpretarle. Si pongono pertanto diversi problemi che impongono allo studioso delle decisioni che influenzeranno l’esito della ricerca. Tuttavia, esistono delle “regole” che aiutano il ricercatore a minimizzare la componente soggettiva della ricerca, in termini di scelta del numero di CP ed interpretazione delle stesse, ed essere il più obiettivo possibile.

Per quanto riguarda la scelta del numero di componenti da utilizzare, si fa riferimento a tre criteri:
1. Quota di varianza totale spiegata
2. Scree-graph
3. Eigenvalue one o Regola di Kaiser

Solitamente, per individuare il numero di componenti da utilizzare, si cerca di seguire congiuntamente i tre criteri.

Secondo il primo criterio, si deve considerare un numero di CP tale che esse tengano conto di una percentuale sufficientemente elevata di varianza totale (ad esempio, almeno il 70%). Nel definire la percentuale minima di varianza accettabile, occorre tener conto del numero di variabili originarie; pertanto al crescere del numero di variabili potrà essere accettata una percentuale minore di varianza spiegata.
Il secondo criterio, fa uso di un grafico chiamato scree-graph degli autovalori in funzione del numero di CP. Poiché gli autovalori sono decrescenti, il grafico assume la forma di una spezzata con pendenza sempre negativa (vedi sotto).

Analizzando il grafico, si potrà individuare un punto nel quale si manifesta una brusca variazione di pendenza, in corrispondenza della quale si individua il numero k di CP da considerare. Tuttavia, può accadere che la diminuzione degli autovalori sia graduale e il grafico non evidenzi salti evidenti. Inoltre, in letteratura si distinguono differenti posizioni in relazione all’inclusione (Cattel, 1966) o all’esclusione (Harman, 1976) della CP in corrispondenza del gomito.
Il terzo criterio, suggerisce di considerare tutte le CP il cui autovalore è maggiore di 1. La “ratio” di questo criterio deriva dal fatto che l’autovalore di una CP è uguale alla sua varianza e che operando su variabili standardizzate queste hanno varianza unitaria.
 Pertanto, si decide di mantenere una CP solo se essa spiega una quota di varianza totale maggiore di quella di una singola variabile (D’Urso, 2008).
Per chiarire meglio il tutto, facciamo un esempio utilizzando parte del dataset “microtus” presente all’interno della libreria “Flury” e prendendo in considerazione solamente il gruppo “subterraneus”.

library(Flury)
data(microtus)
subterraneus <- microtus[microtus$Group=="subterraneus", -1]

Il dataset è composto da 45 casi e 8 variabili, espresse su unità di misura differenti. L’ACP si applica direttamente sul nostro dataset attraverso la funzione “prcomp” presente nel pacchetto “stats”.

acp <- prcomp(subterraneus, scale=TRUE)

La funzione prcomp comprende vari argomenti, per un approfondimento dei quali si rimanda all’help. Nel nostro caso sarà sufficiente specificare due argomenti: il primo è rappresentato dalla matrice dei dati; il secondo argomento, scale=TRUE, ha la funzione di normalizzare le variabili; pertanto la nostra analisi delle componenti principali sarà condotta sulla matrice di correlazione.
L’output della funzione è il seguente:

Standard deviations:
[1] 2.0054992 1.0994572 0.9225566 0.8246091 0.6753426 0.6199444 0.5229512 0.3523907

Rotation:
               PC1         PC2          PC3         PC4         PC5          PC6         PC7         PC8
M1Left  -0.3088583 -0.10891920  0.545170129 -0.67358259 -0.04817153  0.109379942 -0.35688311  0.01300575
M2Left  -0.3521551 -0.12119956 -0.604983110  0.03425009 -0.32677472  0.388151140 -0.48524914 -0.03478596
M3Left  -0.3740423 -0.01511945  0.322459880  0.39303305 -0.65913792 -0.300524226  0.08555331  0.26327065
Foramen -0.3411396 -0.55597610 -0.016570304  0.04551210  0.31006428  0.319768896  0.42584195  0.43867421
Pbone   -0.2600426  0.61212751 -0.297386290 -0.44021781 -0.11785081  0.007275735  0.44230634  0.25665302
Length  -0.4664496 -0.08624148  0.009645834  0.02441142  0.03028856 -0.044189223  0.35170048 -0.80481979
Height  -0.2748288  0.53074157  0.316756946  0.43889866  0.34728294  0.443174798 -0.17858683  0.03021476
Rostrum -0.4044517  0.01688066 -0.208957907  0.03933720  0.47421882 -0.668130405 -0.31190640  0.149518

Le informazioni rilevanti si ricavano dalla funzione summary dell’output di prcomp. La funzione restituisce una matrice che riporta: nella prima riga le radici quadrate degli autovalori, nella seconda le proporzioni di varianza spiegata da ciascuna componente e nella terza riga le percentuali di varianza cumulata.

summary(acp)
Importance of components:
                          PC1    PC2    PC3    PC4     PC5     PC6     PC7     PC8
Standard deviation     2.0055 1.0995 0.9226 0.8246 0.67534 0.61994 0.52295 0.35239
Proportion of Variance 0.5028 0.1511 0.1064 0.0850 0.05701 0.04804 0.03418 0.01552
Cumulative Proportion  0.5028 0.6539 0.7602 0.8452 0.90225 0.95029 0.98448 1.00000

Per scegliere il numero di componenti da utilizzare ci possiamo rifare alle tre regole precedentemente descritte.
Secondo la prima regola, sembrerebbe sensato prendere in considerazione le prime due CP, poiché spiegano il 65% della varianza totale, quota che può essere valutata congrua, considerando la riduzione di variabili da 8 a 2.
Anche secondo la regola di Kaiser, dovremo prendere in considerazione le prime due CP, poiché risultano le uniche con autovalore maggiore di uno.
Infine, per utilizzare come metodo di giudizio anche lo scree-graph, non dobbiamo fare altro che digitare il seguente comando:

plot(acp, type="lines")

Analizzando il nostro grafico, possiamo notare una brusca variazione di pendenza in corrispondenza della seconda CP. Pertanto anche l’analisi dello scree-graph conferma quanto visto con i due precedenti criteri e pertanto scegliamo le prime due componenti principali.

Come avrete notato, nonostante l’utilizzo di tre criteri differenti, rimane comunque un certo margine di soggettività nella scelta, che talvolta può risultare determinante nel prendere in considerazione una CP in più o in meno, con evidenti distorsioni nei risultati della ricerca.

Print Friendly

Commenti per “La scelta del numero di componenti nell’Analisi in Componenti Principali

  1. Pingback: Quante componenti estrarre? La parallel analysis | InsulaR

Lascia un Commento