Sensitivity Analysis¶
Weight sensitivity analysis classes and functions.
Classes¶
SensitivityAnalyzer¶
Main class for sensitivity analysis.
from ascicat.sensitivity import SensitivityAnalyzer
analyzer = SensitivityAnalyzer(
calculator, # ASCICalculator instance
n_bootstrap=100, # Bootstrap iterations
random_state=42 # Reproducibility
)
Methods¶
generate_weight_grid¶
Generate systematic weight combinations.
generate_full_simplex_grid¶
Generate complete simplex coverage.
run_full_sensitivity¶
Run analysis across all weights.
Returns dict with:
weight_results: DataFrame with per-weight metricsrank_matrix: Catalyst ranks across weightsasci_matrix: ASCI scores across weightssymbols: Catalyst identifiersweights: Weight combinations
compute_rank_statistics¶
Compute comprehensive rank statistics.
Returns DataFrame with:
mean_rank,std_rank,median_rankmin_rank,max_rank,rank_rangeci_lower,ci_upper,ci_widthtop5_frequency,top10_frequency,top20_frequencyrobustness_score
compute_sensitivity_indices¶
Compute variance-based indices.
indices = analyzer.compute_sensitivity_indices(results)
# Returns: {'S_activity': 0.35, 'S_stability': 0.30, 'S_cost': 0.35}
statistical_tests¶
Perform significance tests.
tests = analyzer.statistical_tests(results, top_n=20)
# Returns: {'friedman_test': {...}, 'kendall_w': 0.65, 'interpretation': '...'}
SensitivityVisualizer¶
Visualization for sensitivity results.
from ascicat.sensitivity import SensitivityVisualizer
viz = SensitivityVisualizer(output_dir='sensitivity/')
Methods¶
plot_ternary_heatmap¶
Weight space visualization.
plot_rank_confidence_intervals¶
Bootstrap CI plot.
plot_sensitivity_indices¶
Index bar chart.
plot_robustness_quadrant¶
Performance vs robustness scatter.
plot_comprehensive_summary¶
Four-panel summary figure.
Convenience Function¶
run_enhanced_sensitivity_analysis¶
All-in-one analysis function.
from ascicat.sensitivity import run_enhanced_sensitivity_analysis
results = run_enhanced_sensitivity_analysis(
calculator=calc,
output_dir='sensitivity/',
n_weight_points=15,
n_bootstrap=100,
verbose=True
)
Returns dict with:
sensitivity_resultsrank_statsindicescorrelationstests