Golden SkyGolden SkyGuía Técnica

Referencia técnica · Paso 7b · Combinaciones — scoring

Sinergia y composite

Cómo se puntúan y ordenan los combos. La maquinaria estadística (lift, p-value, IC, breakeven) reusa la del paso de lift aplicada al combo; lo específico acá es el FDR sobre el espacio de combos, la sinergia como diagnóstico, y el composite z_norm puro.

§0Notación

combo_liftP(TP|combo) / p_global
nevalseñales evaluables del AND
mcomboscombos evaluados (denom. FDR)
lift_ilift individual de la regla i
synergyobservado / esperado
Lbelift de equilibrio

§1Scoring por combo

Cada combo se trata como una "regla" nueva y se le aplica la misma maquinaria del lift. Los combos son todos ALPHA (buscan concentrar aciertos).

score_combinations combo_lift = P(TP | combo)pglobal  ·  edge = P(TP|combo) − pglobal
z = edge√( pglobal(1−pglobal) / neval )
p-value = binomial one-sided (alpha)  // idéntico a 6a
IC(combo_lift) = Katz log-normal, n_total = n_valid  // idéntico a 6b
passes_econ = IC_lower(90%) > Lbe  // badge informativo

El p-value binomial, el IC de Katz y el breakeven son las mismas fórmulas del Step 6, aplicadas ahora a la señal del combo. Lo que cambia es el eje del FDR (§2) y el ranking (§4).

§2FDR sobre el espacio de combos

La corrección de falso descubrimiento se aplica igual que en el lift, pero el denominador ya no es el universo de reglas — es el universo de combinaciones evaluadas, que es mucho mayor.

solo combos con combo_lift > 1
survivors = benjamini_hochberg( pvals , q = 0.10 , mtotal = combos evaluados )

Con ~100 reglas de entrada, el 2-way evalúa del orden de C(100,2) ≈ 4.950 combos. Corregir sobre ese m_total exige p-values mucho más chicos que sobre m = 100 → previene los falsos descubrimientos que introduce la búsqueda combinatoria. Sin esto, el paso sería data snooping por diseño.

§3Sinergia · Friedman-Popescu (2008)

¿El combo rinde más de lo que se esperaría si sus reglas fueran independientes respecto al target? Es un diagnóstico — no entra al ranking.

diagnóstico esperado = ∏i lifti  // bajo independencia condicional al target
synergy = combo_lift observadoesperado
> 1

sinergia genuina — el combo excede la suma de efectos

≈ 1

aditivo — los efectos son independientes

< 1

redundancia — las reglas capturan el mismo régimen

No entra al ranking porque una sinergia alta no siempre es económicamente valiosa — puede surgir de artefactos de baseline muy bajo o muestras chicas. El ranking primario usa el z_norm, más robusto (incluye n vía z_score).

§4Composite y dedup

El composite ordena los combos sobrevivientes. A diferencia del lift, acá es z_norm puro — sin mezclar información mutua.

Z_REF = 3.0 · clip = 5 z_norm = clip( z_scoreZ_REF , [ −5, +5 ] )
composite = z_norm  // PURO — sin mi_norm (a diferencia del lift)

Se usa z_norm puro porque mezclar assoc_lift o MI premiaría la co-ocurrencia de antecedentes (target-agnóstica), que suele indicar redundancia — no descubrimiento. El z_score ya incluye la magnitud del edge y la estabilidad estadística (vía n_eval) en un solo número. El composite ordena; el FDR decide.

Deduplicación · Jaccard

jaccard( comboA, comboB ) > similarity_threshold (0.85) → deduplicar
se conserva el de mayor composite

Viene de 7a: medidas de interacción, generación AND, roles trigger/context, modo n_way=1.

Fuentes:
· domain/combinations/scoring.py — combo_lift, z_score, FDR (m_total=combos), _compute_synergy, composite z_norm, IC Katz
· domain/combinations/dedup.py — dedup Jaccard (similarity_threshold)
· domain/lift_selector/stats.py — compute_rule_pvalue, lift_confidence_interval, compute_breakeven_lift (reusadas)