Skills
A skill is a package of structured files that teaches an AI coding agent how to work with a specific tool or framework. The skill below was generated by Great Docs from this project’s documentation. Install it in your agent and it will be able to run commands, edit configuration, write content, and troubleshoot problems without step-by-step guidance from you.
Any agent — install with npx:
npx skills add https://rich-iannone.github.io/whittaker/Codex / OpenCode
Tell the agent:
Fetch the skill file at https://rich-iannone.github.io/whittaker/skill.md and follow the instructions.Manual — download the skill file:
curl -O https://rich-iannone.github.io/whittaker/skill.mdOr browse the SKILL.md file.
SKILL.md
--- name: whittaker description: > A next-generation Generalized Additive Model (GAM) library for Python. Use when writing Python code that uses the whittaker package. license: MIT compatibility: Requires Python >=3.10. --- # whittaker A next-generation Generalized Additive Model (GAM) library for Python. ## Installation ```bash pip install whittaker ``` ## API overview ### Core model The primary GAM interface for fitting, predicting, and inspecting models. - `GAM`: Generalized Additive Model with automatic smoothness selection - `PredictionResult`: Container returned by `GAM.predict()` for `type="response"` or `type="link"` - `TermsPredictionResult`: Container returned by `GAM.predict(type="terms")` - `PosteriorPredictResult`: Container returned by `GAM.posterior_predict()` - `GoodnessOfFit`: Goodness-of-fit statistics returned by `GAM.goodness_of_fit()` - `GamCheckResult`: Container returned by `GAM.gam_check()`, bundling residual diagnostics with fit summary - `CheckDataResult`: Structured diagnostic data underlying `check()` plots - `SensitivityResult`: Result of a smoothing-parameter sensitivity analysis - `PartialDependenceResult`: Partial dependence data for one smooth term - `SimultaneousCIResult`: Simultaneous confidence band for a smooth term ### Inference Result types from parametric and smooth tests, concurvity, influence diagnostics, derivatives, marginal effects, and contrasts. - `ParametricTestResult`: Result of a Wald test for a parametric coefficient - `SmoothTestResult`: Result of an approximate test for H_0: f_j = 0 - `ConcurvityResult`: Concurvity diagnostics for smooth terms - `KCheckResult`: Result of basis dimension adequacy check for a single smooth - `InfluenceResult`: Observation-level influence diagnostics - `DispersionTestResult`: Result of a dispersion test - `VIFResult`: Variance inflation factor for a parametric term - `DerivativeResult`: Result of smooth derivative estimation - `MarginalEffectResult`: Result of marginal effect estimation for one smooth term - `ContrastResult`: Result of a pairwise comparison between two conditions ### Formula Formula parsing and term specifications for model construction. - `Formula`: A parsed model formula: the structured representation of a `GAM`'s right-hand side - `SmoothTerm`: A smooth term, e.g. `s(x1, bs='cr', k=10)` or `te(x1, x2)` - `LinearTerm`: A plain linear (parametric) term, e.g. `x1` or `group` - `InteractionTerm`: A two-way parametric interaction between two bare covariates, e.g. `x1 * x2` - `OffsetTerm`: An offset term, e.g. `offset(log_exposure)` - `parse_formula`: Parse *formula* into a `~whittaker.formula.terms.Formula` ### Response families Distributions and link functions for the response variable. Each family specifies a conditional distribution and a link function relating the linear predictor to the conditional mean. - `Family`: Abstract family defining the response distribution and link function - `Gaussian`: Gaussian (Normal) family with identity link - `Poisson`: Poisson family with log (canonical) link - `Binomial`: Binomial family with logit (canonical) link - `Gamma`: Gamma family with log link - `NegativeBinomial`: Negative Binomial family with log link (NB2 parameterization) - `Beta`: Beta regression family with logit link - `Tweedie`: Tweedie family with log link - `TweedieEstimated`: Tweedie family with variance power estimated by profile likelihood - `tw`: Create a Tweedie family with estimated variance power - `InverseGaussian`: Inverse Gaussian family with log link - `CoxPH`: Cox proportional hazards family for survival analysis - `OrderedCategorical`: Ordered categorical (proportional odds / cumulative logit) family - `Multinomial`: Multinomial logistic family for unordered categorical responses ### Distributional families (GAMLSS) Location-scale-shape families for distributional regression, where multiple distribution parameters are modeled as smooth functions. - `GAMLSSFamily`: Abstract base class for GAMLSS distributional families - `GaussianLS`: Gaussian location-scale family for GAMLSS - `GammaLS`: Gamma location-scale family for GAMLSS - `BetaLS`: Beta family for GAMLSS with mean-precision parameterisation - `ZeroInflatedPoisson`: Zero-inflated Poisson (ZIP) family for GAMLSS - `ZeroInflatedNegativeBinomial`: Zero-inflated negative binomial (ZINB) family for GAMLSS ### Distributional regression The GAMLSS fitting interface for distributional regression models. - `GAMLSS`: Generalized Additive Model for Location, Scale, and Shape - `GAMLSSPrediction`: Result of `GAMLSS.predict()` ### Smooth basis types Basis constructors for smooth terms. Each basis type can be specified in a formula via `bs=` or constructed directly for advanced use. - `SmoothBasis`: Abstract base class for all smooth basis types - `TPRS`: Thin Plate Regression Splines (TPRS) - `CRS`: Cubic Regression Splines (natural cubic splines with quantile knots) - `PSpline`: P-Spline: B-spline basis with m-th order difference penalty - `CyclicCRS`: Cyclic Cubic Regression Spline (periodic natural cubic spline) - `CyclicPSpline`: Cyclic P-Spline (periodic B-spline basis with circular difference penalty) - `ShrinkageTPRS`: Shrinkage Thin Plate Regression Spline - `ShrinkageCRS`: Shrinkage Cubic Regression Spline - `DuchonSpline`: Duchon spline basis - `GaussianProcess`: Gaussian process (kriging) smooth basis - `SoapFilm`: Soap film smooth for 2-D domains with complex boundaries - `MRFBasis`: Markov random field basis for areal spatial data - `AdaptiveTPRS`: Adaptive Thin Plate Regression Spline - `RandomEffectBasis`: Random effect basis (one-hot encoding with identity penalty) - `FactorSmoothBasis`: Factor-smooth interaction basis (per-level smooth with shared penalties) - `TensorProductBasis`: Tensor product of marginal smooth bases (`te()`-style interaction smooth) - `TensorInteractionBasis`: Tensor product interaction basis (`ti()`-style pure interaction smooth) - `TensorProductBasisT2`: Tensor product basis with full penalty decomposition (`t2()`-style interaction smooth) ### Shape-constrained smooths Monotone, convex, and concave smooth basis types with built-in shape enforcement. - `MonotonePSpline`: Shape-constrained P-spline: monotone increasing or decreasing - `ConvexPSpline`: Shape-constrained P-spline: convex or concave ### Quantile regression Quantile GAMs with optional non-crossing constraints. - `QuantileGAM`: Non-crossing quantile GAM - `QuantileGAMResult`: Result container for a fitted QuantileGAM - `QuantileFamily`: Quantile regression via the Extended Log-F (ELF) pseudo-family - `calibrate_sigma`: Find the ELF bandwidth sigma that minimises out-of-sample ELF loss ### Conformal prediction Distribution-free prediction intervals via split, CV+, and jackknife+ conformal methods. - `conformal_fit`: Fit a GAM with conformal calibration - `conformal_coverage`: Compute empirical coverage of conformal intervals on held-out data - `ConformalPredictor`: A calibrated conformal predictor ready to produce intervals - `ConformalResult`: Result of conformal prediction ### Causal inference Causal GAMs using double/debiased machine learning (DML), heterogeneous treatment effect estimation (CATE), and mediation analysis. - `CausalGAM`: Causal GAM for treatment effect estimation - `TreatmentEffect`: Average treatment effect estimate with inference - `CATEResult`: Conditional average treatment effect estimates - `mediation_analysis`: Causal mediation analysis with GAM nuisance models - `MediationResult`: Mediation analysis results ### Streaming and online GAMs Incremental fitting via sufficient statistics for data that arrives in batches. - `StreamingGAM`: Streaming / online GAM - `StreamingSnapshot`: A snapshot of streaming GAM state at a point in time ### Multi-response GAMs Joint fitting of multiple response variables with optional residual correlation modeling. - `MultiResponseGAM`: Multi-response GAM - `MultiResponseResult`: Prediction result for multiple responses - `ResidualCorrelation`: Estimated residual correlation structure ### Functional regression Scalar-on-function regression where predictors include functional covariates (curves). - `FunctionalGAM`: Scalar-on-function GAM - `FunctionalTerm`: Specification for a functional covariate - `CoefficientFunction`: Estimated coefficient function beta(t) for a functional term ### Large datasets Scalable GAM fitting for datasets that exceed memory or benefit from parallel computation. - `BigGAM`: GAM for large datasets using discretized fitting - `PolarsGAM`: GAM that reads data from Polars LazyFrames, DataFrames, or files - `DuckDBGAM`: GAM that reads data directly from DuckDB via SQL ### Cross-validation K-fold cross-validation for GAMs with deviance, MSE, and MAE scoring. - `cross_validate`: K-fold cross-validation for a GAM specification - `CVResult`: Result of `cross_validate()` ### scikit-learn integration GAM estimators compatible with the scikit-learn API for use in pipelines and grid search. - `GAMRegressor`: Scikit-learn compatible GAM regressor - `GAMClassifier`: Scikit-learn compatible GAM classifier (binary) ### Serialization Save and load fitted GAMs, and convert to/from mgcv-compatible dictionaries. - `save_gam`: Save a fitted GAM to a `.npz` archive - `load_gam`: Load a fitted GAM from a `.npz` archive created by `save_gam` - `from_mgcv_dict`: Import an mgcv `gam` object exported as a dictionary - `to_mgcv_dict`: Export a fitted GAM as an mgcv-compatible dictionary ### Datasets Built-in synthetic datasets for testing and examples. - `load_dataset`: Load a built-in example dataset - `list_datasets`: Return a list of all built-in datasets with their metadata ### Model comparison Compare fitted GAMs by information criteria, LOO-CV, WAIC, and stacking weights. - `compare`: Compare multiple fitted GAMs in a summary table - `ComparisonResult`: Result of comparing multiple fitted GAMs - `ComparisonRow`: One row of a model comparison table - `loo_compare`: Compare two PSIS-LOO results computed on the same observations - `LOOResult`: Result of PSIS-LOO cross-validation on a fitted GAM - `LOOComparison`: Comparison of two PSIS-LOO results on the same data - `waic_compare`: Compare two WAIC results computed on the same observations - `WAICResult`: Result of WAIC computation on a fitted GAM - `WAICComparison`: Comparison of two WAIC results on the same data - `stacking`: Compute stacking weights for model averaging - `StackingResult`: Result of stacking weight optimization ### Posterior predictive checks Simulate data from the posterior predictive distribution to assess model fit. - `PPCResult`: Result of a posterior predictive check on a fitted GAM ### Plotting Diagnostic and partial-effect plotting functions. - `check`: Produce GAM diagnostic plots - `partial_effects`: Plot partial effects with confidence bands for each smooth term ### Model matrix Low-level model matrix construction from formulas and data. - `build_model_matrix`: Assemble the full design matrix and penalty structure from a formula - `predict_matrix`: Build the prediction design matrix for new data - `ModelMatrix`: Numeric design matrix, penalties, and metadata produced by :func:`build_model_matrix` - `SmoothInfo`: Metadata describing where one smooth term lives inside a `ModelMatrix` ## Resources - [Full documentation](https://rich-iannone.github.io/whittaker/) - [llms.txt](llms.txt) — Indexed API reference for LLMs - [llms-full.txt](llms-full.txt) — Comprehensive documentation for LLMs - [Source code](https://github.com/rich-iannone/whittaker)