Skip to main content

codecov DOI CI

intreg

intreg is a lightweight Python package for fitting interval regression models to censored and interval-bounded data using maximum likelihood estimation.

It provides:

  • Interval regression (IntReg) for left-, right-, exact-, and interval-censored data
  • Mixed-effects interval regression (MeIntReg) using random intercepts
  • Optional L2 regularisation for fixed and random effects
  • A clean NumPy/SciPy-based API suitable for modelling, research, and simulation

The package is useful for modelling censored continuous outcomes such as MIC values, detection limits, truncated biological measurements, and any interval-coded response.


📦 Installation

Install from PyPI

pip install intreg

Install from source (developer mode)

pip install -e .

🧩 Package Structure

The package exposes two core classes:

Class Description
IntReg Interval regression without random effects. Handles all types of censoring.
MeIntReg Mixed-effects interval regression with random intercepts

Both models:

  • use a Gaussian likelihood
  • parameterise variance via log(sigma) for stability
  • accept optional L2_penalties={} to regularise parameters
  • optimise using scipy.optimize.minimize

Project layout (under src/):

intreg/
    __init__.py
    intreg.py
    meintreg.py

🔧 Basic Usage

1. Interval Regression (IntReg)

import numpy as np
from intreg import IntReg

y_lower = np.array([1.0, 2.0, -np.inf, 3.0])
y_upper = np.array([1.0, 2.5, 1.5, np.inf])

model = IntReg(y_lower, y_upper)
model.fit()

print(model.result.x)  # estimated [mu, log_sigma]

2. Mixed-Effects Interval Regression (MeIntReg)

import numpy as np
from intreg import MeIntReg

y_low = np.array([1.0, 2.0, 1.5, -np.inf])
y_high = np.array([1.0, 2.2, np.inf, 1.0])

X = np.column_stack([np.ones(4)])  # intercept-only model
groups = np.array([0, 0, 1, 1])

model = MeIntReg(y_low, y_high, X, random_effects=groups)
model.fit()

print(model.result.x)  # [beta, random_effects, log_sigma]

🧪 Testing

Tests are stored under:

temp/tests/

Run them using:

pytest

📄 License

MIT License.

Metadata

Release files for intreg 0.2.5

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

Source distribution (sdist)

Source distribution for intreg 0.2.5
File Size Uploaded Provenance Actions
intreg-0.2.5.tar.gz 16.6 kB Without provenance Details for intreg-0.2.5.tar.gz

Built distribution (wheel)

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

Total release size: 29.0 kB

Release files / intreg-0.2.5.tar.gz

Download URL intreg-0.2.5.tar.gz
Size 16.6 kB
Tags Source
SHA-256 checksum
How to use checksums
2728dfc59f11356d86154b798f9d64e13f92d64b06c6f45753d924a8ed020250
BLAKE2b-256 checksum
How to use checksums
5a9afaf912341e354fa8ee67544f6209654fb24fb9657a0fb19d019639f60436
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / intreg-0.2.5-py3-none-any.whl

Download URL intreg-0.2.5-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
daf84a12d6e29ee56a4529424a1924a73d8d9eb3e006e868888fe1677b8ef843
BLAKE2b-256 checksum
How to use checksums
0e1befe97a0f005cf222fc79a4e44b42b44d1a19ede5f66151c3fce37a73dead
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for intreg 0.2.5

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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