src.llm_interpreter.analysis.heuristics

Rule-based heuristics for AMMM model diagnostics.

This module implements diagnostic rules that identify potential issues based on established statistical thresholds and best practices.

Author: AMMM Team Created: 2025-04-10 Last Modified: 2025-04-10

Module Contents

class src.llm_interpreter.analysis.heuristics.Severity(*args, **kwds)

Bases: enum.Enum

Severity levels for diagnostic findings.

class src.llm_interpreter.analysis.heuristics.DiagnosticFinding

Represents a diagnostic finding from heuristic rules.

src.llm_interpreter.analysis.heuristics.check_stationarity(summary: src.llm_interpreter.analysis.summarizers.StationaritySummary | None) list[DiagnosticFinding]

Check for stationarity issues.

src.llm_interpreter.analysis.heuristics.check_multicollinearity(summary: src.llm_interpreter.analysis.summarizers.VIFSummary | None) list[DiagnosticFinding]

Check for multicollinearity issues.

Excludes variables that naturally have high VIF but are not problematic: - trend: Time trends always have high VIF due to collinearity with time - intercept: Not meaningful for VIF analysis

src.llm_interpreter.analysis.heuristics.check_model_convergence(summary: src.llm_interpreter.analysis.summarizers.ModelSummary | None) list[DiagnosticFinding]

Check for model convergence issues.

src.llm_interpreter.analysis.heuristics.check_model_diagnostics(summary: src.llm_interpreter.analysis.summarizers.ELPDSummary | None) list[DiagnosticFinding]

Check model diagnostic metrics.

src.llm_interpreter.analysis.heuristics.check_media_performance(summary: src.llm_interpreter.analysis.summarizers.MediaPerformanceSummary | None) list[DiagnosticFinding]

Check media channel performance.

src.llm_interpreter.analysis.heuristics.check_budget_scenarios(summary: src.llm_interpreter.analysis.summarizers.BudgetScenarioSummary | None) list[DiagnosticFinding]

Check budget scenario analysis.

src.llm_interpreter.analysis.heuristics.run_all_heuristics(summary: src.llm_interpreter.analysis.summarizers.ComprehensiveSummary) list[DiagnosticFinding]

Run all heuristic checks on the detailed summary.

Parameters:

summary – ComprehensiveSummary containing all analyzed data

Returns:

List of all diagnostic findings

src.llm_interpreter.analysis.heuristics.filter_findings_by_severity(findings: list[DiagnosticFinding], min_severity: Severity = Severity.INFO) list[DiagnosticFinding]

Filter findings by minimum severity level.

Parameters:
  • findings – List of diagnostic findings

  • min_severity – Minimum severity level to include

Returns:

Filtered list of findings

src.llm_interpreter.analysis.heuristics.group_findings_by_category(findings: list[DiagnosticFinding]) dict[str, list[DiagnosticFinding]]

Group findings by category.

Parameters:

findings – List of diagnostic findings

Returns:

Dictionary mapping categories to findings