Re: [R] A simple question about PRINCOMP

From: Prof Brian Ripley <>
Date: Fri, 11 May 2007 09:48:06 +0100 (BST)

Yes, rounding error does happen in real-life computation. It would be extraordinary to compile the correlation of real data and get exactly 0: this would require that the data could be represented exactly, for example.

You might find ?zapsmall helpful.

On Thu, 10 May 2007, Takatsugu Kobayashi wrote:

> Hi,
> I just wonder if this is a rounding error by the princomp command in R.
> Although this does not make much sense, using a hypothetical dataset, a,
> a<-matrix(runif(1000),100,10)
> I did PCA with the princomp, and compared it with the results estimated
> with the eigen and the prcomp commands. And I found some differences in
> the results: opposite signs in the loadings; slight differences in
> variances (lambdas), etc. Since the components are orthogonal to each
> other, correlation coefficients between the PC scores should be zero.
> But when I type
> test2<-princomp(a)
> cor(test2$scores)
> I obtained the following cor matrix:
> Comp.1 Comp.2 Comp.3 Comp.4
> Comp.5 Comp.6 Comp.7 Comp.8
> Comp.1 1.000000e+00 -5.819229e-15 1.952317e-16 -1.631710e-16
> 5.489998e-17 5.624600e-17 1.582736e-16 -3.048016e-17
> Comp.2 -5.819229e-15 1.000000e+00 -1.942578e-16 7.219253e-17
> -7.107726e-17 3.492899e-17 -6.670908e-17 1.527489e-16
> Comp.3 1.952317e-16 -1.942578e-16 1.000000e+00 4.922440e-16
> 4.105868e-17 6.342858e-16 2.930614e-16 6.296834e-17
> Comp.4 -1.631710e-16 7.219253e-17 4.922440e-16 1.000000e+00
> 1.308663e-17 -4.556627e-16 2.927150e-16 -1.001956e-17
> Comp.5 5.489998e-17 -7.107726e-17 4.105868e-17 1.308663e-17
> 1.000000e+00 1.169042e-16 1.401771e-16 4.732978e-17
> Comp.6 5.624600e-17 3.492899e-17 6.342858e-16 -4.556627e-16
> 1.169042e-16 1.000000e+00 -4.193547e-16 5.742884e-17
> Comp.7 1.582736e-16 -6.670908e-17 2.930614e-16 2.927150e-16
> 1.401771e-16 -4.193547e-16 1.000000e+00 3.179465e-16
> Comp.8 -3.048016e-17 1.527489e-16 6.296834e-17 -1.001956e-17
> 4.732978e-17 5.742884e-17 3.179465e-16 1.000000e+00
> Comp.9 -4.092284e-17 1.977862e-16 -1.140905e-16 -2.566213e-16
> 2.647648e-17 8.279450e-17 1.603418e-16 -4.015096e-17
> Comp.10 -1.017709e-17 -2.673821e-17 -5.851822e-17 4.417901e-17
> 2.760632e-17 1.247873e-17 -1.622996e-17 4.921851e-17
> Comp.9 Comp.10
> Comp.1 -4.092284e-17 -1.017709e-17
> Comp.2 1.977862e-16 -2.673821e-17
> Comp.3 -1.140905e-16 -5.851822e-17
> Comp.4 -2.566213e-16 4.417901e-17
> Comp.5 2.647648e-17 2.760632e-17
> Comp.6 8.279450e-17 1.247873e-17
> Comp.7 1.603418e-16 -1.622996e-17
> Comp.8 -4.015096e-17 4.921851e-17
> Comp.9 1.000000e+00 2.843887e-16
> Comp.10 2.843887e-16 1.000000e+00
> Aren't all off-diagonal elements in this particular matrix zeros? I am
> sure that these off-diagonal values are substantially small and close to
> zero. But is this because of these commands' rounding error or that I
> did something wrong...?
> Thanks in advance.
> Taka
> ______________________________________________
> mailing list
> PLEASE do read the posting guide
> and provide commented, minimal, self-contained, reproducible code.

Brian D. Ripley,        
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________ mailing list
PLEASE do read the posting guide
and provide commented, minimal, self-contained, reproducible code.
Received on Fri 11 May 2007 - 08:53:35 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 11 May 2007 - 09:31:25 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.