##### longitudinal gdp data cwar<-dget("http://www.stat.duke.edu/~pdh10/Teaching/567/Data/coldwar") dim(cwar$GDP) dimnames(cwar$GDP) ## untransformed data and decomposition Y<- cwar$GDP - mean(cwar$GDP) udv1<-svd(Y) par(mfrow=c(1,3)) hist(Y) plot(udv1$d,type="h",lwd=4,col="gray") plotwtxt(udv1$u[,1:2],labels=rownames(Y)) abline(h=0,lty=2,col="gray") abline(v=0,lty=2,col="gray") ## transformed data and decomposition lY<-log(cwar$GDP) - mean( log(cwar$GDP) ) udv2<-svd(lY) par(mfrow=c(1,3)) hist(lY) plot(udv2$d,type="h",lwd=4,col="gray") plotwtxt(udv2$u[,1:2],labels=rownames(lY)) abline(h=0,lty=2,col="gray") abline(v=0,lty=2,col="gray") isel<-c(8,14,55,59) rownames(Y)[isel] Ys<-Y[isel,] matplot(t(Ys),type="l") legend( 1,max(Ys), legend=rownames(Ys),lty=1:4,col=1:4,bty="n") udv2$v[,2] # represents growth (change) over time ## which is better? what should the criterion be? udv1$d[1]^2/sum(udv1$d^2) udv2$d[1]^2/sum(udv2$d^2) ## a scale invariant measure r<-1:2 M1<- udv1$u[,r] %*% diag(udv1$d)[r,r] %*% t( udv1$v[,r] ) c1<-cor( rank(Y),rank(M1)) M2<- udv2$u[,r] %*% diag(udv2$d)[r,r] %*% t( udv2$v[,r] ) c2<-cor( rank(lY),rank(M2)) c1 c2 (1-c1)/(1-c2)