################################################### ### chunk number 1: ################################################### options(show.signif.stars=FALSE,digits=4,width=70) ################################################### ### chunk number 2: ################################################### loc <- "http://www.stat.umn.edu/~sandy/courses/8053/Data/food1.dat" (food <- read.table(url(loc),header=TRUE,row.names=1)) ################################################### ### chunk number 3: ################################################### X <- foodC <- scale(food,center=TRUE,scale=TRUE) (R <- var(foodC)) n <- dim(foodC)[1] (sv<-svd(foodC/sqrt(n-1)) ) ################################################### ### chunk number 4: ################################################### # entropies cumsum(sv$d^2)/sum(sv$d^2) ################################################### ### chunk number 5: ################################################### factors <- cbind(sv$d[1]*sv$v[,1], sv$d[2]*sv$v[,2]) rownames(factors) <- colnames(foodC) colnames(factors) <- c("Fact 1","Fact 2") print(t(factors),digits=3) ################################################### ### chunk number 6: zero ################################################### par(mfrow=c(1,2)) plot(factors,type="n",main="Variable Space, corr. scale") abline(h=0); abline(v=0) text(factors,colnames(foodC),cex=.8) plot(sv$d[1]*sv$u[,1],sv$d[2]*sv$u[,2],type="n",main="Individual Space, corr. scale", xlab="meat & fruit", ylab="bread & wine") abline(h=0); abline(v=0) text(sv$d[1]*sv$u[,1],sv$d[2]*sv$u[,2],rownames(foodC),cex=.8) ################################################### ### chunk number 7: one ################################################### foodC <- scale(food,center=TRUE,scale=FALSE) sv<-svd(foodC/sqrt(dim(foodC)[1]-1)) sv$d cumsum(sv$d^2)/sum(sv$d^2) par(mfrow=c(1,2)) plot(sv$d[1]*sv$v[,1],sv$d[2]*sv$v[,2],type="n",main="Variable Space, Cov scale") abline(h=0); abline(v=0) text(sv$d[1]*sv$v[,1],sv$d[2]*sv$v[,2],colnames(foodC),cex=.7) plot(sv$d[1]*sv$u[,1],sv$d[2]*sv$u[,2],type="n",main="Individual Space, Cov scale") abline(h=0); abline(v=0) text(sv$d[1]*sv$u[,1],sv$d[2]*sv$u[,2],rownames(foodC),cex=.7)