I dag Kursus 02593 Statistik Anna Helga Jónsdóttir Principal komponent analyse, PCA, Esbensen kapitel 3. Splus ahj@imm.dtu.dk 18. november 2008 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 1 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 2 / 22 Formål med PCA Data matrice Håndtering af mange forklarende variable Forståelse af samvariation Data-reduktion Lad X = [x 1, x 2,..., x p ] være en data matrice med n observationer og p variabler, dvs. p dimensionalt dataset med n observationer Vi antager (for simpelhed) at variablerne i data matricen er blevet centreret, dvs. de har alle sammen gennemsnit lig med 0 X nxp Anvendelse i klassifikation og regression For at illustrere metoden tager vi som eksempel en data matrice med 20 observationer (n) og 3 variabler (p) da det er (meget!) svært at forstille sig et rum med flere en 3 dimensioner Normalt, når PCA anvendes, er antal variabler meget større Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 3 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 4 / 22
Den første principal komponent - PC1 Vi leder efter den retning der forklarer mest muligt af variationen i data. Det svarer til at finde den lineære kombination t 1 = p 11 x 1 + p 12 x 2 + p 13 x 3 der har størst varians (under forudsætning af p 2 1j = 1). Vi kalder t scores og p loadings. Den anden principal komponent - PC2 Vi betragter dernæst planen vinkelret på T 1 og finder den linearkombination der forklarer næstmest variation t 2 = p 21 x 1 + p 22 x 2 + p 23 x 3 igen under forudsætning af p 2 2j = 1. T 1 = p 11 X 1 + p 12 X 2 + p 13 X 3 kalder vi den første principal komponent - PC1. X 1, X 2 og X 3 er enheds vektorerne i de oprindelige rum. T 2 = p 21 X 1 + p 22 X 2 + p 23 X 3 kalder vi den anden principale komponent - PC2. PC1 og PC2 er ortogonale. Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 5 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 6 / 22 Højere ordens PC er PCA - egenskaber Vi kan blive ved med at finde højere ordens PC er som er ortogonale på de andre PC er indtil vi har nået til det maximale antal komponenter til data matricen X De maximale antal komponenter er enten n 1 eller p afhængig af hvilken størrelse der er mindst Det maximale antal principale komponenter for data matricen forklarer hele variationen i data matricen Vores mål er normalt at prøve at forklare en høj del af variationen med (meget) færre komponenter end det maximale antal komponenter De principale komponenter T 1, T 2,... er uafhængige Summen af de oprindelige variables varians er lig summen af de principale komponenters varians (alle PC er med) PC erne er egentlig defineret ud fra en sand underliggende varians-kovarians matrice. Når den estimeres har vi egentlig estimater af de principale komponenter Matematisk svarer loadings til eigenvektorerne for varians-kovarians matricen for de oprindelige data Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 7 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 8 / 22
Skalering Hvis data har forskellige enheder eller hvis det må forventes at data med samme enhed ligger i forskellige intervaller er det fornuftigt at standardisere data x ij,stand = x ij x j s j Dette svarer til at arbejde på korrelationsmatricen istedet for varians-kovarians matricen Loadings Loadings relaterer variablerne i X og PC erne (T). Hver principal komponent kan skrives som lineær kombination af p antal enhedsvektorer i det oprindelige variabel rum: T a = p 1a X 1 + p 2a X 2 + + p pa X p I denne kombination kalder vi p ka for loadings, k = 1,..., p hvor p er antal variabler i data matricen og a = 1,..., A hvor A er antal PC er. Loading koefficienterne udgør loading matricen P, med p rækker og A koloner. Kolonerne i matricen udgør loading vektorerne dvs. loading parametrene for hver PC. P pxa Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 9 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 10 / 22 Scores Scores betragtes som koordinaterne for observationerne i PC rummet. Antal af såkaldte score vektorer er lige med antal PC er: t a = p a1 x 1 + p a2 x 2 + p ap x p PC modellen Vi kan skrive PC modellen som: X = TP + E Struktur + støj hvor T er score matricen, P er loading matricen og E er residual matricen. Score vektorerne udgører score matricen T, med n rækker og A koloner. Kolonerne i matricen udgør score vektorerne og rækkerne såkaldte observationernes scores. T nxa X nxp T = Ṕ + nxa Axp E nxp Hver observation har sin række i T matricen som svarer til observationens koordinater i PC rummet. Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 11 / 22 Hvis A, antal PC er, er lig med maximal antal PC er gælder at E = 0, dvs. hele variationen i X er forklaret med scores og loading matricerne. Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 12 / 22
PC modellen Score- loading- og biplot Vi vil nu finde det optimale antal PC er A som forklarer en høj del af variationen og adskiller signal og støj i data. Scree Plot viser hvor meget af variansen hver PC forklarer; nogle gange er det ret åbenlyst ud fra plottet ca. hvor mange komponenter der er nødvendige så en høj del af variationen er forklaret Under forudsætning af at der arbejdes med standardisere variable: Kun komponenter med varians større end 1 (dette er kun en retningslinie!) Score plot: plot af to score vektorer mod hinanden Viser hvordan observationerne relaterer til hinanden Det mest brugte score plot er PC1 mod PC2 Vi kan bruge score plottene for at prøve at fortolke hvad PC erne repræsenterer Loading plot: plot af to loading vektorer mod hinanden Viser hvordan variablerne relaterer til hinanden Viser hvor meget hver variabel bidrager til PC erne Biplot: Score og loading plots på samme plot Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 13 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 14 / 22 PCA i Splus Eksempel Brug funktionen: pca<-princomp() Hvis analysen skal bygge på standardiserede variabler: pca<-princomp(,cor=t) Screeplot: screeplot(pca) Biplot: biplot(pca,c(1,2),var.axes=f) biplot(pca,c(1,3),var.axes=f) # PC1 og PC2 # PC1 og PC3 Vi har data vedrørende 178 (n) Italienske vine, 59 er Barolo vine, 71 Grignolino vine og 48 Barbera vine. Disse er karakteriseret ved 13 variable: 1) Alcohol (%): alcohol 2) malic acid: ma 3) ash: ash 4) alkalinity of ash: aoa 5) magnesium: mg 6) total phenols: tp 7) flavanoids: flav 8) nonflavanoid phenols: np 9) proanthocyanins: proant 10) colour intensity: ci 11) colour hue: ch 12) OD280/OD315 of diluted wines: OD 13) Praline: praline Barplot af loadings: plot.loadings(loadings(pca)) Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 15 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 16 / 22
Eksempel - Splus Scatter plots # hent data dat<-importdata( italwine.txt ) # gør efterfølgende plot lettere at forstå dimnames(dat)[[1]] <- ifelse(dat$type == "Barolo", "O", ifelse(dat$type == "Barbera", "E", "G")) # kigge på parvise relationer og mulige outliers pairs(dat,pch=16) # fjerne obs. no 63 dat<-dat[-63,] Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 17 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 18 / 22 names(dat) [1] "type" "alcohol" "ma" "ash" "aoa" "mg" "tp" "flav" [9] "np" "proant" "ci" "ch" "OD" "praline" pca.1<-princomp(~alcohol+ma+ash+aoa+mg +tp+flav+np+proant+ci+ch+od+praline,data=dat,cor=t) Screeplot # scores: pca.1$scores # screeplot: screeplot(pca.1) # biplot: biplot(pca.1,c(1,2),var.axes=f) # barplot af loadings: plot.loadings(loadings(pca.1),1:5) Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 19 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 20 / 22
Biplot- PC1/PC2 Barplot af loadings Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 21 / 22 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 18. november 2008 22 / 22