Sunteți pe pagina 1din 12

Analiza in Componente Principale

Se considera o populatie ale carei obiecte sunt caracterizate de n caracteristici (atribute).


Un obiect este reprezentat de un vector ( x1 ,...,xn ) unde x1 ,...,xn sunt valori ale celor n
caracteristici.
x1 ,...,xn se vor numi variabile explicative.
Folosirea celor n variabile explicative in descrierea obiectelor si a relatiilor dintre ele este
adesea prea complicata. Se impune reducerea dimensionalitatii in reprezentarea
obiectelor.
Printr-o transformare se va trece de la variabilele explicative la noi variabile
w1 ,...,w p (pn) numite componente principale.
Initial vom considera ca avem n componente principale, apoi dintre acestea vom retine un
numar mai mic (conform unui criteriu specificat).
Vom presupune ca trecerea de la variabilele x1 ,...,xn la componentele principale
w1 ,...,w p se realizeaza printr-o transformare liniara:
w1 a11 x1 ... a1n x n

(1) ...
w a x ... a x
n1 1
nn n
n

Matricea A (aij )1i , j n se va determina pornind de la o tabela de date obtinute prin


masurarea celor n caracteristici la T obiecte, notate 1,,T. Numarul xij reprezinta
valoarea caracteristicii j masurata la obiectul i (1iT, 1jn).

X2

X1

Xn

x1

x2

x11

x12

x1n

x 21

x 22

x2n

xT 1

xT 2
Tabelul 1

xTn

xn

x1 j

x2 j
X j =coloana j din Tabelul 1
...
x
Tj

Vom nota cu X 1 ,..., X n vectorii T-dimensionali corespunzatori celor n coloane ale


tabelului.
Informatia asupra caracteristicilor x1 ,...,xn este furnizata de datele din tabela. Aceasta
informatie este sintetizata de urmatorii indicatori:
media lui X j :
1 T
xtj (1jn)
n t 1
X j reprezinta tendinta principala de grupare a valorilor caracteristicii x j .

X j E( X j )

varianta lui X j :
1 T
( xtj X j ) (1jn)
n 1 t 1
Var ( X j ) reprezinta gradul de imprastiere a valorilor caracteristicii x j in raport cu media

Var ( X j )

Xj
matricea de covarianta a vectorilor X 1 ,..., X n :

( ij )1i , j n
1 T
( xti X i )( xtj X j ) .
n 1 t 1
Aplicam transformarea (1) celor t linii ale tabelei 1:
wt1 a11 xt1 ... a1n xtn

(2) ...
,
1tT
w a x ... a x
n1 t1
nn tn
tn

ij Cov( X i , X j )

Deci datele din Tabelul 1 se transforma in urmatoarele date:

W2

W1

Wn

w1

w2

w11

w12

w1n

w21

w22

w2 n

wT 1

wT 2

wTn

wn

1
2

Tabelul 2

w1 j

w2 j
Wj

...
w
Tj

coloana j din Tabelul 2

Vom nota W1 ,...,Wn vectorii T-dimensionali corespunzatori celor n coloane din Tabelul
2. In mod concentrat, relatiile din (2) se scriu:
n

(3) wtj a j1 xt1 ... a jn xtn a jk xtk , 1tT, 1jn


k 1

Conform (3), pentru orice j=1,,n avem:


w1 j a j1 x11 ... a jn x1n

(4) ...
w a x ... a x
ji T 1
jn Tn
Tj
a j1

Notam a j ... , pentru 1jn . Atunci relatiile (4) se scriu vectorial:

a jn
n

(5) W j a ji X 1 ... a jn X n a jk X k
k 1

Consideram matricea X ( xtj )1t T ,1 j n a datelor din Tabelul 1.Atunci relatia (5) se scrie
in forma matriciala :
(6) W j Xa j , 1jn
Variabilitatea datelor initiale nu este la fel de semnificativa in toate directiile (relativ la
toate variabilele x1 ,...,xn ), existand directii in care variabilitatea este neglijabila.
Variabilitatea caracteristicii x j este data de varianta Var ( X j ) a vectorului X j format
din valorile caracteristicii x j masurate pentru cele T obiecte.
Prin transformarea (1), vectorii X 1 ,..., X n se transforma in vectorii W1 ,...,Wn .
Variabilitatea componentelor principale
w1 ,...,wn este data de variantele
Var(W1 ),...,Var(Wn ) .
Cu cat variabilitatea unei componente este mai mare, cu atat cunoastem mai bine datele
masurate pentru acea caracteristica (se disting mai bine unele de altele, sunt mai
vizibile). De aceea determinarea componentelor principale w1 ,...,wn se va face astfel
incat variantele Var(W1 ),...,Var(Wn ) sa fie cat mai mari (daca se poate, maximale).
Determinarea componentelor principale w1 ,...,wn revine la determinarea matricii A.
Astfel se ajunge la n probleme de maxim (cate una pentru fiecare componenta w j )

