#*********************************************************** #Laboratorio 20: Regresion con Componentes Principales # Requiere la libreria mva # Edgar Acuna, Mayo 2003 #************************************************************ library(mva) # Ejemplo 1: Conjunto de datos millaje millaje<-read.table(file="http://math.uprm.edu/~edgar/millaje.txt",header=T) pcmilla<-prcomp(millaje[,2:5],retx=T,scale=T) summary(pcmilla) #Haciendo el screeplot para seleccionar los componentes a usar screeplot(pcmilla) #Haciendo regresion usando los componenentes principales milla1<-as.data.frame(cbind(millaje$mpg,pcmilla$x)) colnames(milla1)[1]="mpg" l1<-lm(mpg~PC1,data=milla1) summary(l1) l2<-lm(mpg~PC1+PC2,data=milla1) # Notar que los coeficientes de regresion anteriores no varian summary(l2) l3<-lm(mpg~PC1+PC2+PC3,data=milla1) summary(l3) l4<-lm(mpg~PC1+PC2+PC3+PC4,data=milla1) summary(l4) #******************************************************** #Ejemplo 2:Conjunto de datos pollution pollution<-read.table("http://math.uprm.edu/~edgar/pollution.dat",header=F) pcpollu<-prcomp(pollution[,1:15],retx=T,scale=T) summary(pcpollu) # Haciendo el screeplot para seleccionar las componentes a usar screeplot(pcpollu,npcs=15,type="lines") #Haciendo regresion usando los componenentes principales pollu1<-as.data.frame(cbind(pollution$V16,pcpollu$x)) #colnames(pollu1)[1]="mort" m1<-lm(V1~PC1,data=pollu1) #Regresion stepwise usando los componentes principales y el criterio AIC summary(m1) step(m1,scope=~.+PC2+PC3+PC4+PC5+PC6+PC7+PC8+PC9+PC10+PC11+PC12+PC13+PC14+PC15,direction="forward") m2<-lm(V1~.,data=pollu1) step(m2,scope=~.,direction="backward")