Principale componenten – E. Omey – HI – AJ 2006 – 2007
1
Principale Componenten 1.
Inleiding
In econometrische studies is het bij de selectie van verklarende variabelen van groot belang om QMC te vermijden. We willen immers werken met (econometrisch) stabiele modellen. De praktijk leert dat QMC veel voorkomt. Meer nog, bij de gewone selectie van variabelen komt het frequent voor dat omwille van QMC veel verklarende variabelen uit het model verdwijnen. Meteen verdwijnt ook veel relevante informatie. Om QMC (en het verwijderen van informatie) te vermijden helpt het niet steeds om bijkomende data te vinden of om de variabelen geschikt te transformeren. Als alternatief bekijken we hier hoe we op een “verstandige manier” verklarende variabelen kunnen samenvoegen tot één of meerdere “nieuwe” verklarende variabelen. Naast toepassingen in econometrie kan het ook de bedoeling zijn om databanken te reduceren. Indien we over een groot aantal variabelen beschikken kan nuttig zijn om de onderliggende “dimensies” te zoeken. Op die manier reduceren we het grote aantal variabelen tot een beperkt aantal factoren die voldoende van de oorspronkelijke variantie verklaren. Mogelijke toepassingen zijn: - antwoorden op een groot aantal (enquëte) vragen reduceren tot een beperkt(-er) aantal onderliggende dimensies; - een index creëren voor aandelen: we vertrekken van de koers van k aandelen en zoeken de belangrijkste (eerste) principale component; - profielen opsellen van klanten op basis van een aantal kenmerken; enzovoort. In principe gaat men er van uit dat de variabelen van het type interval of van het type ratio zijn. Ook dienen er genoeg waarnemingen te zijn. Als vuistregel wordt aangenomen dat er ongeveer 10 keer zoveel waarnemingen moeten zijn als variabelen. Tot slot is het slechts zinvol om principale componenten te gaan zoeken als de variabelen onderling voldoende gecorrelleerd zijn: als de variabelen onderling slechts lage correlaties vertonen dan wijst er dit op dat de variabelen onderling niet (of zwak) afhangen van elkaar. Dan lijkt het moeilijk verdedigbaar om de variabelen te transformeren tot ongecorrelleerd nieuwe variabelen.
Principale componenten – E. Omey – HI – AJ 2006 – 2007
2.
2
Notaties
We vertrekken van k verklarende variabelen X(1) X(2) … X(k)
data: data:
x(1,1), x(1,2), …, x(1,n) x(2,1), x(2,2), …, x(2,n)
data:
x(k,1), x(k,2), …, x(k,n)
De datamatrix stellen we voor door X: ⎛ x(1,1) x(2,1) x(3,1) ⎜ ⎜ x(1,2) x(2,2) x(3,2) X = ⎜ x(1,3) x(2,3) x(3,3) ⎜ ... ... ⎜ ... ⎜ x(1, n) x(2, n) x(3, n) ⎝
... x(k ,1) ⎞ ⎟ ... x(k ,2) ⎟ ... x(k ,3) ⎟ ⎟ ... ... ⎟ ... x(k , n) ⎟⎠
We plaatsen de data per variabele in kolommen en we noteren kortweg als X = (x(1), x(2), …, x(k)). Om geen last te hebben van de verschillende meeteenheden veronderstellen we hierbij dat de data gestandardiseerd zijn. Dit betekent dat voor elke j = 1,2, …, k het rekenkundig gemiddelde gelijk is aan 0 is en dat de (steekproef-) variantie gelijk is aan 1: 1 n x( j ) = ∑ x ( j , i ) =0 n i =1 s 2 ( j) = 1 Hierbij is V ( j) 1 1 = ∑ ( x ( j , i ) − x ( j )) 2 = ∑ x 2 ( j , i ) n n n de gebruikelijke steekproefvariantie. s 2 ( j) =
Bemerk dat s²(j) = V(j)/n, waarbij V(j) = V(X(j)) de variatie is van X(j). Bemerk eveneens dat V(j) in matrixnotatie kan geschreven worden als V(j) = x(j,1)*x(j,1) + x(j,2)*x(j,2) + ... + x(j,n)*x(j,n) ⎛ x( j ,1) ⎞ ⎟ ⎜ = ( x( j ,1) ... x( j , n) )⎜ ... ⎟ ⎜ x ( j , n) ⎟ ⎠ ⎝ = xT(j)x(j)
De totale variabiliteit in de data kan weergegeven worden door
Principale componenten – E. Omey – HI – AJ 2006 – 2007 TV = s 2 (1) + s 2 (2) + ... + s 2 (k ) = k of door TVV = V(1) + V(2) + … + V(k) = nk De variabelen kunnen onderling gecorreleerd zijn en de variantie-covariantie-matrix stellen we voor door C, dit is C = (c(i, j)) = (r(X(i), X(j)) In de plaats van c(i, j) gebruikt men soms ook de variatie-covariatie-matrix waarbij C*(i, j) = V(X(i), X(j)). Herinner dat V(X(i), X(j)) de covariatie is tussen X(i) en X(j): C * (i, j ) = V (i, j ) = ∑ ( x(i, s) − x(i ))( x( j , s ) − x( j )) = nr (i, j ) Bemerk dat r(i,j) in dit geval gelijk is aan r(i,j) = C*(i,j)/n. Omdat C(i, j) = C(i, j) is de matrix C* een symmetrische matrix. Bij gestandardiseerde gegevens vinden we
C * (i, j ) = ∑ x(i, s) x( j , s) In matrix notatie vinden we hier: C*(i,j) = xT(i)x(j) = xT(j)x(i). De variatie-covariatie-matrix C* (bij gestandardiseerde gegevens) is dus gelijk aan C* = XTX
waarbij XT de getransponeerde matrix is van de matrix X. De variantie-covariantie-matrix C is dezelfde matrix op een gemeenschappelijke factor n na.
3
Principale componenten – E. Omey – HI – AJ 2006 – 2007 Voorbeeld. We bekijken de volgende ruwe data i.v.m. de consumptie van varkensvlees. Y
X1
X2
25,65 29,12 29,82 30,96 32,23 31,89 33,55 34,39 35,62 38,22 38,78 36,67 36,99 36,84 39,16 40,94 41,17 41,27 43,47 44,27 46,18 46,05 47,14 45,57 46,92
29,79 29,55 31,62 31,26 30,9 35,9 33,3 30,5 33,6 43,3 35,1 41,6 45,7 45,1 42,1 41,7 43,3 48,1 57,9 54,8 58,7 59,7 53,6 45,9 45,6
34,59 32,71 35,8 37,03 38,27 41,13 40,2 41,97 49,37 50,53 48,33 57,3 58,53 61 63,37 62,87 60,77 68,57 78,6 80,7 77,8 80,97 77,2 74,13 77
De correlatiematrix is de volgende
Y X1 X2
Y 1 0,871277 0,952849
X1
X2
1 0,942804
1
We merken dat de correlatie tussen X1 en X2 groot is. Het is onmogelijk om in één model tegelijk X1 en X2 op te nemen als verklarende variabelen. Om te standardiseren berekenen we het rekenkundig gemiddelde en de (steekproef-) standaardafwijking. m= s² = s=
38,1148 36,5411 6,044923
en we vinden de volgende nieuwe tabel:
41,9448 89,9737 9,485447
57,1496 264,1769 16,25352
4
Principale componenten – E. Omey – HI – AJ 2006 – 2007
y -2,06203 -1,48799 -1,37219 -1,1836 -0,97351 -1,02976 -0,75515 -0,61619 -0,41271 0,017403 0,110043 -0,23901 -0,18607 -0,21089 0,172905 0,467367 0,505416 0,521959 0,8859 1,018243 1,33421 1,312705 1,493021 1,233299 1,456627
x(1) -1,28142 -1,30672 -1,08849 -1,12644 -1,16439 -0,63727 -0,91138 -1,20656 -0,87975 0,142872 -0,72161 -0,03635 0,395891 0,332636 0,016362 -0,02581 0,142872 0,64891 1,682072 1,355255 1,766411 1,871836 1,228746 0,416976 0,385348
x(2) -1,38798 -1,50365 -1,31354 -1,23786 -1,16157 -0,98561 -1,04283 -0,93393 -0,47864 -0,40727 -0,54263 0,009253 0,084929 0,236896 0,382711 0,351948 0,222746 0,702642 1,319739 1,448942 1,270519 1,465553 1,233604 1,044722 1,221299
De correlatiematrix en de variatie-covariatiematrix is gelijk aan: C x(1) x(2)
C* x(1) x(2)
x(1) 1 0,942804
x(1) 25 23,5701
x(2) 0,942804 1
x(2) 23,5701 25
Bemerk dat deze matrices mooie symmetrische matrices zijn. Grafisch vinden we het volgende scatterdiagram
5
Principale componenten – E. Omey – HI – AJ 2006 – 2007
6
scatter x(1) vs x(2) 2 1,5 1 0,5 0 -2
-1
-0,5
0
1
2
3
-1 -1,5 -2
De totale varia(n)tie in de data kan worden voorgesteld met TV = s²(1) + s²(2) = 2 TVV = 25*2 = 50 De grote correlatiecoëfficiënt (r = 0,94) komt tot uiting in de aanwezigheid van een lineaire band in de grafiek.
Principale componenten – E. Omey – HI – AJ 2006 – 2007
3.
De eerste principale component
3.1. Constructie We construeren nu een eerste nieuwe variabele z(1) als volgt. Voor getallen a(1), a(2), …, a(k) die we later bepalen stellen we z(1) = a(1)x(1) + a(2)x(2) + … + a(k)x(k) Toegepast op onze data krijgen we z(1,i) = a(1)x(1,i) + a(2)x(2,i) + … + a(k)x(k,i) voor i = 1, 2, … , n
3.2. Voorbeeld (vervolg) We nemen bijvoorbeeld a(1) = 0,6 en a(2) = -0,3 en berekenen z(1) = 0,6*x(1) – 0,3*x(2). We vinden de volgende tabel:
m s²
x(1) -1,2814 -1,3067 -1,0885 -1,1264 -1,1644 -0,6373 -0,9114 -1,2066 -0,8797 0,1429 -0,7216 -0,0364 0,3959 0,3326 0,0164 -0,0258 0,1429 0,6489 1,6821 1,3553 1,7664 1,8718 1,2287 0,4170 0,3853 0,0000 1,0000
x(2) -1,3880 -1,5036 -1,3135 -1,2379 -1,1616 -0,9856 -1,0428 -0,9339 -0,4786 -0,4073 -0,5426 0,0093 0,0849 0,2369 0,3827 0,3519 0,2227 0,7026 1,3197 1,4489 1,2705 1,4656 1,2336 1,0447 1,2213 0,0000 1,0000
z(1) -0,3525 -0,3329 -0,2590 -0,3045 -0,3502 -0,0867 -0,2340 -0,4438 -0,3843 0,2079 -0,2702 -0,0246 0,2121 0,1285 -0,1050 -0,1211 0,0189 0,1786 0,6133 0,3785 0,6787 0,6834 0,3672 -0,0632 -0,1352 0,0000 0,1106
7
Principale componenten – E. Omey – HI – AJ 2006 – 2007
8
Bemerk dat het rekenkundig gemiddelde van z(1) gelijk is aan: z (1) = a (1) x (1) + a ( 2) x ( 2) = 0
We vinden als resultaat steeds de waarde 0 omdat de variabelen gestandardiseerd zijn. Voor de varia(n)tie vinden we s ²( z (1)) = a ²(1) s ²(1) + a ²( 2) s ²( 2) + 2a (1) a ( 2) r (1,2) = 0,1106
en V ( z (1)) = a ²(1)V (1) + a ²( 2)V ( 2) + 2a (1)a ( 2)V (1,2) = 2,7647
Bij andere keuzes van a(1) en a(2) vinden we uiteraard andere waarden. Bij de keuze a(1) = a(2) = 0,8 vinden we bijvoorbeeld dat s²(z(1)) = 2,49
3.3. Matrixnotatie In het algemeen is het handig om met matrixnotaties te werken. In matrixnotatie vinden we dat z(1) = Xa, waarbij en
X de datamatrix is, a de kolom met daarin a(1), a(2), …, a(k) z(1) de kolom met z(1,i)-waarden.
We berekenen nu V(z(1)) en vinden V(z(1)) = ΣiΣj a(i)a(j)V(i, j) = ΣiΣj a(i)a(j)C(i, j) In matrixnotatie is V(z(1)) gelijk aan: V(z(1)) = aT C a Wanneer we met de variantie-covariantiematrix werken vinden we s²(z(1)) = V(z(1))/n. We willen nu met één variabele (z(1)) zovéél mogelijk van de totale variatie TVV vastleggen. Dit betekent dat we “een zo goed mogelijke” vector a wensen te vinden. Dit leidt tot het volgend optimalisatieprobleem: max s²(Z(1)) = aT C* a of
max s²(Z(1)) = aT C a
Principale componenten – E. Omey – HI – AJ 2006 – 2007
3.4. Voorbeeld (vervolg) In ons voorbeeld moeten we de volgende functie maximaliseren: s ²( z (1)) = a ²(1) s ²(1) + a ²( 2) s ²( 2) + 2a (1) a ( 2) r (1,2)
Omdat de gegevens gestandardiseerd zijn is dit: s ²( z (1)) = a ²(1) + a ²( 2) + 2a (1) a ( 2) r (1,2)
Als we geen bijkomende voorwaarden opleggen aan de getallen a(1) en a(2) leidt dit optimaliseringsprobleem niet tot een oplossing! (Waarom niet?)
3.5. Optimaliseren Als we geen restricties opleggen aan de getallen (a(1), a(2), ..., a(k)) dan leidt dit probleem niet tot een oplossing: door a geschikt te kiezen kan men V(z(1)) of s(z(1)) zo groot maken als men maar wil! Om de coëfficiënten a(j) onder controle te houden eisen we dat de vector a = (a(1), a(2), …, a(k))
een genormaliseerde vector is, d.w.z. dat Σ a²(j) = 1. In matrixnotatie kunnen we deze voorwaarde herschrijven als: aTa = 1. Dit leidt tot het volgend optimalisatieprobleem: max s²(Z(1)) = aT C a randvoorwaarde: aTa = 1 Voor een 2x2-voorbeeld vinden we: max V(z(1)) = a²(1)C(1,1) + 2a(1)a(2)C(1,2) + a²(2)C(2,2) randvoorwaarde: a²(1) + a²(2) = 1 Met de methode van Lagrange vinden we L = a²(1)C(1,1) + 2a(1)a(2)C(1,2) + a²(2)C(2,2) - λ(a²(1) + a²(2) – 1) Afleiden naar a(1) en naar a(2) geeft:
en
2a(1)C(1,1) + 2a(2)C(1,2) - 2λa(1) = 0 2a(1)C(1,2) + 2a(2)C(2,2) - 2λa(2) = 0 a²(1) + a²(2) = 1
9
Principale componenten – E. Omey – HI – AJ 2006 – 2007
10
Vereenvoudigen geeft:
en
a(1)C(1,1) + a(2)C(1,2) = λa(1) a(1)C(1,2) + a(2)C(2,2) = λa(2) a²(1) + a²(2) = 1
(**)
In matrixnotatie vinden we
en
Ca = λa aTa = 1
We merken de vector a een genormaliseerde rechtereigenvector is van de matrix C bij de eigenwaarde λ. Voor een kxk-probleem vinden we identiek dezelfde vergelijkingen
en
Ca = λa aTa = 1
In het algemeen heeft een kxk-matrix meerdere eigenwaarden (en bijhorende genormaliseerde eigenvectoren). Welke eigenwaarde moeten we nu kiezen? Bemerk dat uit Ca = λa en aTa = 1 volgt dat s²(z(1)) = aT C a = λ aT a = λ Omdat we V(z(1)) willen maximaliseren volgt hieruit dat we de grootste eigenwaarde moeten kiezen. Opmerking. Het bestaan van een grootste (reële) eigenwaarde is gegarandeerd omdat de matrix C een symmetrische matrix is
Principale componenten – E. Omey – HI – AJ 2006 – 2007
3.6. Procedure De nieuwe variabele z(1) vinden we bijgevolg via de volgende procedure: - bepaal de grootste eigenwaarde λ(1) van de matrix C; - bepaal de bijhorende genormaliseerde rechtereigenvector a; - bereken nu z(1) = Xa - De gevonden a is de oplossing van het optimaliseringsprobleem max V(z(1)) = aT C a randvoorwaarde: aTa = 1 Uit de constructie volgt onder meer dat s²(z(1)) = aT C a = aT λ(1) a = λ(1) De nieuwe variabele z(1) noemen we de eerste principale component. Als matrix C kiezen we ofwel de covariatiematrix ofwel de covariantiematrix. Opmerking Om de bijdrage tot z(1) van de twee variabelen te bepalen berekenen we covariaties en correlaties. De covariantie tussen z(1) en x(1) is gelijk aan
C(z(1), x(1)) = a(1)C(1,1) + a(2)C(1, 2) Dank zij formule (**) vinden we C(z(1), x(1)) = a(1)C(1,1) + a(2)C(1, 2) = λ(1)a(1) Anderzijds weten we dat s²(z(1)) = λ(1) en dat s²(x(1)) = 1. De correlatiecoëfficiënt tussen z(1) en x(1) is bijgevolg gelijk aan r(z(1), x(1)) = λ(1)a(1)/√ λ(1) = a(1)√ λ(1) Op gelijkaardige wijze vinden we dat r(z(1), x(2)) = a(2)√ λ(1) Bemerk nu dat r²(z(1), x(1)) + r²(z(1), x(2)) = a²(1) λ(1) + a²(1) λ(1) = λ(1) Men noemt r²(z(1), x(1)) de bijdrage van x(1) tot de eerste principale component.
11
Principale componenten – E. Omey – HI – AJ 2006 – 2007
12
3.7. Praktisch Om z(1) effectief te bepalen kunnen we bijvoorbeeld de solver-functie van EXCEL gebruiken. We illustreren m.b.v. het vorige voorbeeld - we beginnen met arbitrair gekozen waarden a(1) en a(2) start a(1) a(2)
0,6 -0,3 som =
kwadrateren 0,36 0,09 0,45
1
= must
In het voorbeeld beginnen we met (0,6, -0,3); Om de eis a²(1) + a²(2) = 1 hard te maken berekenen we a²(1) en a²(2) en berekenen we de som. Hier vinden we som = 0,45. In een lege cel plaatsen we de waarde “1”. Later eisen we dat de inhoud van de cel waar we de som berekenden gelijk moet zijn aan de inhoud van de cel waar we het getal “1” plaatsten. - De doelfunctie is de functie f = aT C a. In een lege cel gebruiken we de formules om voor onze keuze van a(1) en a(2) de functiewaarde van f te berekenen. In ons voorbeeld vinden we f=
0,110591
- We activeren nu de solver en vullen de volgende gegevens in:
- Bij de target cell klikken we op de cel waar we de doelfunctie berekenden. - We willen hier maximaliseren.
Principale componenten – E. Omey – HI – AJ 2006 – 2007
13
- Bij “by changing cells” klikken we op ons eerste voorstel van a-waarden - Bij de voorwaarden eisen we dat de berekende som van de kwadraten gelijk is aan 1. - Nu klikken we op “solve” en vinden de volgende output:
a(1) a(2)
f=
start 0,707107 0,707107 som =
kwadrateren 0,5 0,5 1
1
= must
1,942804
We vinden optimale a-waarden gelijk aan (afgerond) a(1) = 0,7071, a(2) = 0,7071 De som van de kwadraten is (zo goed als) gelijk aan 1. De maximale waarde van de doelfunctie is f* = 1.9428… We besluiten dat - dee grootste eigenwaarde van C is dus gelijk aan 1.9428... - de bijhorende genormalseerde rechtereigenvector is aT = (0,7071, 0,7071) De eerste principale component kunnen we dus bepalen via de volgende formule: z(1) = 0.7071*x(1) + 0.7071*x(2) Opmerking. Bij grotere problemen is het aan te raden om de solver 2 of 3 maal te gebruiken met andere startwaarden voor a.
3.8. Grafische betekenis (voor k = 2) In het scatterdiagram kunnen we de rechte tekenen met vergelijking y = x. Dit is de vergelijking van de rechte lijn door de oorsprong en door de gevonden vector (a(1), a(2)) = (0,7071, 0,7071). Dit is de eerste bissectrice! Voor het voorbeeld vinden we de volgende grafiek:
Principale componenten – E. Omey – HI – AJ 2006 – 2007
2,0000 1,5000 1,0000 0,5000 0,0000 -2,0000 -1,5000 -1,0000 -0,5000 0,0000 0,5000 1,0000 1,5000 2,0000 -0,5000 -1,0000 -1,5000 -2,0000
De eerste principale component correspondeert nu met de projectie van de verschillende punten op de diagonaal.
14
Principale componenten – E. Omey – HI – AJ 2006 – 2007
4.
15
Tweede principale componenten
4.1. Algemeen We construeren nu een tweede variabele z(2) als volgt. Voor getallen b(1), b(2), …, b(k) die we later zullen bepalen stellen we z(2) = b(1)x(1) + b(2)x(2) + … + b(k)x(k) Toegepast op onze data krijgen we z(2,i) = b(1)x(1,i) + b(2)x(2,i) + … + b(k)x(k,i) voor i = 1, 2, … , n In matrixnotatie vinden we dat z(2) = Xb,
waarbij
en
X de datamatrix is, b de kolom met daarin b(1), b(2), …, b(k) z(2) de kolom met z(i)-waarden.
Om de coëfficiënten b(j) onder controle te houden eisen we opnieuw dat de vector (b(1), b(2), …, b(k)) een genormaliseerde vector is, d.w.z. dat Σ b²(j) = 1. In matrixnotatie kunnen we deze voorwaarde herschrijven als: bTb = 1. Om geen QMC te vermijden eisen we eveneens dat V(z(1), z(2)) = 0 of dat de correlatie tussen de reeds gevonden principale component en de nieuwe component gelijk is aan 0. We vinden hier V(Z(1), Z(2)) = Σ z(1,i)z(2, j) = zT(2)z(1) = bTXTXa = bT C a = bTλ(1)a = λ(1) bTa
(constructie a !)
Omdat we willen dat V(z(1), z(2)) gelijk is aan 0 volgt dat we bijkomend moeten eisen dat bTa = 0. In matrixnotatie is s²(z(2)) gelijk aan s²(z(2)) = bT C b Omdat we de variatie willen maximaliseren vinden we het volgend optimalisatieprobleem: max s²(Z(2)) = bT C b randvoorwaarden: bTb = 1 en bTa = 0 Hier is a uiteraard de vector die we reeds vonden bij de eerste principale component. Het optimalisatieprobleem leidt tot de volgende vergelijking:
Principale componenten – E. Omey – HI – AJ 2006 – 2007
16
Cb = λb
Hieruit volgt dat de vector b een genormaliseerde rechtereigenvector is van de matrix C bij de eigenwaarde λ. Welke eigenwaarde moeten we nu kiezen? Bemerk dat uit Cb = λb volgt dat s²(z(2)) = bTCb = λbT b = λ Omdat we s²(z(2)) willen maximaliseren volgt hieruit dat we de tweede grootste eigenwaarde van C moeten kiezen.
4.2. Procedure De nieuwe variabele z(2) vinden we bijgevolg als volgt: - bepaal de tweede grootste eigenwaarde λ(2) van de matrix C; - bepaal de bijhorende rechtereigenvector b; - bereken nu z(2) = Xb Opmerking Het bestaan van een tweede grootste (reële) eigenwaarde is gegarandeerd omdat de matrix C een symmetrische matrix is. Uit deze constructie volgt onder meer dat s²(Z(2)) = bTCb = bTλ(2)b = λ(2) De nieuwe variabele z(2) noemen we de tweede principale component.
Principale componenten – E. Omey – HI – AJ 2006 – 2007
17
4.3. Voorbeeld (vervolg). Voor ons voorbeeld gebruiken we opnieuw EXCEL en de solver-optie. We vinden hier het volgende resultaat a 0,707107 0,707107
f* =
b -0,70710709 0,707107088 som = eis =
b² 0,5 0,5 1,000001 1
ab -0,5 0,5 0 0
0,057196
We vinden nu b(1) = -0,7071 en b(2) = +0,7071 De doelfunctie heeft nu de optimale waarde f* = 0.0572 .... Dit is meteen de tweede grootste eigenwaarde van de matrix C. De tweede principale component is dus gelijk aan z(2) = -0,7071*x(1) + 0.7071*x(2) We vinden de volgende tabel met data: x(1) -1,2814 -1,3067 -1,0885 -1,1264 -1,1644 -0,6373 -0,9114 -1,2066 -0,8797 0,1429 -0,7216 -0,0364 0,3959 0,3326 0,0164 -0,0258 0,1429 0,6489 1,6821 1,3553 1,7664 1,8718 1,2287 0,4170 0,3853 0,0000 1,0000
x(2) -1,3880 -1,5036 -1,3135 -1,2379 -1,1616 -0,9856 -1,0428 -0,9339 -0,4786 -0,4073 -0,5426 0,0093 0,0849 0,2369 0,3827 0,3519 0,2227 0,7026 1,3197 1,4489 1,2705 1,4656 1,2336 1,0447 1,2213 0,0000 1,0000
z*(1) -1,8875 -1,9872 -1,6985 -1,6718 -1,6447 -1,1475 -1,3818 -1,5136 -0,9605 -0,1870 -0,8940 -0,0192 0,3400 0,4027 0,2822 0,2306 0,2585 0,9557 2,1226 1,9829 2,1474 2,3599 1,7411 1,0336 1,1361 0,0000 1,9428
z*(2) -0,07535 -0,13925 -0,15913 -0,07879 0,001997 -0,24631 -0,09295 0,192784 0,283625 -0,38901 0,126561 0,032247 -0,21988 -0,0677 0,259048 0,267114 0,05648 0,037994 -0,25621 0,066246 -0,35065 -0,28729 0,003435 0,443883 0,591106 0,0000 0,0572
Principale componenten – E. Omey – HI – AJ 2006 – 2007
18
Bemerk dat λ(1) + λ(2) = 1,9428 + 0,0572 = 2
Opmerking. In de terminologie van lineaire algebra voerden we de volgende manipulaties uit: * we vertrekken van (x(1), x(2)) en van de eenheidsbasisvectoren eT(1) = (1 ,0) en eT(2) = (0, 1) * we construeren (z(1), z(2)) = (a(1)x(1) + a(2)x(2), b(1)x(1) + b(2)x(2)) In matrixnotatie is dit de volgende transformatie : ⎛ z (1) ⎞ ⎛ a (1) a (2) ⎞⎛ x(1) ⎞ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎝ z (2) ⎠ ⎝ b(1) b(2) ⎠⎝ x(2) ⎠
⎛ x(1) ⎞ ⎟⎟ A⎜⎜ ⎝ x(2) ⎠
We kunnen ook de omgekeerde transformatie uitvoeren. In dit geval vinden we ⎛ z (1) ⎞ ⎛ x(1) ⎞ ⎛ a (1) b(1) ⎞⎛ z (1) ⎞ ⎟⎟ = A t ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟⎜⎜ ⎝ z (2) ⎠ ⎝ x(2) ⎠ ⎝ a(2) b(2) ⎠⎝ z (2) ⎠ waarbij At = A-1 de inverse is van de matrix A. In feite vervangen wij bij principale componenten de eenheidsbasis eT(1) = (1 ,0) en eT(2) = (0, 1) door een nieuwe basis aT en bT. Grafisch betekent dit dat we ons assenkruis roteren tot de coördinaten van de punten t.o.v. de nieuwe basis loodrecht op elkaar staan. Zie verderop.
Principale componenten – E. Omey – HI – AJ 2006 – 2007
19
4.4. Bemerkingen 4.4.1. Informatie In ons voorbeeld met twee variabelen vinden we dat λ(1) + λ(2) = 1,9428 + 0,0572 = 2 Dit is uiteraard geen toeval! Intuïtief kunnen we dit verklaren als volgt: we vertrekken met informatie over twee variabelen en we construeren 2 nieuwe variabelen. De informatie vervat in de nieuwe variabelen is even groot als de informatie vervat in de oude variabelen. We merken ook dat de eerste principale component een groot deel van het totaal (nl. 2) vertegenwoordigt. Met de eerste principale component verklaren we 1,94/2 = 0,97 van het totaal. Met andere woorden: de eerste principale component vertegenwoordigt 97% van de totale informatie. De tweede component vertegenwoordigt slechts 3% van het totaal. Dit betekent eigenlijk dat z(2) een overbodige variabele is.
4.4.2. Grafisch Grafisch vinden we het volgend beeld. Op de grafiek tekende ik de twee rechten: * door de oorsrpong en (a(1), a(2)): y = x * door de oorsprong en (b(1), b(2)): y = - x 2,0000 1,5000 1,0000 0,5000 0,0000 -2,0000 -1,5000 -1,0000 -0,5000 0,0000 0,5000 1,0000 1,5000 2,0000 -0,5000 -1,0000 -1,5000 -2,0000
Principale componenten – E. Omey – HI – AJ 2006 – 2007
20
De twee rechten staan loodrecht op elkaar. De principale componenten vinden we nu door de oorspronkelijke puntenkoppels te projecteren op deze rechten. Wanneer we nu alles bekijken vanuit het standpunt van de twee getekende rechten (en dus alles roteren), dan vinden we:
0,8 0,6 0,4 0,2 0 -3
-2
-1
-0,2
0
1
2
3
-0,4 -0,6
4.4.3. Diagonaliseren De gevolgde werkwijze komt er op neer dat we de correlatiematrix diagonaliseren. Onze constructie toonde dat bT C a = bT C a = 0 aT C a = λ(1) bT C b = λ(2)
In matrix notatie vinden we 0 ⎞ ⎛ a(1) a(2) ⎞ ⎛ a(1) b(1) ⎞ ⎛ λ (1) ⎜⎜ ⎟⎟C ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ ⎝ b(1) b(2) ⎠ ⎝ a(2) b(2) ⎠ ⎝ 0 λ (2) ⎠ De twee kolomvectoren a en b vormen een nieuwe basis voor de twee-dimensionele ruimte.
Principale componenten – E. Omey – HI – AJ 2006 – 2007
21
5. Volgende principale componenten Het procédé zoals hiervoor beschreven zetten we nu verder om nieuwe variabelen te genereren. We bepalen de eigenwaarden van de matrix C en bepalen telkens een bijhorende genormaliseerde rechtereigenvector. Vervolgens construeren we hiermee nieuwe variabelen Z(j): λ(1) λ(2) … λ(j)
a b
z(1) = Xa z(2) = Xb
s²(z(1)) = λ(1) s²(z(2)) = λ(2) en V(z(1), z(2)) = 0
d
z(j) = Xd
s²z(j)) = λ(j) en V(z(j),Z(i)) = 0, i ≠ j
Wanneer we vertrekken van k variabelen, dan kunnen we in principe k principale componenten bepalen. Van de bijhorende eigenwaarden weten we dat λ(1) +λ(2) + ... + λ(k) = k Over hoeveel principale componenten men ‘moet’ nemen is er onenigheid bij verschillende auteurs. Meestal spreekt men vooraf een bepaald percentage (p) af en men berekent principale componenten 1, 2, ..., r tot (λ(1) +λ(2) + ... + λ(r))/k > p.
Principale componenten – E. Omey – HI – AJ 2006 – 2007
22
6. Uitgewerkt voorbeeld We gebruiken data omtrent de prijs (in BEF) van tweedehandswagens en een viertal relevante variabelen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 m s
PRIJS Y 124000 119000 400000 500000 480000 434000 479000 485000 405000 385000 322000 372000 265000 390000 455000 690000 477000 256000 720000 400000 450000 420000 285000 362000 457000 462000 285000 310000 161000 285000 350000 64000 463000 164000 310000 371028,5714 141209,9725
LEEFTIJD X1 79 97 19 17 22 19 8 30 14 34 33 29 58 36 19 8 19 90 4 13 14 9 35 14 14 25 78 41 66 36 28 114 25 61 24 35,2 27,46093
OPTIES X2 3 4 10 12 11 10 12 14 8 11 7 10 1 11 12 14 16 7 15 7 4 7 9 11 8 14 11 9 3 8 5 4 14 10 8 9,142857 3,712087
KM X3 123000 104000 15000 24000 45000 30000 91000 29000 33000 86000 41000 15000 95000 47000 50000 39000 35000 90000 40000 47000 14000 30000 54000 41000 54000 32000 145000 78000 84000 54000 117000 128000 32000 140000 30000 60342,86 37202,11
DEUREN X4 5 5 3 3 3 5 5 3 3 5 5 5 5 5 5 2 5 5 2 3 5 5 3 3 3 5 2 5 5 3 3 5 5 5 3 4,057143 1,119767
De correlatiematrix is gelijk aan: C Y X1 X2 X3 X4
Y 1,00 -0,84 0,72 -0,66 -0,41
X1 1,00 -0,53 0,75 0,33
X2
X3
X4
1,00 -0,42 -0,28
1,00 0,16
1,00
Principale componenten – E. Omey – HI – AJ 2006 – 2007
23
Na standardiseren vinden we de volgende principale componenten.
lambda cumul %
a 0,59889 -0,4895 0,54406 0,3251
b 0,1555 0,0499 0,4099 -0,897
c 0,223 0,862 0,376 0,258
d -0,753 -0,124 0,6284 0,1496
2,30002 2,30002 0,575
0,8844 3,1844 0,7961
0,597 3,781 0,945
0,2186 4 1
Met de eerste component verklaren we 2,3/4 = 57% van de totale variabiliteit. Met de eerste en de tweede principale component verklaren we 79% van de totale variatie. Met 3 componenten samen verklaren we 94% van de variatie. In het licht van de (gestandardiseerde) prijs bekijken we de volgende (z(1), Y) ) grafiek: y versus z(1) 4 3 2 z(1)
1 0 -3
-2
-1
-1
0
1
2
3
-2 -3 y
We merken dat een grote resp. lage z(1)-score overeenstemt met een grote resp. lage (gestandardiseerde) prijs. De z(1)-score kan als het ware dienen als een soort prijsindex.
Principale componenten – E. Omey – HI – AJ 2006 – 2007
24
7. Hoeveel componenten? Bij deze analyses kunnen we vertrekkend van k variabelen in principe k principale componenten bepalen. Veelal zal men voor verder gebruik enkel de ‘belangrijke’ componenten weerhouden. Empirisch stelt men vast dat vanaf een ogenblik de eigenwaarden zeer klein worden en dit impliceert dat de marginale bijdrage van de bijhorende componenten zeer klein worden. In de literatuur is men het niet eens over het aantal componenten dat men moet weerhouden. Dikwijls legt men de grens op p = 50 % We werkten het vorige voorbeeld uit wanneer we beschikken over meer informatie. Via de beschreven procedure bepaalden we de eerste drie principale componenten en vonden de volgende resultaten:
X1 X2 X4 X5 X6 X7 X9 X10 X11
LEEFTIJD OPTIES CC # eig BORG DEUREN VERSN KM DIESEL
a 0,54501 -0,4618 -0,22533 0,2739 -0,08387 0,31571 0,170629 0,46787 0,095977
b -0,05446 -0,0532 0,34384 0,274179 -0,47581 -0,10777 -0,3923 0,015384 0,63927
c -0,33878 -0,03794 -0,09657 0,28179 0,47806 0,257466 0,3994 -0,20044 0,54821
2,606 29%
1,554 46%
0,878 56%
eigenwaarden cumulatief/9
Bij de eerste principale component spelen vooral de kenmerken van de auto’s mee (leeftijd, opties, # deuren, # km). Bij de tweede component zijn het objectieve kenmerken ( CC, Diesel of niet) die doorwegen. Met de drie componenenten samen bekomen we 56% van de variatie in de oorspronkelijke data. In vele gevallen is het moeilijk om een concrete (economische) betekenis te geven aan de principale componenten zelf.
8. Regressie-analyse In praktijkstudies willen we een variabele y verklaren met één of méér verklarende variabelen x(1), x(2), ..., x(k). Het doel van principale componenten is om dit uit te voeren met minder, maar “betere” verklarende variabelen. Stel dat we vertrekken van 5 variabelen x(1), x(2), x(3),x(4) en x(5) en daaruit 2 principale compontenten distilleren: z(1) = a(1)x(1) + a(2)x(2) + a(3)x(3) + a(4)x(4) + a(5)x(5) z(2) = b(1)x(1) + b(2)x(2) + b(3)x(3) + b(4)x(4) + b(5)x(5) Een regressie van y op z(1) en z(2) geeft dan:
Principale componenten – E. Omey – HI – AJ 2006 – 2007 y
25
= uz(1) + vz(2) + e = (ua(1) + vb(1))x(1) + (ua(2) + vb(2))x(2) + ... + (ua(5) + vb(5))x(5) + e
Deze laatste formule is dan op zijn beurt nuttig om voorspellingen te maken en te beoordelen.
Opmerking Om het met de woorden van G.S. Madalla te zeggen: “The method of PCA is of limited use and it can be (and has been) easily misused in econometric work” Bronnen G. Henrion, A. Henrion und R. Henrion. Beispiele zur Datenanlyse mit BASICProgrammen. VEB Deutscher Verlang dr Wissenschaften, Berlin 1988.
J. Johnston. Econometric Methods (2nd edition). McGraw-Hill Inc. 1972. G.S. Maddala. Econometrics. McGraw-Hill Inc. 1977. Website: http://www.statsoft.com/textbook.stfacan.html
Principale componenten – E. Omey – HI – AJ 2006 – 2007
26
Principale Componenten .............................................................................................1 1. Inleiding ............................................................................................................1 2. Notaties..............................................................................................................2 3. De eerste principale component......................................................................7 3.1. Constructie.........................................................................................................7 3.2. Voorbeeld (vervolg) ..........................................................................................7 3.3. Matrixnotatie.....................................................................................................8 3.4. Voorbeeld (vervolg) ..........................................................................................9 3.5. Optimaliseren ....................................................................................................9 3.6. Procedure.........................................................................................................11 3.7. Praktisch ..........................................................................................................12 3.8. Grafische betekenis (voor k = 2) ....................................................................13 4. Tweede principale componenten ..................................................................15 4.1. Algemeen..........................................................................................................15 4.2. Procedure.........................................................................................................16 4.3. Voorbeeld (vervolg). .......................................................................................17 4.4. Bemerkingen....................................................................................................19 4.4.1. Informatie .................................................................................................19 4.4.2. Grafisch.....................................................................................................19 4.4.3. Diagonaliseren ..........................................................................................20 5. Volgende principale componenten ...................................................................21 6. Uitgewerkt voorbeeld.........................................................................................22 7. Hoeveel componenten? ......................................................................................24 8. Regressie-analyse ...............................................................................................24