| tidy.prcomp {broom} | R Documentation |
Tidy summarizes information about the components of a model. A model component might be a single term in a regression, a single hypothesis, a cluster, or a class. Exactly what tidy considers to be a model component varies cross models but is usually self-evident. If a model has several distinct types of components, you will need to specify which components to return.
## S3 method for class 'prcomp' tidy(x, matrix = "u", ...)
x |
A |
matrix |
Character specifying which component of the PCA should be tidied.
|
... |
Additional arguments. Not used. Needed to match generic
signature only. Cautionary note: Misspelled arguments will be
absorbed in |
See https://stats.stackexchange.com/questions/134282/relationship-between-svd-and-pca-how-to-use-svd-to-perform-pca for information on how to interpret the various tidied matrices. Note that SVD is only equivalent to PCA on centered data.
A tibble::tibble with columns depending on the component of PCA being tidied.
If matrix is "u", "samples", or "x" each row in the tidied
output corresponds to the original data in PCA space. The columns are:
|
ID of the original observation (i.e. rowname from original data). |
|
Integer indicating a principle component. |
|
The score of the observation for that particular principle component. That is, the location of the observation in PCA space. |
If matrix is "v", "rotation", or "variables", each row in the
tidied ouput corresponds to information about the principle components
in the original space. The columns are:
|
The variable labels (colnames) of the data set on which PCA was performed |
|
An integer vector indicating the principal component |
|
The value of the eigenvector (axis score) on the indicated principal component |
If matrix is "d" or "pcs", the columns are:
|
An integer vector indicating the principal component |
|
Standard deviation explained by this PC |
|
Percentage of variation explained |
|
Cumulative percentage of variation explained |
Other svd tidiers:
augment.prcomp(),
tidy_irlba(),
tidy_svd()
pc <- prcomp(USArrests, scale = TRUE)
# information about rotation
tidy(pc)
# information about samples (states)
tidy(pc, "samples")
# information about PCs
tidy(pc, "pcs")
# state map
library(dplyr)
library(ggplot2)
pc %>%
tidy(matrix = "samples") %>%
mutate(region = tolower(row)) %>%
inner_join(map_data("state"), by = "region") %>%
ggplot(aes(long, lat, group = group, fill = value)) +
geom_polygon() +
facet_wrap(~ PC) +
theme_void() +
ggtitle("Principal components of arrest data")
au <- augment(pc, data = USArrests)
au
ggplot(au, aes(.fittedPC1, .fittedPC2)) +
geom_point() +
geom_text(aes(label = .rownames), vjust = 1, hjust = 1)