# Verification only (not part of deliverable pipeline): exact E[V_CR0]/Var(ybar) vs Monte Carlo. import json, numpy as np, pandas as pd d = pd.read_csv('data/design.csv'); r = json.load(open('out/results.json')) for row in d.itertuples(): n = np.array([int(x) for x in row.cluster_sizes.split('|')]); G, N = len(n), n.sum() C = np.zeros((G, N)); C[np.repeat(np.arange(G), n), np.arange(N)] = 1 P = np.eye(N) - 1.0 / N Sig = row.icc * C.T @ C + (1 - row.icc) * np.eye(N) ev0 = np.trace(C @ P @ Sig @ P @ C.T) / N**2 vx = (row.icc * np.sum(n**2) + (1 - row.icc) * N) / N**2 k = f"cr0_G{G}_icc{row.icc:.1f}" mc, se = r['rel_bias_var'][k], r['mc_se_rel_bias_var'][k] print(k, f"exact={ev0/vx:.4f} mc={mc:.4f} z={(mc-ev0/vx)/se:+.2f}", "cr1 ratio ok" if abs(r['rel_bias_var'][k.replace('cr0','cr1')]/mc - G/(G-1)) < 1e-12 else "CR1 MISMATCH")