[R] understanding eigen(): getting non-normalized eigenvectors

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Jun 10 09:19:59 CEST 2003


Eigenvectors are defined only up to a scalar constant (assuming distinct 
eigenvalues).  However, your `by hand' answer does not pass the simple 
test Av = lambda v for some lambda.  So you cannot reproduce incorrect
answers in R!

Your example is unusual: A is of rank 1.

On 9 Jun 2003, Christoph Lehmann wrote:

> Hi, dear R pros
> 
> I try to understand eigen(). I have seen, that eigen() gives the
> eigenvectors normalized to unit length.
> 
> What shall I do to get the eigenvectors not normalized to unit length?

Multiply them by any randomly chosen non-zero scalar!

> E.g. take the example:
> 
>  A
>      
>            [,1]       [,2]
>   V1  0.7714286 -0.2571429
>   V2 -0.4224490  0.1408163
> 
> Calculating eigen(A) "by hand" gives the eigenvectors (example from
> Backhaus, multivariate analysis):
> 
>  0.77143  and 0.25714
> -0.42245      0.14082

The second is not an eigenvector of A: try it!  They look like rounded
versions of A with a sign error.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list