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