Description Usage Arguments Details Value Author(s) References See Also Examples
A principal component analysis is done in the Aitchison geometry (i.e. clrtransform) of the simplex. Some gimics simplify the interpretation of the computed components as compositional perturbations.
1 2 3 4 5 6 7 8 9 10 11 12  ## S3 method for class 'acomp'
princomp(x,...,scores=TRUE,center=attr(covmat,"center"),
covmat=var(x,robust=robust,giveCenter=TRUE),
robust=getOption("robust"))
## S3 method for class 'princomp.acomp'
print(x,...)
## S3 method for class 'princomp.acomp'
plot(x,y=NULL,..., npcs=min(10,length(x$sdev)),
type=c("screeplot","variance","biplot","loadings","relative"),
main=NULL,scale.sdev=1)
## S3 method for class 'princomp.acomp'
predict(object,newdata,...)

x 
a acompdataset (in princomp) or a result from princomp.acomp 
y 
not used 
scores 
a logical indicating whether scores should be computed or not 
npcs 
the number of components to be drawn in the scree plot 
type 
type of the plot: 
scale.sdev 
the multiple of sigma to use plotting the loadings 
main 
title of the plot 
object 
a fitted princomp.acomp object 
newdata 
another compositional dataset of class acomp 
... 
further arguments to pass to internallycalled functions 
covmat 
provides the covariance matrix to be used for the principle component analysis 
center 
provides the be used for the computation of scores 
robust 
Gives the robustness type for the calculation of the
covariance matrix. See 
As a metric euclidean space the Aitchison simplex has its own
principal component analysis, that should be performed in terms of the
covariance matrix and not in terms of the meaningless correlation
matrix.
To aid the interpretation we added some extra functionality to a
normal princomp(clr(x))
. First of all the result contains as
additional information the compositional representation of the
returned vectors in the space of the data: the center as a composition
Center
, and the loadings in terms of a composition to perturbe
with, either positively
(Loadings
) or negatively (DownLoadings
). The Up and
DownLoadings are normalized to the number of parts in the simplex
and not to one to simplify the interpretation. A value of about one
means no change in the specific component. To avoid confusion the
meaningless last principal component is removed.
The plot
routine provides screeplots (type = "s"
,type=
"v"
), biplots (type = "b"
), plots of the effect of
loadings (type = "b"
) in scale.sdev*sdev
spread, and
loadings of pairwise (log)ratios (type = "r"
).
The interpretation of a screeplot does not differ from ordinary
screeplots. It shows the eigenvalues of the covariance matrix, which
represent the portions of variance explained by the principal
components.
The interpretation of the biplot strongly differs from a classical one.
The relevant variables are not the arrows drawn (one for each component),
but rather the links (i.e., the differences) between two
arrow heads, which represents the logratio between the two
components represented by the arrows.
The compositional loading plot is introduced with this
package. The loadings of all component can be seen as an orthogonal basis
in the space of clrtransformed data. These vectors are displayed by a barplot with
their corresponding composition. For a better
interpretation the total of these compositons is set to the number of
parts in the composition, such that a portion of one means no
effect. This is similar to (but not exactly the same as) a zero loading in a real
principal component analysis.
The loadings plot can work in two different modes: if
scale.sdev
is set to NA
it displays the composition
beeing represented by the unit vector of loadings in the clrtransformed space. If
scale.sdev
is numeric we use this composition scaled by the
standard deviation of the respective component.
The relative plot displays the relativeLoadings
as a
barplot. The deviation from a unit bar shows the effect of each
principal component on the respective ratio.
princomp
gives an object of type
c("princomp.acomp","princomp")
with the following content:
sdev 
the standard deviation of the principal components 
loadings 
the matrix of variable loadings (i.e., a matrix which
columns contain the eigenvectors). This is of class

