tppis
Open-source Python implementation of Truncated Preconditioned Profiled Independence Screening (TPPIS) from Tanaka and Matsui (2023), plus the baselines SIS, FPSIS (and FPSIS-BIC), and PPIS.
The method screens variables in high-dimensional regression when predictors are strongly multicollinear. A factor-analysis transform removes the common factors; TPPIS then truncates the tail of that transform so the unique-factor signal is not washed out.
Maintainer: Mohammed Aswath M · mohammed.aswath07@gmail.com · issues: github.com/Mohammed-Aswath/tppis
Install
pip install tppis
The package requires Python 3.10+, NumPy, SciPy, and scikit-learn 1.6+.
From a clone of this repository:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
Requires Python 3.10+, NumPy, SciPy, and scikit-learn 1.6+.
Quickstart
from tppis import TPPIS, make_example1
data = make_example1(n=100, p=80, phi=0.7, seed=0)
est = TPPIS().fit(data.X, data.y)
est.get_support(indices=True) # selected columns, ranking order
est.d_, est.alpha_, est.k_ # BIC-chosen parameters
est.bic_
est.grid_ # every (d, alpha, k, bic) evaluated
Fixed parameters, no search:
TPPIS(d=20, alpha=0.4, k=10).fit(data.X, data.y)
Inside a scikit-learn pipeline:
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
from tppis import TPPIS
pipe = Pipeline([
("select", TPPIS(d=8, alpha=0.6, k=10)),
("lm", LinearRegression()),
])
pipe.fit(data.X, data.y)
The functional entry point screen(X, y, method="tppis") returns the same fitted estimator.
When to use which method
| Method | Transform | How d is chosen |
|---|---|---|
| SIS | none (X.T @ y) |
— |
| FPSIS | project out leading d factors |
singular-value ratio (3) |
| FPSIS-BIC | same | BIC grid |
| PPIS | Puffer whitening of the tail | singular-value ratio (3) |
| TPPIS | PPIS with the tail truncated at [n α] |
joint BIC over d, α, k |
TPPIS at alpha=1 is exactly PPIS. That identity is tested.
Citation
If you use the method, cite the paper. If you use this software, cite the package as well.
Tanaka, S. and Matsui, H. (2023). Variable screening using factor analysis
for high-dimensional data with multicollinearity. arXiv:2306.05702.
See CITATION.cff.
License
MIT. See LICENSE.
Release files for tppis 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tppis-0.1.0.tar.gz | 29.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tppis-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.3 kB
Release files / tppis-0.1.0.tar.gz
| Download URL | tppis-0.1.0.tar.gz |
|---|---|
| Size | 29.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a33d6c4068f7b14c28c3fa450f9cc9886ec688184f0a769e094c0c1c6f15ea8
|
|
BLAKE2b-256 checksum How to use checksums |
311bf2786139cc165db96d5dbe3b09ff93a4ccef27eaa812d7f8235c9b16ccb9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / tppis-0.1.0-py3-none-any.whl
| Download URL | tppis-0.1.0-py3-none-any.whl |
|---|---|
| Size | 27.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9114b87a66f5d3ea1bc7d9a2f3ebf3e9ee528cca6cfeb288a8f7036be7d8f86b
|
|
BLAKE2b-256 checksum How to use checksums |
fb936fa5e956d7da8de7d876fecef4a5b8e63a328dcfc54b21dd53cc5feddc93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency log