[R] Question about the varmx.pca.fd

Qing Li qli at math.wustl.edu
Mon Aug 21 23:00:28 CEST 2006

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

Thank you very much!


More information about the R-help mailing list