Melikshah's picture
download
raw
1.84 kB
import numpy as np
def cluster_draws(strata, n=10000, seed=0):
strata = np.asarray(strata)
groups = [np.flatnonzero(strata == s) for s in sorted(set(strata.tolist()))]
rng = np.random.default_rng(seed)
return np.concatenate([rng.choice(g, (n, len(g))) for g in groups], axis=1)
def cluster_ci(values, strata, n=10000, seed=0, level=0.95):
values = np.asarray(values, dtype=float)
stats = values[cluster_draws(strata, n, seed)].mean(1)
lo, hi = np.percentile(stats, [50 * (1 - level), 50 * (1 + level)])
return float(values.mean()), float(lo), float(hi)
def cluster_ratio_ci(num, den, strata, n=10000, seed=0, level=0.95):
num, den = np.asarray(num, dtype=float), np.asarray(den, dtype=float)
d = cluster_draws(strata, n, seed)
stats = num[d].mean(1) / den[d].mean(1)
lo, hi = np.percentile(stats, [50 * (1 - level), 50 * (1 + level)])
return float(num.mean() / den.mean()), float(lo), float(hi)
def template_ci(values, templates, n=10000, seed=0, level=0.95):
values = np.asarray(values, dtype=float)
keys = sorted(set(templates))
pos = {k: i for i, k in enumerate(keys)}
idx = np.array([pos[t] for t in templates])
num = np.bincount(idx, weights=values, minlength=len(keys))
den = np.bincount(idx, minlength=len(keys)).astype(float)
return cluster_ratio_ci(num, den, ["all"] * len(keys), n, seed, level)
def p_beyond(draws, null, side):
bad = np.asarray(draws) <= null if side == "greater" else np.asarray(draws) >= null
return float((bad.sum() + 1) / (len(bad) + 1))
def holm(pvals, alpha=0.05):
pvals = np.asarray(pvals, dtype=float)
adj, run = np.empty(len(pvals)), 0.0
for i, k in enumerate(np.argsort(pvals)):
run = max(run, min(1.0, (len(pvals) - i) * pvals[k]))
adj[k] = run
return adj, adj <= alpha

Xet Storage Details

Size:
1.84 kB
·
Xet hash:
6d32299efc531e9adf335e23251603d995c64b2ac934a2bdb8fedd55fe44c950

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.