nlsq.diagnostics.ModelHealthReport

class nlsq.diagnostics.ModelHealthReport(identifiability=None, gradient_health=None, sloppy_model=None, plugin_results=<factory>, status=HealthStatus.HEALTHY, health_score=1.0, all_issues=<factory>, config=None, computation_time_ms=0.0)[source]

Bases: object

Aggregated model health report with overall assessment.

This dataclass aggregates results from all diagnostic components (identifiability, gradient health, parameter sensitivity, and plugins) into a unified health report with overall status, health score, and actionable recommendations.

identifiability

Results from identifiability analysis.

Type:

IdentifiabilityReport | None

gradient_health

Results from gradient health monitoring.

Type:

GradientHealthReport | None

sloppy_model

Results from parameter sensitivity analysis (level=FULL only).

Type:

ParameterSensitivityReport | None

plugin_results

Results from diagnostic plugins, keyed by plugin name.

Type:

dict[str, PluginResult]

status

Overall health status (HEALTHY, WARNING, or CRITICAL).

Type:

HealthStatus

health_score

Overall health score in [0.0, 1.0]. Higher is healthier.

Type:

float

all_issues

Aggregated issues from all components, sorted by severity.

Type:

list[ModelHealthIssue]

config

Configuration used for diagnostics.

Type:

DiagnosticsConfig | None

computation_time_ms

Total computation time for all diagnostics in milliseconds.

Type:

float

Examples

>>> from nlsq.diagnostics.health_report import create_health_report
>>> report = create_health_report(
...     identifiability=healthy_ident_report,
...     gradient_health=healthy_grad_report,
... )
>>> report.status
<HealthStatus.HEALTHY: 1>
>>> report.health_score
1.0
identifiability: IdentifiabilityReport | None
gradient_health: GradientHealthReport | None
sloppy_model: ParameterSensitivityReport | None
plugin_results: dict[str, PluginResult]
status: HealthStatus
health_score: float
all_issues: list[ModelHealthIssue]
config: DiagnosticsConfig | None
computation_time_ms: float
summary(verbose=True)[source]

Generate human-readable summary.

Parameters:

verbose (bool, default=True) – Include detailed issue descriptions and recommendations.

Returns:

Formatted summary string suitable for console output.

Return type:

str

to_dict()[source]

Convert report to dictionary for serialization.

Returns:

Dictionary representation of the report.

Return type:

dict[str, Any]

__str__()[source]

Return summary as string representation.

__init__(identifiability=None, gradient_health=None, sloppy_model=None, plugin_results=<factory>, status=HealthStatus.HEALTHY, health_score=1.0, all_issues=<factory>, config=None, computation_time_ms=0.0)