Add TransferCausalModel: causal forest for transfer effect estimation
- TransferCausalModel(BaseModel): estimates causal effect of roster changes on team performance using a causal forest (Athey et al., 2019) - Dual backend: econml.grf.CausalForest (preferred) or pure sklearn fallback with honest estimation (split on half, estimate on other half) - predict_effect(): ATE, CATE, and 95% confidence intervals - predict_individual_effect(): net effect of adding a player to roster - rank_transfers(): rank candidate pool by predicted causal effect - analyze_confounders(): identify features that confound transfer effect - subgroup_effects(): estimate treatment effect by subgroup - _build_roster_features(): compute roster-level features (role counts, points, minutes, age, formation entropy, interaction level) - _build_player_features(): treatment features (projected points, role, scarcity, value over replacement) - AuctionEffectAnalyzer: adjusts auction bids based on causal effects
This commit is contained in: