findElbowPoint {PCAtools} | R Documentation

## Find the elbow point in the curve of variance explained by each successive PC. This can be used to determine the number of PCs to retain.

### Description

Find the elbow point in the curve of variance explained by each successive PC. This can be used to determine the number of PCs to retain.

### Usage

    findElbowPoint(variance)

### Arguments

`variance` | Numeric vector containing the variance explained by each PC. Should be monotonic decreasing.

### Details

Find the elbow point in the curve of variance explained by each successive PC. This can be used to determine the number of PCs to retain.

### Value

An integer scalar specifying the number of PCs at the elbow point.

### Author(s)

Aaron Lun

### Examples

      col <- 20
      row <- 1000
      mat <- matrix(rexp(col*row, rate = 1), ncol = col)

      # Adding some structure to make it more interesting.
      mat[1:100,1:3] <- mat[1:100,1:3] + 5
      mat[1:100+100,3:6] <- mat[1:100+100,3:6] + 5
      mat[1:100+200,7:10] <- mat[1:100+200,7:10] + 5
      mat[1:100+300,11:15] <- mat[1:100+300,11:15] + 5

      p <- pca(mat)
      chosen <- findElbowPoint(p$variance)

      plot(p$variance)
      abline(v=chosen, col="red")

[Package PCAtools version 2.2.0 Index]