## S3 method for class 'acomp':
princomp(x,\dots,scores=TRUE,center=attr(covmat,"center"),
covmat=var(x,robust=robust,giveCenter=TRUE),robust=getOption("robust"))
## S3 method for class 'princomp.acomp':
print(x,\dots)
## S3 method for class 'princomp.acomp':
plot(x,y=NULL,\dots, 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,\dots)
"screeplot"
is a lined screeplot,
"variance"
is a boxplot-like screeplot, "biplot"
is a
biplot, "loadings"
displays the loadings as a
robustnessInCompositions
for details.princomp
gives an object of type
c("princomp.acomp","princomp")
with the following content:"loadings"
. The last eigenvector is removed since it should
contain the irrelevant scaling.acomp
vector of means used to center the datasetscores = TRUE
, the scores of the supplied data
on the principal components. Scores are coordinates in a basis given by the principal
components and thus not compositionspredict
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
.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 log-ratio 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 clr-transformed 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 clr-transformed 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.clr
,acomp
, relativeLoadings
princomp.aplus
, princomp.rcomp
,
barplot.acomp
, mean.acomp
,
var.acomp
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))
Run the code above in your browser using DataLab