tidy.prcomp {broom} | R Documentation

## Tidy a(n) prcomp object

### Description

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.

### Usage

    ## S3 method for class 'prcomp'
    tidy(x, matrix = "u", ...)

### Arguments

`x` | A `prcomp` object returned by `stats::prcomp()`.

`matrix`

Character specifying which component of the PCA should be tidied.

- `"u"`, `"samples"`, or `"x"`: returns information about the map from the original space into principle components space.

- `"v"`, `"rotation"`, or `"variables"`: returns information about the map from principle components space back into the original space.

- `"d"` or `"pcs"`: returns information about the eigenvalues will return information about

`...`

Additional arguments. Not used. Needed to match generic signature only. Cautionary note: Misspelled arguments will be absorbed in `...`, where they will be ignored. If the misspelled argument has a default value, the default value will be used. For example, if you pass `conf.lvel = 0.9`, all computation will proceed using `conf.level = 0.95`. Additionally, if you pass `newdata = my_tibble` to an `augment()` method that does not accept a `newdata` argument, it will use the default value for the `data` argument.

### Details

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.

### Value

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:

``row`` | ID of the original observation (i.e. rowname from original data).
``PC`` | Integer indicating a principle component.
``value`` | 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:

``row`` | The variable labels (colnames) of the data set on which PCA was performed
``PC`` | An integer vector indicating the principal component
``value`` | The value of the eigenvector (axis score) on the indicated principal component

If `matrix` is `"d"` or `"pcs"`, the columns are:

``PC`` | An integer vector indicating the principal component
``std.dev`` | Standard deviation explained by this PC
``percent`` | Percentage of variation explained
``cumulative`` | Cumulative percentage of variation explained

### See Also

`stats::prcomp()`, svd_tidiers

Other svd tidiers: `augment.prcomp`, `tidy_irlba`, `tidy_svd`

### Examples

    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)

[Package broom version 0.5.2 Index]