maxVar(W j )
(7) A
j

W j Xa

Conform lui (5):


n

Var(W j ) Var( a jk X k )
k 1

k ,l 1

jk

k ,l 1

jk

a jl Cov( X k , X l )

kl a jl (a j )T a j

( Cov( X k , X l ) kl )
unde ( kl )1k ,l n este matricea de covarianta a vectorilor X 1 ,..., X n .
Atunci conditia de optim din (7) se va scrie:
max
(a j ) T a j , j=1,,n
j
a

Conform acestei observatii, fiecare din problemele de optim (7) are forma:
max T
(8)
T 1
1

unde ... este vectorul necunoscuta, iar conditia T 1 , adica 1 a fost

n
adaugata pentru ca solutia sa fie determinata.
Conditia 1 spune ca vectorul are lungimea 1.
Problema (8) este o problema de extrem conditionat, care se rezolva cu metoda
multiplicatorilor lui Lagrange.
Lagrangeanul problemei (8) se va scrie sub forma
L( , ) T ( T 1)
de unde obtinem sistemul de ecuatii
L ( , )
0

(9)
( scriere vectoriala )
L ( , ) 0

Din prima conditie rezulta 2 2 0 , adica , iar din a doua rezulta
T 1 0 (ceea ce arata ca este satisfacuta conditia a doua).
In concluzie, solutia ~ a problemei de maxim (8) verifica ~ ~ , deci ~ este un
vector propriu al matricii asociat valorii proprii .
Valoarea maxima a functiei obiectiv din (3) va fi:
~
(10) Var(W ) (~)T ~ (~)T ~
Observatie. Matricea de covarianta este simetrica deci toate valorile proprii
1 ,...,n ale lui sunt reale si 0.

Conform celor de mai sus, vectorii coloana a1 ,...,a n ai matricei A vor fi vectorii proprii
ai lui corespunzatori valorilor proprii 1 ,...,n .
In acest fel a fost determinata matricea A , deci au fost determinate transformarile liniare
(1) ce definesc componentele principale w1 ,...,wn .
Conform lui (10):
(11) Var(W j ) j , j=1,,n
De la cursul de algebra lineara stim ca vectorii proprii a1 ,...,a n pot fi alesi ortogonali.
Cum a j (a j ) T a j 1 , vectorii a1 ,...,a n vor fi ortonormali: pentru orice k, l=1,,n,

(a k )T a l kl . Aceasta se mai scrie:


n

(12)

a
j 1

jk

a jl kl , pentru orice k,l=1,,n

1, daca k l
( kl
este simbolul lui Kroneker)
0
,
daca
k

j 1

j 1

Propozitia 1 . Var(W j ) Var( X j )


Demonstratie Conform lui Var(W j )
n

Var(W ) a
j

j 1

j 1 k ,l 1

k ,l 1

j 1

kl ( a jk a jl )
n

k 1

j 1

jk

(conservarea variantei totale)


n

k ,l 1

jk

kl a jl :

kl a jl

k ,l 1

kl

kl

kk Var ( X j )

Observatie. Conform lui (11) si Propozitiei 1:

k 1

i 1

kk i .

Propozitia 1 spune ca varianta totala este conservata prin transformarea liniara (1) atunci
cand vectorii coloana ai matricii A sunt exact vectorii proprii ai matricii de covarianta .

Criterii pentru reducerea dimensionalitatii


Criteriul 1 (Criteriul procentului de acoperire):
Ordonam valorile proprii : 1 2 ... n .
Notam
n

Vartotal i =varianta totala


i 1

1 ... i

Vartotal
Se pune conditia i un prag ales (de obicei 70-75%).
5

Criteriul 2 (Criteriul lui Kaiser): Se retin numai valorile proprii cu proprietatea i 1 .


Criteriul 3. Se retin acele variante mai mari decat media variantelor .
Algoritmul PCA pentru determinarea componentelor principale:
(1) Se calculeaza matricea de covarianta a datelor din Tabelul 1.
(2) Se determina cele n valori proprii ale matricii ca solutii ale ecuatiei :
| I | 0
(3) Se ordoneaza descrescator valorile proprii calculate : 1 2 ... n .
(4) Pentru fiecare valoare proprie j
se determina vectorul propriu atasat

j j j

(cu conditia

1 ).

(5) Se determina forma noilor variabile w1 ,...,wn conform formulelor :

w j ( j )T X , j 1,...,n
(6) Dintre w1 ,...,wn se retin p componente principale ( conform unui criteriu
prestabilit).
(7) Cu formulele de la pasul (5) se calculeaza matricea (tabelul ) scorurilor ( cu T
linii si cu p coloane) .

Exemplu numeric:
Nota: Se va lua numarul de variabile mai mic decat numarul de
observatii.
Consideram patru obiecte (notate 1,2,3,4) pentru care s-au efectuat masuratori relative la
trei caracteristici x1 , . x2 , x3 .
Prin masuratori s-a obtinut urmatoarea matrice de date:

