Fitting result containers.
Classes:
| Name | Description |
|---|---|
FitState | Immutable fitting result. |
Classes¶
FitState¶
Immutable fitting result.
Contains all state produced by fitting a model, including coefficients, variance-covariance matrix, fitted values, residuals, and model-specific parameters.
Created by: build_fit_state(), fit_model() Consumed by: model.params, model.summary(), dispatch_infer() Augmented by: Never
Attributes:
| Name | Type | Description |
|---|---|---|
coef | NDArray[floating] | Coefficient estimates (1D array of length p). |
vcov | NDArray[floating] | Variance-covariance matrix (p x p array). |
fitted | NDArray[floating] | Fitted values (1D array of length n). |
residuals | NDArray[floating] | Residuals (1D array of length n). |
leverage | NDArray[floating] | Hat matrix diagonal / leverage values (1D array of length n). |
df_resid | float | Residual degrees of freedom. |
loglik | float | Log-likelihood at convergence. |
converged | bool | Whether the optimization converged. |
n_iter | int | Number of iterations (1 for closed-form solutions). |
sigma | float | None | Residual standard deviation (OLS models only). |
dispersion | float | None | Dispersion parameter (GLM models only). |
null_deviance | float | None | Null model deviance (GLM models only). |
deviance | float | None | Residual deviance, sum of unit deviances (GLM models only). |
theta | NDArray[floating] | None | Random effect variance parameters (mixed models only). |
u | NDArray[floating] | None | Spherical random effects (mixed models only). |
irls_weights | NDArray[floating] | None | IRLS weights from GLM fit (GLM sandwich estimator). |
XtWX_inv | NDArray[floating] | None | Inverse of X’WX from GLM fit (GLM sandwich estimator). |
Examples:
>>> import numpy as np
>>> from fit import FitState
>>> state = FitState(
... coef=np.array([1.0, 2.0]),
... vcov=np.eye(2),
... fitted=np.array([1.0, 2.0, 3.0]),
... residuals=np.array([0.1, -0.1, 0.0]),
... leverage=np.array([0.3, 0.3, 0.4]),
... df_resid=1.0,
... loglik=-10.0,
... )Attributes¶
XtWX_inv¶
XtWX_inv: NDArray[np.floating] | None = field(default=None, validator=is_optional_ndarray)coef¶
coef: NDArray[np.floating] = field(validator=is_ndarray)converged¶
converged: bool = field(default=True, validator=(validators.instance_of(bool)))deviance¶
deviance: float | None = field(default=None, validator=(validators.optional(validators.instance_of((int, float)))))df_resid¶
df_resid: float = field(validator=(validators.instance_of((int, float))))dispersion¶
dispersion: float | None = field(default=None, validator=(validators.optional(validators.instance_of((int, float)))))fitted¶
fitted: NDArray[np.floating] = field(validator=is_ndarray)irls_weights¶
irls_weights: NDArray[np.floating] | None = field(default=None, validator=is_optional_ndarray)leverage¶
leverage: NDArray[np.floating] = field(validator=is_ndarray)loglik¶
loglik: float = field(validator=(validators.instance_of((int, float))))n_iter¶
n_iter: int = field(default=1, validator=(validators.instance_of(int)))null_deviance¶
null_deviance: float | None = field(default=None, validator=(validators.optional(validators.instance_of((int, float)))))residuals¶
residuals: NDArray[np.floating] = field(validator=is_ndarray)sigma¶
sigma: float | None = field(default=None, validator=(validators.optional(validators.instance_of((int, float)))))theta¶
theta: NDArray[np.floating] | None = field(default=None, validator=is_optional_ndarray)u¶
u: NDArray[np.floating] | None = field(default=None, validator=is_optional_ndarray)vcov¶
vcov: NDArray[np.floating] = field(validator=is_ndarray)