[R] Principal Components in a Linear Model
Chris Wilkinson
kinsham at verizon.net
Fri Nov 22 17:47:36 CET 2013
My data has correlations between predictors so I think it would be
advantageous to rotate the axes with prcomp().
> census <-
read.table(paste("http://www.stat.wisc.edu/~rich/JWMULT02dat","T8-5.DAT",sep
="/"),header=F)
> census
V1 V2 V3 V4 V5
1 5.935 14.2 2.265 2.27 2.91
2 1.523 13.1 0.597 0.75 2.62
3 2.599 12.7 1.237 1.11 1.72
4 4.009 15.2 1.649 0.81 3.02
5 4.687 14.7 2.312 2.50 2.22
6 8.044 15.6 3.641 4.51 2.36
7 2.766 13.3 1.244 1.03 1.97
8 6.538 17.0 2.618 2.39 1.85
9 6.451 12.9 3.147 5.52 2.01
10 3.314 12.2 1.606 2.18 1.82
11 3.777 13.0 2.119 2.83 1.80
12 1.530 13.8 0.798 0.84 4.25
13 2.768 13.6 1.336 1.75 2.64
14 6.585 14.9 2.763 1.91 3.17
> pca1 <- prcomp(census)
> summary(pca1)
Importance of components:
PC1 PC2 PC3 PC4 PC5
Standard deviation 2.6327 1.3361 0.62422 0.47909 0.11897
Proportion of Variance 0.7413 0.1909 0.04168 0.02455 0.00151
Cumulative Proportion 0.7413 0.9323 0.97394 0.99849 1.00000
> pca1$rotation # eigenvectors
PC1 PC2 PC3 PC4 PC5
V1 -0.78120807 0.07087183 -0.003656607 0.54171007 0.302039670
V2 -0.30564856 0.76387277 0.161817438 -0.54479937 0.009279632
V3 -0.33444840 -0.08290788 -0.014841008 0.05101636 -0.937255367
V4 -0.42600795 -0.57945799 -0.220453468 -0.63601254 0.172145212
V5 0.05435431 0.26235528 -0.961759720 0.05127599 -0.024583093
I'd like to create a linear model based on the rotated axes.
> linmod <- lm(y~a+b+....)
Could someone be kind enough to suggest how to code a, b...?
Chris
More information about the R-help
mailing list