[GRASS-user] Calculating eigen values and %varianceexplainedafter PCA analysis

Nikos Alexandris nikos.alexandris at felis.uni-freiburg.de
Fri Feb 27 09:07:32 EST 2009


Wesley:
> Firstly I would like to standardise the PCA, therefore I would like
> each input to contribute equally to the result. As such I use the
> correlation matrix as opposed to the covariance. By using this method
> I do not need to centre the data, yes?

I think we have to make it clear that _data centering_ and
_standardising_ and  are two different things.

# data centering: is about whether the variables should be shifted to be
zero centered (copy-pasted from R's help for prcomp() function).#

# standardising:  //Ehmm... thinking...// if I got the PCA concept
right, using the correlation matrix is a kind of normalising with which
the variance of each input variable/feature/dimension is set to 1 just
before the analysis is applied.#

It's up to you to test data centering or not, and/or standardising or
not. For several applications it has been shown that standardising
improves results in several ways. (!?).



> Secondly, using the by hand method r.covar -r -> m.eigensystem ->
> r.mapcalculator, in particular when applying the eigen vectors to the
> input imagery I can disregard the signs and take them as absolute
> values, yes?

No. My apologies for not being clear before. You can ignore the signs
when you just try to interpret "how much" each original dimension has
affected a component. When it comes to produce a component by hand (as
you describe it above) you _certainly_ need to consider the signs.



> Finally the size of these values indicates their relative contribution
> to the component, so for eg. if band 1 has an eigen vecor of 0.8 and
> band 2 has a value of 0.1, band 1 contributes more to the pc than band
> 2, yes?

Correct (given that you are talking about the _same_ component).



> I will run some tests this afternoon and continue next week and report
> back. Let me know if my knowledge above is correct.

Let _me_ know, if you have the time, if my statements are correct! :-)

Cheers, Nikos



More information about the grass-user mailing list