center 
the clrtransformed vector of means used to center the dataset 
Center 
the 
scale 
the scaling applied to each variable 
n.obs 
number of observations 
scores 
if 
call 
the matched call 
na.action 
not clearly understood 
Loadings 
compositions that represent a perturbation with the vectors represented by the loadings of each of the factors 
DownLoadings 
compositions that represent a perturbation with the inverse of the vectors represented by the loadings of each of the factors 
predict
returns a matrix of scores of the observations in the
newdata
dataset
.
The other routines are mainly called for their side effect of plotting or
printing and return the object x
.
K.Gerald v.d. Boogaart http://www.stat.boogaart.de
Aitchison, J, C. Barcel'oVidal, J.J. Egozcue, V. PawlowskyGlahn
(2002) A consise guide to the algebraic geometric structure of the
simplex, the sample space for compositional data analysis, Terra
Nostra, Schriften der Alfred WegenerStiftung, 03/2003
Aitchison, J. and M. Greenacre (2002) Biplots for Compositional
Data Journal of the Royal Statistical Society, Series C (Applied Statistics)
51 (4) 375392
http://ima.udg.es/Activitats/CoDaWork03
http://ima.udg.es/Activitats/CoDaWork05
clr
,acomp
, relativeLoadings
princomp.aplus
, princomp.rcomp
,
barplot.acomp
, mean.acomp
,
var.acomp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  data(SimulatedAmounts)
pc < princomp(acomp(sa.lognormals5))
pc
summary(pc)
plot(pc) #plot(pc,type="screeplot")
plot(pc,type="v")
plot(pc,type="biplot")
plot(pc,choice=c(1,3),type="biplot")
plot(pc,type="loadings")
plot(pc,type="loadings",scale.sdev=1) # Downward
plot(pc,type="relative",scale.sdev=NA) # The directions
plot(pc,type="relative",scale.sdev=1) # one sigma Upward
plot(pc,type="relative",scale.sdev=1) # one sigma Downward
biplot(pc)
screeplot(pc)
loadings(pc)
relativeLoadings(pc,mult=FALSE)
relativeLoadings(pc)
relativeLoadings(pc,scale.sdev=1)
relativeLoadings(pc,scale.sdev=2)
pc$Loadings
pc$DownLoadings
barplot(pc$Loadings)
pc$sdev^2
cov(predict(pc,sa.lognormals5))

