[R] PCA problem in R
Liaw, Andy
andy_liaw at merck.com
Mon Aug 15 19:14:07 CEST 2005
> From: Dennis Shea
>
> [SNIP]>>
> >>>On Sat, 13 Aug 2005, Alan Zhao wrote:
> >>>
> >>>>When I have more variables than units, say a 195*10896
> matrix which has
> >>>>10896 variables and 195 samples. prcomp will give only
> 195 principal
> >>>>components. I checked in the help, but there is no
> explanation that why
> >>>>this happen.
>
> [SNIP]
>
> >Sincerely,
> >Zheng Zhao
> >Aug-14-2005
> >______________________________________________
>
> Just yesterday I subscribed to r-help because I am planning
> on learning the basics of R ... today. :-)
> Thus, I am not sure about the history of this question.
>
> The above situation, more variables than samples,
> is commonly encounterd in the climate studies.
> Consider annual mean temperatures for 195 years
> on a coarse 72 [lat] x 144 [lon] grid [72*144=10368
> spatial variables].
>
> Let S be the number of grid points and T be the number
> of years. I think there is a theorem (?Eckart-Young?)
> which states that the maximum number of unique eigenvalues
> is min(S,T). In your case 195 eigenvalues is correct.
> I speculate that the underlying function transposes the
> input data matrix and computes the the TxT [rather than SxS]
> covariance matrix and solves for the eigenvalues/vectors.
> It then uses a linear transformation to get the results
> for the original input data matrix.
>
> Computationally, the above is much faster and uses less memory.
It is usually a good idea to consult the help page before speculating.
?prcomp has, in its `Detail' section:
The calculation is done by a singular value decomposition of the (centered
and possibly scaled) data matrix, not by using eigen on the covariance
matrix. This is generally the preferred method for numerical accuracy.
Andy
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
>
More information about the R-help
mailing list