1
2
3
4

x1
1
6
7
2

x2
3
5
6
1

x3
4
1
2
2

Aplicam pasii algoritmului PCA :


Pasul1. Se calculeaza matricea de covarianta a datelor din tabel.

8,666667
5,666667
-2,666667

5,6666667
4,9166667
-0,9166667

-2,6666667
-0,9166667
1,5833333

Pasii 2 si 3. Se determina cele n valori proprii ale matricii si se ordoneaza descrescator:


1 13,38049541
6

2 1,69427391
3 0,09198734
Pasul 4. Pentru fiecare valoare proprie j se determina vectorul propriu atasat.

1
0,7984734
0,5588411
-0,2239126

2
-0,2529110
0.6488904
0,7176191

3
0,5463298
-0,5163698
0,6594588

Pasul 5. Se determina forma noilor variabile w1 , w2 , w3 :


w1 0,7984734x1 0,5588411x2 0,2239126x3
w2 0,2529110x1 0,6488904x2 0,7176191x3
w3 0,5463298x1 0,5163698x2 0,6594588x3
Pasul 6. Dintre w1 , w2 , w3 se retin p componente principale ( conform unui criteriu
prestabilit).
Aplicam criteriul procentului de acoperire
3

Varianta totala: Vartotal i = 13,38049541+ 1,69427391+ 0,09198734=15,1667


i 1

13,38049541
=0,88222
15,1667
Vartotal
1 este suficient de mare, prin urmare vom retine o singura componenta principala, pe
w1 .

Pasul 7.
Calculam scorurile (tinem cont ca p=1):
0.7984734

w11 0.5588411 1 3 4 =1.5793463


0.2239126

0.7984734

w21 0.5588411 6 5 1 7.3611333


0.2239126

0.7984734

w31 0.5588411 7 6 2 8.4945352


0.2239126

0.7984734

w41 0.5588411 2 1 2 1.7079627


0.2239126

Atunci tabelul scorurilor este:

1
2
3
4

w1
1,5793463
7,3611333
8,4945352
1,7079627

6
4
0

Variances

10

pca_date

Comp.1

Comp.2

Comp.3

Nota. In graficul de mai sus sunt reprezentate in ordine descrescatoare variantele celor
trei componente principale = valorile proprii calculate la Pasii 2 si 3.
Observatie . Daca am aplica criteriul lui Kaiser am obtine doua componente principale.
Se apreciaza ca aplicarea acestui principiu nu duce intotdeauna la rezultate concludente
( ca in exemplul precedent) . Se recomanda sa se faca apel si la un alt criteriu.
Sa aplicam si Criteriul 3:
Media variantelor = 5.0555.
Singura varianta mai mare decat aceasta medie este 1 13,38049541, deci si prin
aplicarea acestui criteriu alegem o singura componenta principala.

> date<-data.frame(D1=c(1,6,7,2), D2=c(3,5,6,1), D3=c(4,1,2,2))

> date
D1 D2 D3
1 1 3 4
2 6 5 1
3 7 6 2
4 2 1 2
> S<-cov(date)
>S
D1
D2
D3
D1 8.666667 5.6666667 -2.6666667
D2 5.666667 4.9166667 -0.9166667
D3 -2.666667 -0.9166667 1.5833333

> R<-cor(date)
>R
D1
D2
D3
D1 1.000000 0.8680930 -0.7198740
D2 0.868093 1.0000000 -0.3285412
D3 -0.719874 -0.3285412 1.0000000
>eigen(S)
$values
[1] 13.38049541 1.69427391 0.09189734

$vectors
[,1]
[,2]
[,3]
[1,] 0.7984734 -0.2529110 0.5463298
[2,] 0.5588411 0.6488904 -0.5163698
[3,] -0.2239126 0.7176191 0.6594588
> pca_date<-princomp(date, cor=F)
> names(pca_date)
[1] "sdev" "loadings" "center" "scale" "n.obs"
> loadings(pca_date)

"scores" "call"

Loadings:
Comp.1 Comp.2 Comp.3
D1 0.798 -0.253 0.546
D2 0.559 0.649 -0.516
D3 -0.224 0.718 0.659

10

Comp.1 Comp.2 Comp.3


SS loadings 1.000 1.000 1.000
Proportion Var 0.333 0.333 0.333
Cumulative Var 0.333 0.667 1.000
> summary(pca_date)
Importance of components:
Comp.1 Comp.2
Comp.3
Standard deviation 3.1678655 1.1272557 0.262531914
Proportion of Variance 0.8822305 0.1117104 0.006059165
Cumulative Proportion 0.8822305 0.9939408 1.000000000
> plot(pca_date,type="lines")

Scree plot este un grafic

11

6
4
2
0

Variances

10

pca_date

Comp.1

Comp.2

Comp.3

12

S-ar putea să vă placă și