pymixef.diagnostics module

Diagnostic calculations that return data before presentation.

class pymixef.diagnostics.DiagnosticTable(name, columns, metadata=<factory>)[source]

Bases: object

A tidy, serializable numeric diagnostic table with calculation metadata.

Parameters:
  • name (str)

  • columns (Mapping[str, ndarray])

  • metadata (Mapping[str, Any])

name: str
columns: Mapping[str, ndarray]
metadata: Mapping[str, Any]
to_dict()[source]
Return type:

dict[str, Any]

classmethod from_dict(value)[source]
Parameters:

value (Mapping[str, Any])

Return type:

DiagnosticTable

save(path)[source]
Parameters:

path (str | Path)

Return type:

Path

classmethod load(path)[source]
Parameters:

path (str | Path)

Return type:

DiagnosticTable

class pymixef.diagnostics.GroupInfluenceResult(table, failures, group_column, requested_groups)[source]

Bases: object

Delete-whole-group refits with optional approximation comparisons.

Parameters:
  • table (DiagnosticTable)

  • failures (tuple[Mapping[str, Any], ...])

  • group_column (str)

  • requested_groups (int)

table: DiagnosticTable
failures: tuple[Mapping[str, Any], ...]
group_column: str
requested_groups: int
property successful_groups: int

Number of grouping levels with a completed full refit.

property failed_groups: int

Number of grouping levels whose full refit failed.

to_dict()[source]

Return the table, failures, and group-level accounting.

Return type:

dict[str, Any]

pymixef.diagnostics.group_influence(fit_function, data, *, group, baseline=None, approximation=None)[source]

Measure influence by deleting complete grouping levels and refitting.

fit_function receives a column mapping and must return a fit-like object with parameters, finite objective, convergence, and an archived fixed_effect_rank in convergence engine metrics or result extras; parameter_covariance is optional. If baseline is omitted, the callback first fits the full data. Every subsequent callback receives all rows except one complete grouping level—individual rows are never deleted in isolation.

An optional approximation(group_value, baseline) callback can return approximate delete-group parameter estimates. The result then records the approximation error beside the full-refit change, making the approximation auditable rather than silently substituting it for a refit.

Parameters:
  • fit_function (Callable[[Mapping[str, ndarray]], Any])

  • data (Any)

  • group (str)

  • baseline (Any | None)

  • approximation (Callable[[Any, Any], Mapping[str, float]] | None)

Return type:

GroupInfluenceResult

pymixef.diagnostics.residual_table(observed, fitted, *, variance=None, row_ids=None, groups=None)[source]

Calculate raw and Pearson residuals with source-row reconciliation.

Parameters:
  • observed (Sequence[float])

  • fitted (Sequence[float])

  • variance (Sequence[float] | float | None)

  • row_ids (Sequence[Any] | None)

  • groups (Sequence[Any] | None)

Return type:

DiagnosticTable

pymixef.diagnostics.vpc_table(observed, simulated, *, independent=None, bins='adaptive', quantiles=(0.05, 0.5, 0.95), seed=None, prediction_corrected=False)[source]

Compute an ordinary or prediction-corrected VPC as a tidy table.

simulated is shaped (replicate, observation). Simulation-interval bounds are empirical 2.5% and 97.5% quantiles of within-replicate quantiles.

Parameters:
  • observed (Sequence[float])

  • simulated (ndarray)

  • independent (Sequence[float] | None)

  • bins (str | int | Sequence[float])

  • quantiles (Sequence[float])

  • seed (int | None)

  • prediction_corrected (bool)

Return type:

DiagnosticTable

pymixef.diagnostics.covariance_singularity_table(blocks, *, tolerance=1e-4)[source]

Summarize eigenvalue ratios and effective ranks of covariance blocks.

Parameters:
  • blocks (Mapping[str, ndarray])

  • tolerance (float)

Return type:

DiagnosticTable