scientisttools : Multivariate Exploratory Data Analysis with Python
Contents
1. Overview
2. Installation
3. Example
5. About us
Overview
scientisttools is a python package dedicated to multivariate exploratory data analysis, clustering analysis and multidimensional scaling.
scientisttools provides functions for :
-
Generalized Factor Analysis (GFA) :
-
One table
- Correspondence Analysis (CA) and its derivatives (DCA, nsCA, CAiv, CAoiv, bcCA, wcCA)
- Factor Analysis (FA) : Iterative and Non Iterative Principal Factor Analysis (IPFA & NIPFA), Harris Component Analysis (HCA)
- Factor Analysis of Mixed Data (FAMD) and its derivatives (FAMDiv, FAMDoiv, bcFAMD, wcFAMD)
- Varimax rotation in Factor Analysis (FArot)
- Multiple Correspondence Analysis (MCA) and its derivatives (speMCA, MCAiv, MCAoiv, bcMCA, wcMCA)
- Mixed Principal Component Analysis (MPCA) and its derivatives (speMCA, MCAiv, MCAoiv, bcMCA, wcMCA)
- Principal Component Analysis (PCA) and its derivatives (Partial PCA, PCAiv, PCAoiv, bcPCA, wcPCA)
- Principal Component Analysis of Mixed Data (PCAmix) and its derivatives (PCAmixiv, PCAmixoiv, bcPCAmix, wcPCAmix)
- Varimax rotation in Principal Component Analysis (PCArot)
-
Two tables
- Between-class/Within-class Analysis (BWCA)
- Canonical Correlation Analysis (CANCORR)
- Canonical Correspondence Analysis (CCA)
- CO-Inertia Analysis (COIA)
- Principal Component Analysis with (orthogonal) instrumental variables (PCAiv)
- Procrustes Analysis (Procrustes)
-
Multi tables
- Between Group Comparison (BGC)
- Dual Common Component and Specific Weights Analysis (DCCSWA)
- Dual Generalized Procrustean Analysis (DGPA)
- Analysis of Multiple Distance Matrices (DISTATIS)
- Dual Multiple Factor Analysis (DMFA)
- Dual Statis (DSTATIS)
- Flury's Common Principal Component Analysis (FCPCA)
- Internal Correspondence Analysis (ICA)
- Multiple CO-Inertia Analysis (MCOIA)
- Multiple Factor Analysis (MFA)
- Multiple-group Principal Component Analysis (mgPCA)
- Structuration de Tableaux A Trois Indices de la Statistique (STATIS)
-
-
Classification - clustering :
- Categorical Variables Hierachical Clustering on Principal Components (CatVARHCPC)
- Categorical Variables K-Means clustering on Principal Components (CatVARKMeansPC)
- Hierarchical Clustering on Principal Component (HCPC)
- K-Means Clustering on Principal Components (KMeansPC)
- Variables Agglomerative Hierachical Clustering on Principal Components (VARHCPC)
- Variables K-Means Clustering on Principal Components (VARKMeansPC)
-
Multidimensional scaling :
- Principal Coordinates Analysis (PCoA)
-
In some methods, it allowed to add supplementary informations such as supplementary individuals and/or variables.
-
It provides a geometrical point of view, a lot of graphical outputs.
-
It provides efficient implementations, using a scikit-learn API.
Those statistical methods can be used in two ways :
- as descriptive methods ("datamining approach")
- as reduction methods in scikit-learn pipelines ("machine learning approach")
Installation
Global environment
You can directly install scientisttools using pip :
pip install scientisttools
or set a virtual environment.
Virtual environment
Install the 64-bit version of Python 3, for instance from the official website. Now create a virtual environment (venv) and install scientisttools.
The virtual environment is optional but strongly recommended, in order to avoid potential conflicts with other packages.
PS C:\> python -m venv scientisttools-env # create virtual env
PS C:\> scientisttools-env\Scripts\activate # activate
PS C:\> pip install -U scientisttools # install scientisttools
Version
In order to check your installation, you can use.
>>> import scientisttools
>>> print(scientisttools.__version__)
0.2.0post1
Using an isolated environment such as pip venv or conda makes it possible to install a specific version of scientisttools with pip and conda and its dependencies independently of any previously installed Python packages.
You should always remember to activate the environment of your choice prior to running any Python command whenever you start a new terminal session.
Dependencies
scientisttools is compatible with python version which supports both dependencies :
| Packages | Version |
|---|---|
| numpy | 1.21 |
| pandas | 1.4 |
| scikit-learn | 1.2 |
| statsmodels | 0.14.6 |
| plotnine | 0.10.1 |
| openpyxl | 3.1.5 |
| adjustText | 0.8.2 |
| pyreadr | 0.5.4 |
| mizani | 0.14.4 |
| tabulate | 0.9.0 |
Example
- Loading data
>>> from scientisttools.datasets import decathlon
>>> data = decathlon.data
- Principal component analysis
>>> from scientisttools import PCA
>>> clf = PCA(ind_sup=range(41,46),sup_var=(10,11,12))
>>> clf.fit(data)
PCA(ncp=2,ind_sup=range(41,46),sup_var=(10,11,12))
- Visualize eigenvalues/variances:
>>> from scientisttools import fviz_screeplot
>>> p = fviz_screeplot(clf)
>>> print(p.show())
- Extract and visualize results for individuals
>>> # extract the results for individuals
>>> from scientisttools import get_pca
>>> ind = get_pca(clf,"ind")
>>> ind._fields
... ('coord', 'cos2', 'contrib', 'infos')
>>> # individuals factor map
>>> from scientisttools import fviz_pca
>>> p = fviz_pca(clf,choice="ind",repel=True)
>>> print(p.show())
- Extract and visualize results for variables
>>> # extract the results for variables
>>> from scientisttools import get_pca
>>> quanti_var = get_pca(clf,"var")
>>> quanti_var._fields
... ('coord', 'cos2', 'contrib', 'infos')
>>> # variables factor map (=correlation circle)
>>> from scientisttools import fviz_pca
>>> p = fviz_pca(clf,choice="var",repel=True)
>>> print(p.show())
Documentation
The official documentation is hosted on https://scientisttools.readthedocs.io.
About Us
Authors
scientisttools is developed and maintained by Duvérier DJIFACK ZEBAZE, the founder of djifacklab (Djifack Laboratory of Mathematics, Statistics and Economics books and packages production using Python Programming Language).
The djifacklab laboratory maintains others python librairies such as discrimintools, scientistmetrics, scientistshiny, scientisttseries and ggcorrplot.
Feedbacks
If you have found scientisttools useful in your work, research, or company, please let us know by writing to email djifacklab@gmail.com.
Citing scientisttools
If scientisttools has been significant in your research, and you would like to acknowledge the project in your academic publication, we suggest citing it using the following BibTeX format:
@misc{DJIFACK ZEBAZE_2023,
url = {https://github.com/enfantbenidedieu/scientisttools},
title = {scientisttools: Multivariate Exploratory Data Analysis with Python}
author = {DJIFACK ZEBAZE, Duvérier},
year = {2023}
}
Release files for scientisttools 0.2.0.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scientisttools-0.2.0.post1.tar.gz | 296.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scientisttools-0.2.0.post1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 711.2 kB
Release files / scientisttools-0.2.0.post1.tar.gz
| Download URL | scientisttools-0.2.0.post1.tar.gz |
|---|---|
| Size | 296.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
922aacbb58cc511bb7829ca40bacb377669d1b1a87164b97838b8a589eb76c58
|
|
BLAKE2b-256 checksum How to use checksums |
b06de05ed62910365f8aa83c129e7d30b9bfd1e0d515535203935a1cfb2436be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0
|
Release files / scientisttools-0.2.0.post1-py3-none-any.whl
| Download URL | scientisttools-0.2.0.post1-py3-none-any.whl |
|---|---|
| Size | 414.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a123ef73c2451f21be4b77c3123af6ce5a1a7a7296ff2ba899033e2af9846d3f
|
|
BLAKE2b-256 checksum How to use checksums |
ecc40974ff37857a22afd6eb368de6761456ae31256e200c39b78b2535048eb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0
|