Loading required package: tensorA
Attaching package: 'tensorA'
The following object is masked from 'package:base':
norm
Loading required package: robustbase
Loading required package: energy
Loading required package: bayesm
Welcome to compositions, a package for compositional data analysis.
Find an intro with "? compositions"
Attaching package: 'compositions'
The following objects are masked from 'package:stats':
cor, cov, dist, var
The following objects are masked from 'package:base':
%*%, scale, scale.default
Call:
princomp.acomp(x = acomp(sa.lognormals5))
Standard deviations:
Comp.1 Comp.2 Comp.3 Comp.4
2.4446654 1.2633257 0.4712606 0.2690160
5 variables and 60 observations.
Mean (compositional):
Cu Zn Pb Cd Co
0.117710525 0.306222405 0.567371204 0.004239147 0.004456718
attr(,"class")
[1] acomp
+Loadings (compositional):
Cu Zn Pb Cd Co
Comp.1 0.6068998 0.5985836 0.6809203 1.5692975 1.5442987
Comp.2 1.3189309 1.3440242 0.3936868 0.9642938 0.9790643
Comp.3 1.8475861 0.4506335 0.8975793 0.8601707 0.9440304
Comp.4 0.8563030 0.9394475 0.9110133 0.4496577 1.8435786
attr(,"class")
[1] acomp
Loadings (compositional):
Cu Zn Pb Cd Co
Comp.1 1.3568839 1.3757353 1.2093816 0.5247523 0.5332469
Comp.2 0.6213931 0.6097915 2.0817934 0.8499221 0.8370999
Comp.3 0.4439141 1.8200368 0.9137572 0.9534962 0.8687957
Comp.4 0.9578058 0.8730365 0.9002854 1.8239920 0.4448804
attr(,"class")
[1] acomp
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 2.444665 1.2633257 0.47126060 0.269016049
Proportion of Variance 0.759694 0.2028759 0.02823073 0.009199331
Cumulative Proportion 0.759694 0.9625699 0.99080067 1.000000000
Loadings:
Comp.1 Comp.2 Comp.3 Comp.4
Cu 0.397 0.360 0.714
Zn 0.411 0.379 0.697
Pb 0.282 0.849
Cd 0.553 0.700
Co 0.537 0.711
Comp.1 Comp.2 Comp.3 Comp.4
SS loadings 1.0 1.0 1.0 1.0
Proportion Var 0.2 0.2 0.2 0.2
Cumulative Var 0.2 0.4 0.6 0.8
Comp.1 Comp.2 Comp.3 Comp.4
Cu/Zn 4.10
Cu/Pb 0.89 3.35 2.06
Zn/Pb 0.88 3.41 0.50
Cu/Cd 0.39 1.37 2.15 1.90
Zn/Cd 0.38 1.39 0.52 2.09
Pb/Cd 0.43 0.41 2.03
Cu/Co 0.39 1.35 1.96 0.46
Zn/Co 0.39 1.37 0.48 0.51
Pb/Co 0.44 0.40 0.49
Cd/Co 0.24
Comp.1 Comp.2 Comp.3 Comp.4
Cu/Zn 4.10
Cu/Pb 0.89 3.35 2.06
Zn/Pb 0.88 3.41 0.50
Cu/Cd 0.39 1.37 2.15 1.90
Zn/Cd 0.38 1.39 0.52 2.09
Pb/Cd 0.43 0.41 2.03
Cu/Co 0.39 1.35 1.96 0.46
Zn/Co 0.39 1.37 0.48 0.51
Pb/Co 0.44 0.40 0.49
Cd/Co 0.24
Comp.1 Comp.2 Comp.3 Comp.4
Cu/Zn 1.944
Cu/Pb 0.755 4.606 1.405
Zn/Pb 0.730 4.717 0.723
Cu/Cd 0.098 1.485 1.434 1.189
Zn/Cd 0.095 1.521 0.737 1.219
Pb/Cd 0.130 0.322 1.209
Cu/Co 0.102 1.457 1.372 0.814
Zn/Co 0.099 1.492 0.706 0.834
Pb/Co 0.135 0.316 0.827
Cd/Co 0.684
Comp.1 Comp.2 Comp.3 Comp.4
Cu/Zn 3.7806
Cu/Pb 0.5697 21.2164 1.9747
Zn/Pb 0.5325 22.2512 0.5223
Cu/Cd 0.0096 2.2063 2.0556 1.4142
Zn/Cd 0.0090 2.3139 0.5437 1.4865
Pb/Cd 0.0169 0.1040 1.4621
Cu/Co 0.0104 2.1231 1.8830 0.6619
Zn/Co 0.0097 2.2267 0.4981 0.6958
Pb/Co 0.0182 0.1001 0.6844
Cd/Co 0.4681
Cu Zn Pb Cd Co
Comp.1 0.6068998 0.5985836 0.6809203 1.5692975 1.5442987
Comp.2 1.3189309 1.3440242 0.3936868 0.9642938 0.9790643
Comp.3 1.8475861 0.4506335 0.8975793 0.8601707 0.9440304
Comp.4 0.8563030 0.9394475 0.9110133 0.4496577 1.8435786
attr(,"class")
[1] acomp
Cu Zn Pb Cd Co
Comp.1 1.3568839 1.3757353 1.2093816 0.5247523 0.5332469
Comp.2 0.6213931 0.6097915 2.0817934 0.8499221 0.8370999
Comp.3 0.4439141 1.8200368 0.9137572 0.9534962 0.8687957
Comp.4 0.9578058 0.8730365 0.9002854 1.8239920 0.4448804
attr(,"class")
[1] acomp
Comp.1 Comp.2 Comp.3 Comp.4
5.97638879 1.59599174 0.22208655 0.07236963
Comp.1 Comp.2 Comp.3 Comp.4
Comp.1 5.976389e+00 6.886806e16 1.318136e15 7.929331e17
Comp.2 6.886806e16 1.595992e+00 1.364808e17 1.323361e16
Comp.3 1.318136e15 1.364808e17 2.220866e01 1.549674e17
Comp.4 7.929331e17 1.323361e16 1.549674e17 7.236963e02
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.