ab-testing-causal / src /config.py
fikri0o0's picture
2026-06-04: Initial deployment β€” A/B Testing & Causal Inference Simulator
4256820
"""
Project-wide configuration for A/B Testing & Causal Inference.
"""
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
DATA_RAW = ROOT / "data" / "raw"
DATA_PROCESSED = ROOT / "data" / "processed"
NOTEBOOKS = ROOT / "notebooks"
MODELS_DIR = ROOT / "models"
# ── Hillstrom dataset ────────────────────────────────────────────────────────
HILLSTROM_URL = (
"http://www.minethatdata.com/"
"Kevin_Hillstrom_MineThatData_E-MailAnalytics_DataMiningChallenge_2008.03.20.csv"
)
HILLSTROM_FALLBACK_URL = (
"https://raw.githubusercontent.com/EmanueleCannizzaro/sklift/"
"master/sklift/datasets/hillstrom.csv"
)
HILLSTROM_RAW = DATA_RAW / "hillstrom.csv"
HILLSTROM_PROCESSED = DATA_PROCESSED / "hillstrom_processed.csv"
# ── Processed outputs ────────────────────────────────────────────────────────
ANALYSIS_RESULTS = DATA_PROCESSED / "analysis_results.json"
HTE_RESULTS = DATA_PROCESSED / "hte_results.json"
SEQUENTIAL_SIM = DATA_PROCESSED / "sequential_sim.json"
# ── Frequentist defaults ─────────────────────────────────────────────────────
ALPHA = 0.05 # significance level
POWER = 0.80 # target statistical power
MDE = 0.02 # minimum detectable effect (absolute, for conversions)
# ── Bayesian defaults ────────────────────────────────────────────────────────
PRIOR_ALPHA = 1.0 # Beta(1,1) = Uniform prior
PRIOR_BETA = 1.0
N_SAMPLES = 100_000 # Monte-Carlo draws for posterior
# ── Sequential testing ───────────────────────────────────────────────────────
MSPRT_RHO_SCALE = 1.0 # ρ = Οƒ * RHO_SCALE (mixing prior std)
# ── HTE / Uplift ─────────────────────────────────────────────────────────────
HTE_SEED = 42
HTE_N_ESTIMATORS = 200
TREATMENT_COL = "treatment"
OUTCOME_CONVERSION = "conversion"
OUTCOME_SPEND = "spend"
FEATURE_COLS = ["recency", "history", "mens", "womens", "newbie",
"zip_code", "channel"]
# ── Random seeds ─────────────────────────────────────────────────────────────
SEED = 42