Module neuralops.benchmarks.core.stats
Functions
def compute_bh_fdr(raw_p: list[float]) ‑> list[float]-
Expand source code
def compute_bh_fdr(raw_p: list[float]) -> list[float]: if not raw_p: return [] import numpy as np p_vals = np.array(raw_p, dtype=float) n = len(p_vals) sorted_indices = np.argsort(p_vals) sorted_p = p_vals[sorted_indices] adjusted_p = np.zeros(n, dtype=float) cum_min = 1.0 for i in range(n - 1, -1, -1): rank = i + 1 adj = (sorted_p[i] * n) / rank cum_min = min(cum_min, adj) adjusted_p[i] = min(cum_min, 1.0) out = np.zeros(n, dtype=float) out[sorted_indices] = np.maximum(sorted_p, adjusted_p) return out.tolist() def compute_bootstrap_ci(accs: list[float], n_bootstraps: int = 500, ci_level: float = 0.95) ‑> tuple[float, float]-
Expand source code
def compute_bootstrap_ci( accs: list[float], n_bootstraps: int = 500, ci_level: float = 0.95 ) -> tuple[float, float]: import numpy as np if not accs: return (0.0, 0.0) arr = np.array(accs) if len(arr) == 1: return (float(arr[0]), float(arr[0])) boot_means = [] np.random.seed(42) for _ in range(n_bootstraps): sample = np.random.choice(arr, size=len(arr), replace=True) boot_means.append(np.mean(sample)) alpha = (1.0 - ci_level) / 2.0 low = float(np.percentile(boot_means, alpha * 100)) high = float(np.percentile(boot_means, (1.0 - alpha) * 100)) return (max(0.0, low), min(100.0, high)) def compute_confidence_interval_95(accs: list[float]) ‑> tuple[float, float]-
Expand source code
def compute_confidence_interval_95(accs: list[float]) -> tuple[float, float]: import numpy as np if not accs: return (0.0, 0.0) arr = np.array(accs) n = len(arr) if n <= 1: return (float(arr[0]), float(arr[0])) mean = np.mean(arr) se = np.std(arr, ddof=1) / np.sqrt(n) margin = 1.96 * se if n > 30 else 2.57 * se return (float(mean - margin), float(mean + margin)) def compute_t_test_p_value(accs1: list[float], accs2: list[float]) ‑> float-
Expand source code
def compute_t_test_p_value(accs1: list[float], accs2: list[float]) -> float: import numpy as np try: from scipy import stats res = stats.ttest_ind(accs1, accs2, equal_var=False) p = float(res.pvalue) return 1.0 if np.isnan(p) else p except Exception: arr1, arr2 = np.array(accs1), np.array(accs2) if np.array_equal(arr1, arr2) or (np.var(arr1) == 0 and np.var(arr2) == 0): return 1.0 diff = np.abs(np.mean(arr1) - np.mean(arr2)) return 0.001 if diff > 5.0 else 0.5