Skip to content

Quickstart

Install

pip install tppis

Fit TPPIS

from tppis import TPPIS, screen, make_example1

data = make_example1(n=100, p=60, phi=0.7, seed=1)

# Grid search over d, alpha and k (paper defaults).
est = TPPIS().fit(data.X, data.y)
est.selected_, est.d_, est.alpha_, est.k_, est.bic_

# Or fix the parameters.
TPPIS(d=10, alpha=0.4, k=8).fit(data.X, data.y)

# Functional form, same object.
result = screen(data.X, data.y, method="tppis", d=10, alpha=0.4, k=8)

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)
pipe.predict(data.X)

Options

TPPIS(
    alpha_rounding="floor",  # A-1
    bic="paper",             # A-4, natural log of unnormalized RSS
    backend="svd",           # "gram" for very large p
    standardize=True,        # A-5, ddof=0
)