# Generating data x<-sort(scale(rnorm(200))) y<-scale(x+0.5*rnorm(200)) data<-data.frame(x,y) plot(data,xlim=c(-3,3),ylim=c(-3,3)) title("Highly correlated data") # Performing PCA and plotting the first PC pca = princomp(data) arrows(0,0,pca$loadings[1],pca$loadings[2],0.1,col="red",lwd=3) plot(pca$scores[,1]) # Recreating the information from the first PC plot(data,xlim=c(-3,3),ylim=c(-3,3)) points(pca$scores[,1]%*%t(pca$loadings[1]),pca$scores[,1]%*%t(pca$loadings[2]),col="red") # PC2 plot(pca$scores[,2]) plot(data,xlim=c(-3,3),ylim=c(-3,3)) arrows(0,0,pca$loadings[1],pca$loadings[2],0.1,col="red",lwd=3) arrows(0,0,pca$loadings[3],pca$loadings[4],0.1,col="red",lwd=3) # Both PCs plot(pca$scores[,1],pca$scores[,2],xlab="PC1",ylab="PC2") title("All principal components") # More commands summary(pca) screeplot(pca) loadings(pca) biplot(pca) #Later