Python implementation of partial least squares correlation (PLSC)
Project description
Python implementation of partial least squares correlation (PLSC)
Background
PLSC is a multivariate statistical technique used in neuroscience (McIntosh et al., 1994; McIntosh & Lobaugh, 2004; Krishnan et al., 2011), among other fields. It uses compact singular value decomposition (SVD) to analyze relationships between a multivariate data array and a design matrix. When the object of study is brain-behaviour correlations or functional connectivity, this method is referred to as "behaviour PLSC" or "seed PLSC". In pyplsc, these are implemented by the PLSC() model class.
Multivariate categorical differences across experimental conditions can also be analyzed by applying SVD to matrices of condition-wise averages. This approach is called "mean-centred PLSC" or "barycentric discriminant analysis" (BDA; Abdi et al., 2018) and is implemented in pyplsc by the BDA model class.
Installation
pyplsc can be installed from PyPI with:
pip install pyplsc
pyplsc is tested with Python 3.10 and above but may also work with earlier versions.
Usage
pyplsc replicates the statistical functionality of the PLS Matlab package, much like the pyls library. A major difference is that pyplsc uses a scikit-learn-style model-fitting syntax and accepts tabular (pandas.DataFrame) input:
from pyplsc import PLSC, BDA
mod = PLSC(random_state=123)
mod.fit(data=data_array, covariates=cov_table)
Permutation testing and bootstrap resampling are then run as separate steps (possibly in parallel using the n_jobs parameter):
perm_dist = mod.permute(n_perm=1000, n_jobs=3)
boot_dist = mod.bootstrap(n_boot=1000)
In contrast to other PLS implementations, pyplsc does not require data to be pre-sorted by (between-participant) group and (within-participant) condition:
mod = BDA()
mod.fit(data=data_array,
design=design_matrix_dataframe,
between='group',
within='cond',
participant='subj')
See the documentation for more details and examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyplsc-0.0.9.tar.gz.
File metadata
- Download URL: pyplsc-0.0.9.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d6a408984eab5db2a6b6ce0803602d271df69d772eee4a44f2819045108e6a8
|
|
| MD5 |
881c2973f7b7f5269a4113dc27f110f6
|
|
| BLAKE2b-256 |
1a5a99903302f5db650f7d409030569a6edcefefbbf47adb59e599a356b10761
|
File details
Details for the file pyplsc-0.0.9-py3-none-any.whl.
File metadata
- Download URL: pyplsc-0.0.9-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e5871149270238eb12d03a5e708e7293f32ea58dce1c823cfd5e93849ac59cd
|
|
| MD5 |
1c82f5460c43f0e796534b7d283e8b03
|
|
| BLAKE2b-256 |
1a72429956a2f7d6f607e6f0e8bcb9a228a58b94f1a9e62d3be7f2fe26e30800
|