regression-diagnostics 0.2.0

Statistical diagnostics for OLS regression in Rust: VIF, condition number, adjusted R2, F/AIC/BIC, residual tests (Durbin-Watson, Breusch-Pagan, White, Jarque-Bera), influence measures (leverage, Cook's distance, DFFITS), QQ-plot data, and an R/statsmodels-style summary().
Documentation
//! Diagnostics for **categorical responses** with more than two classes — the
//! two GLMs that generalize binary logistic to a multi-class outcome.
//!
//! * [`MultinomialFit`] — **baseline-category (multinomial) logit** for an
//!   *unordered* response: a softmax over `K` classes with a separate
//!   coefficient vector per non-reference class, fit by Newton–Raphson.
//! * [`OrdinalFit`] — **proportional-odds (cumulative logit)** for an *ordered*
//!   response: shared coefficients across `K−1` thresholds, the `MASS::polr`
//!   parametrization.
//!
//! Both are non-Gaussian maximum-likelihood fits with the diagnostics that are
//! actually defined for them — coefficient standard errors, Wald `z`-statistics
//! and p-values, deviance and McFadden's pseudo-R², AIC/BIC, predicted class
//! probabilities, and deviance residuals — and both **collapse onto binary
//! [`LogisticFit`](crate::logistic::LogisticFit) when `K = 2`**, the identity
//! their test suites anchor on.
//!
//! # Response convention
//!
//! The response holds integer class labels `0 … K−1` with every class present.
//! [`MultinomialFit`] treats the labels as unordered and expects the design
//! matrix to include any intercept column; [`OrdinalFit`] treats them as ordered
//! and **must not** be given an intercept column (its thresholds serve that
//! role).

mod multinomial;
mod ordinal;

pub use multinomial::{deviance_residuals as multinomial_deviance_residuals, MultinomialFit};
pub use ordinal::{deviance_residuals as ordinal_deviance_residuals, OrdinalFit};