Skip to main content

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.8+. On 3.9+ it uses scikit-learn 1.6+; on 3.8 it uses scikit-learn 1.3. The TPPIS API is the same.

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.8+, NumPy, SciPy, and scikit-learn.

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.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tppis 0.1.1
File Size Uploaded
tppis-0.1.1.tar.gz 30.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tppis 0.1.1
File Interpreter ABI Platform
tppis-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 59.3 kB

Release files / tppis-0.1.1.tar.gz

Download URL tppis-0.1.1.tar.gz
Size 30.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bfbdbfa6f11c118e0ba293b5c5603d4e91510a07dfaf7dd97f194ca3e5404fcf
BLAKE2b-256 checksum
How to use checksums
53d5e428be0ec59c719f59335bfce376c244843938855c0fc2c8b74d1e3c6008
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

Release files / tppis-0.1.1-py3-none-any.whl

Download URL tppis-0.1.1-py3-none-any.whl
Size 28.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
939ffa7a59f168dde718e35ff2853c881a7f152e37384d2e7b2dc43555023dfe
BLAKE2b-256 checksum
How to use checksums
31c93f6d1bb5621e6c69c6a53c314b7635f01dbf09c87381372855153b444462
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page