FlipPA: SignFlip Parallel Analysis for Rank Estimation

Documentation for FlipPA.

๐Ÿ‘‹ This package provides research code and work is ongoing. If you are interested in using it in your own research, I'd love to hear from you and collaborate! Feel free to write: dahong67@wharton.upenn.edu

Please cite the following paper for this technique:

David Hong, Yue Sheng, Edgar Dobriban. "Selecting the number of components in PCA via random signflips", 2022. https://arxiv.org/abs/2012.02985

In BibTeX form:

@Misc{hsd2022stn,
   title  = "Selecting the number of components in PCA via random signflips", 
   author = "David Hong and Yue Sheng and Edgar Dobriban",
   year   = 2022,
   url    = "https://arxiv.org/abs/2012.02985",
}

Docstrings

FlipPA.flippa โ€” Method
flippa(X; quantile=1.0, trials=100, threshold=0.0, comparison=FlipPA.UpperEdge(), rng=default_rng())

Estimate the signal rank of the data X using random signflips.

Optional keyword arguments

  • quantile : quantile for the comparison, default = 1.0
  • trials : number of signflip trials to run, default = 100
  • threshold : threshold for the comparison, default = 0.0
  • comparison : comparison method to use, default = FlipPA.UpperEdge()
  • rng : random number generator, default = default_rng()
FlipPA.permpa โ€” Method
permpa(X; quantile=1.0, trials=100, threshold=0.0, comparison=FlipPA.UpperEdge(), rng=default_rng())

Estimate the signal rank of the data X by permuting the entries of each column.

Optional keyword arguments

  • quantile : quantile for the comparison, default = 1.0
  • trials : number of signflip trials to run, default = 100
  • threshold : threshold for the comparison, default = 0.0
  • comparison : comparison method to use, default = FlipPA.UpperEdge()
  • rng : random number generator, default = default_rng()