I would like to announce Diagonalizations.jl, a new package for multivariate statistics/signal processing. Currently it implements the following linear filters:
Acronym
Full Name
Datasets ( m )
Observations ( k )
PCA
Principal Component Analysis
1
1
Whitening
Whitening (Sphering)
1
1
MCA
Maximum Covariance Analysis
2
1
CCA
Canonical Correlation Analysis
2
1
gMCA
generalized MCA
>1
1
gCCA
generalized CCA
>1
1
CSP
Common Spatial Pattern
1
2
CSTP
Common Spatio-Temporal Pattern
1
>1
AJD
Approximate Joint Diagonalization
1
>1
mAJD
multiple AJD
>1
>1
It is thoroughly tested (for real data input for the moment being) and documented.
Also worth mentioning other existing efforts in the ecosystem like LowRankModels.jl, which generalizes some of these methods to work with other types of data like categorical data.
Quick question: did you contact the people in MultivariateStats.jl to discuss the possibility of adding the features you described above?
I absolutely love what I’m seeing here and second @juliohm. Last I checked MultivariateStats.jl was working towards restructuring its type system and it would probably be beneficial for everyone if they (we) got perspectives from people with multiple use cases.
no, I didn’t. I arrived to Julia less then one year ago and i learnt about MultivariateStats.jl pretty late. In any case, the scope of Diagonalizations.jl is much more restricted as compared to the scope of MultivariateStats.jl. As per the overlapping with MultivariateStats.jl, it is limited to the PCA, Whitening and CCA, which are basic procedures. From there, the path of the two packages diverges. For the future, I guess the iterative solvers implemented in Diagonalizations.jl (more of them could be added later on) may be useful in MultivariateStats.jl, for example, to add more independent component analysis and blind source separation methods. I am actually interested in this if there is any plan.