Hi, everyone, I got puzzled with this "varmx.pca.fd" function which is in the fda package. According to the description, it carries out the rotation using the "VARIMAX criterion". But in fact, if you use this "varmx.pca.fd" on any objects of class "pca.fd", it will devide the variance equally for each rotated principal component. This is not the VARIMAX criterion. As an example here, see the example given in "pca.fd" function: daytime <- (1:365)-0.5 dayrange <- c(0,365) dayperiod <- 365 nbasis <- 65 dayrange <- c(0,365) daybasis65 <- create.fourier.basis(dayrange, nbasis, dayperiod) harmaccelLfd <- vec2Lfd(c(0,(2*pi/365)^2,0), dayrange) harmfdPar <- fdPar(daybasis65, harmaccelLfd, 1e5) daytempfd <- data2fd(daily$tempav, daytime, daybasis65, argnames=list("Day", "Station", "Deg C")) daytemppcaobj <- pca.fd(daytempfd, nharm=4, harmfdPar) daytemppcaobj <- varmx.pca.fd(daytemppcaobj) If you look at the daytemppcaobj$varprop, you will see [1] 0.2522899 0.2496471 0.2486374 0.2494257 This is different with the results in many paper and books. Moreover, try any data and you will get the rotated principal components with the variance equally devided. Can any one help me with the reason for this? Any comments will be greatly appreciated. Thank you very much! Qing