@@ -67,6 +67,50 @@ class AnalysisConfig:
6767 max_plot_columns : int = 20
6868 """Maximum columns per plot grid (prevents overly large figures)."""
6969
70+ # ── Advanced analysis ─────────────────────────────────
71+ advanced : bool = True
72+ """Enable the Advanced analysis tab (clustering, anomaly, etc.)."""
73+
74+ advanced_distribution : bool = True
75+ """Best-fit distribution, power transform, Jarque-Bera, ECDF."""
76+
77+ advanced_correlation : bool = True
78+ """Partial correlation, MI matrix, bootstrap CI, network graph."""
79+
80+ clustering : bool = True
81+ """K-Means, DBSCAN, hierarchical clustering."""
82+
83+ advanced_dimreduction : bool = True
84+ """t-SNE, UMAP (optional), Factor Analysis."""
85+
86+ feature_insights : bool = True
87+ """Interaction, monotonic, binning, cardinality, leakage detection."""
88+
89+ advanced_anomaly : bool = True
90+ """Isolation Forest, LOF, Mahalanobis, consensus."""
91+
92+ statistical_tests : bool = True
93+ """Levene, Kruskal-Wallis, Mann-Whitney, goodness-of-fit, Grubbs."""
94+
95+ data_profiling : bool = True
96+ """Automated insights, type recommendation, health dashboard."""
97+
98+ # ── Advanced sub-options ──────────────────────────────
99+ max_cluster_k : int = 10
100+ """Maximum k for K-Means elbow search."""
101+
102+ tsne_perplexity : float = 30.0
103+ """t-SNE perplexity parameter."""
104+
105+ bootstrap_iterations : int = 1000
106+ """Number of bootstrap resamples for correlation CI."""
107+
108+ max_sample_for_advanced : int = 5000
109+ """Max rows sampled for expensive advanced analyses (t-SNE, UMAP, etc.)."""
110+
111+ n_distribution_fits : int = 7
112+ """Number of candidate distributions to fit."""
113+
70114 @staticmethod
71115 def minimal () -> "AnalysisConfig" :
72116 """Return a config with only core analyses (descriptive + missing)."""
@@ -80,12 +124,19 @@ def minimal() -> "AnalysisConfig":
80124 pca = False ,
81125 duplicates = False ,
82126 quality_score = False ,
127+ advanced = False ,
83128 )
84129
85130 @staticmethod
86131 def fast () -> "AnalysisConfig" :
87- """Return a config that skips expensive analyses (PCA, feature importance)."""
132+ """Return a config that skips expensive analyses (PCA, feature importance, advanced )."""
88133 return AnalysisConfig (
89134 pca = False ,
90135 feature_importance = False ,
136+ advanced = False ,
91137 )
138+
139+ @staticmethod
140+ def basic_only () -> "AnalysisConfig" :
141+ """Return a config with all Basic analyses on, all Advanced off."""
142+ return AnalysisConfig (advanced = False )
0 commit comments