I dag Kursus 02593 Statistik Anna Helga Jónsdóttir ahj@imm.dtu.dk 25. november 2008 PCR: Principal component regression Motiverende eksempel Hvad er PCR? Hvordan går man? Splus Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 1 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 2 / 27 Hvad er PCR? Eksempel, Data 1 1 2 3 4 5 6 1 2 3 4 5 6 7 PCR = PCA + MLR x1 Regression teknik som kan klare mange x-variabler Situation: givet Y og X-data 1 2 3 4 5 6 x2 Lav PCA på X-matricen x3 Definere nye variabler: de principale komponenter (scores) Brug nogle af disse nye variabler i MLR til at modellere/prediktere Y Y kan være univariat eller multivariat - i denne kurs kun univariat 1 2 3 4 5 6 7 x4 y 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 3 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 4 / 27
MLR model: MLR model E[y i ] = b 0 + b 1 x i1 + b 2 x i2 + b 2 x i3 + b p x i4 Intercept 0.1589 0.1404 1.132 0.375 x1 0.1763 0.1347 1.309 0.321 x2-0.2457 0.1765-1.392 0.299 x3 0.4068 0.2826 1.439 0.287 x4 0.6472 0.3168 2.043 0.178 Vi fjerner en variabel af gangen: Intercept -0.02310 0.10685-0.216 0.837 x4 1.02855 0.02408 42.710 0.000000133 R 2 = 0.9973, F Model = 1824 (p-value = 0.000000133) R 2 = 0.9993, F Model = 675 (p-value = 0.001480) Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 5 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 6 / 27 Eksempel, Data 2 Eksempel, Data 1 1 2 3 4 5 6 7 2 3 4 5 6 7 1 2 3 4 5 6 1 2 3 4 5 6 7 x1 x1 1 2 3 4 5 6 7 x2 1 2 3 4 5 6 x2 x3 x3 2 3 4 5 6 7 x4 1 2 3 4 5 6 7 x4 y y 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 7 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 8 / 27
MLR model, Data 2: MLR model, Data 2: E[y i ] = b 0 + b 1 x i1 + b 2 x i2 + b 2 x i3 + b p x i4 Intercept -0.1668 0.4309-0.387 0.736 x1-0.8141 1.6888-0.482 0.677 x2-0.1027 0.8635-0.119 0.916 x3 2.0695 1.4133 1.464 0.281 x4-0.1354 0.6183-0.219 0.847 Vi fjerner en variabel af gangen: Intercept -0.14774 0.25808-0.572 0.592 x3 1.01508 0.05739 17.686 0.0000106 R 2 = 0.9843, F Model = 312.8 (p-value = 0.0000106) R 2 = 0.9877, F Model = 40.26 (p-value = 0.02439) Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 9 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 10 / 27 MLR med gennemsnit af de forklarende variable Vi laver en ny variabel, xmn som er gennemsnittet x variablerne. xmn PC1 for disse data: xmn = (x 1 + x 2 + x 3 + x 4 )/4 Data 1 Intercept 0.24606 0.11809 2.084 0.0916 xmn 0.97818 0.02674 36.586 0.000000287 R 2 = 0.9963, F Model = 1339 (p-value = 0.000000287) Data 2 Intercept -0.17598 0.31791-0.554 0.604 xmn 1.02418 0.07099 14.426 0.0000289 R 2 = 0.9765, F Model = 208.1 (p-value = 0.0000289) Prædiktioner Vi simulerer 7000 nye observationer 0.00 0.05 0.10 0.15 0.20 0.25 Average squared prediction error Full MLR Average x3 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 11 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 12 / 27
PCR: hvad er det? PCR: hvor mange komponenter? Data situation: y = y 1 y 2.. y n, X = x 11 x 12 x 1p x 21 x 22 x 2p......... x n1 x n2 x ip Hvor mange komponenter (A) skal indgå i modellen? Bestem med Cross validation Vi laver MLR med A antal principale komponenter t 1,..., t A som forklarende variabler i stedet for alle (eller nogle) af x variablerne. Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 13 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 14 / 27 Cross validation ( Full ) Udelad en af observationerne Fit modellen på de resterende (reduceret) data Prædiktér den udeladte observation ved brug af modellen: ŷ i,val Gentag for ALLE observationerne og beregn den samlede resultat for modellen: RMSEP = n (y i ŷ i,val ) 2 /n RMSEP = Root Mean Squared Error of Prediction i Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 15 / 27 Cross Validation ( Full ) Til sidst: Lav cross-validation for ALLE mulige valg af antallet af komponenter (0, 1, 2,...,...) OG plot resultatet: RMSEP 0 2 4 6 8 10 Validation results 0 1 2 3 4 5 6 7 No components Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 16 / 27
Cross Validation ( Full ) Cross Validation/Jackknifing Vælg det optimale antal komponenter: Den med overordnede minimal fejl Den første lokale mininum En god praktisk tilgang: Del data op i TRAINING og TEST set Brug cross-validation på TRAINING data Til sidst: Kontroller modellens præstationer på test sættet Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 17 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 18 / 27 Cross Validation - princippet Minimér den forventede prædiktions fejl (prediction error): Kvadreret prædiktion fejl = Bias 2 + Varians Ved at inkludere mange PC-komponenter: LAV bias, men HØJ varians Ved at inkludere få PC-komponenter: HØJ bias, men LAV varians Vælg det bedste kompromis! Bemærk: Inkluder ALLE komponenter = MLR (når n > p) Eksempel Vi har data som stemmer fra en syltetøjs undersøgelse. Vi har i alt 12 observationer af hindbær syltetøj hvor bærerne var plukket på fire forskellige steder (C1, C2, C3, C4) og høstet på tre forskellige tidspunkter (H1, H2, H3). Vores Y variabel er gennemsnit af præference score (fra 1-9) givet af 114 repræsentative forbrugere. Vores X variabler er såkaldte sensoriske variabler hvor trænede sensoriske paneldeltager har dømt 12 sensoriske variabler: 1) REDNESS redness 2) COLOUR color intensity 3) SHININES shiness 4) R.SMELL raspberry smell 5) R.FLAV raspberry flavor 6) SWEETNES redness 7) SOURNESS sourness 8) BITTERNE biterness 9) OFF.FLAV off-flavour 10) JUICINES juciness 11) THICKNES thikness 12) CHEW.RES chewing resistanse Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 19 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 20 / 27
Eksempel - Splus Scree plot # hent data: dat<-importdata("jam.txt") # gør efterfølgende plot lettere at forstå: dimnames(dat)[[1]]<-dat$c.h # lav PCA på x variablerne: pca.1<-princomp(~redness+colour+shinines+r.smell+ R.FLAV+SWEETNES+SOURNESS+BITTERNE+OFF.FLAV+JUICINES+ THICKNES+CHEW.RES,data=dat,cor=T) Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 21 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 22 / 27 Biplot Barplot af loadings Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 23 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 24 / 27
Cross validering Prædiktion fejl # maksimal anal PC er max.comp=min(dim(x)[1]-1,dim(x)[2]) # cross validering for(p in 2:10){ i=1 yhat = y yhat[] = NA for(i in 1:nrow(X)) { PCA = princomp(~., X[-i,], cor=t) # Evt. cor=f PCAsc = predict(pca) MLR = lm(y[-i] ~., as.data.frame(pcasc[,1:p])) newscores = as.data.frame(predict(pca, X[i,])) yhat[i] = predict(mlr, newscores[,1:p]) } prederr[p-1]<-sqrt(mean((y-yhat)^2)) # Et mål for prædiktionsevne } # bar plot barplot(prederr,names=as.character(2:(max.comp)),yplot= Prediction error ) Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 25 / 27 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 26 / 27 PCA+MLR=PCR # PCR med 5 PC er scores<-predict(pca.1) fit1<-lm(dat$preferen ~., as.data.frame(scores[,1:5])) summary(fit1) Coefficients: Value Std. Error t value Pr(> t ) (Intercept) 5.0167 0.0913 54.9595 0.0000 Comp.1-0.1052 0.0401-2.6219 0.0395 Comp.2 0.8581 0.0494 17.3707 0.0000 Comp.3 0.7703 0.0576 13.3724 0.0000 Comp.4-0.4683 0.1427-3.2820 0.0168 Comp.5 1.0023 0.1899 5.2770 0.0019 Residual standard error: 0.3162 on 6 degrees of freedom Multiple R-Squared: 0.9887 Anna Helga Jónsdóttir (ahj@imm.dtu.dk) Kursus 02593 25. november 2008 27 / 27