ELAI S.r.l.

Predicción conformal: el 90% global puede ocultar un 50% en el régimen raro

Cuantil finito, prueba por rangos y 2.000 calibraciones con dos regímenes: cobertura marginal, grupos, anchura e intervalos infinitos con pocos datos.

Predicción conformal: el 90% global puede ocultar un 50% en el régimen raro

Resumen: leer una garantía junto con su población

Un intervalo con cobertura marginal del 90% no promete un 90% en cada régimen. Estudiamos errores sintéticos: un régimen frecuente y concentrado y otro raro, seis veces más disperso. El cuantil de la mezcla cubre todos los casos del primero y solo la mitad del segundo, alcanzando el 90% global. Calibrar por grupo corrige el desequilibrio bajo hipótesis precisas, pero puede generar intervalos ilimitados con pocos datos. Derivamos ambos resultados y los comprobamos con 2.000 calibraciones reproducibles.

El contexto ilustrativo es previsión de potencia, con errores en kW; no son mediciones de una planta ni resultados EL-AI. Se requieren probabilidad, distribuciones acumuladas y estadísticos de orden. El experimento supone independencia. Las series energéticas reales pueden tener autocorrelación y cambios de distribución: la garantía no se transfiere sin comprobar condiciones.

1. Split conformal y el rango correcto

Partimos de f fijado con datos de entrenamiento separados. En n ejemplos nuevos calculamos s_i=|y_i−f(x_i)|, ordenamos y tomamos el k-ésimo, k=ceil((n+1)(1−α)). El intervalo nuevo es [f(x)−q,f(x)+q]. Si k=n+1 ponemos q=∞: usar el máximo observado cambia la garantía. La corrección n+1 incluye la posición del nuevo score entre los de calibración.

s_i = |y_i−f(x_i)| k = ceil((n+1)(1−α)) q = s_(k) if k ≤ n; otherwise +∞ C(x) = [f(x)−q, f(x)+q]

Con intercambiabilidad y sin empates, el rango nuevo entre n+1 valores es uniforme. Se cubren k rangos: probabilidad k/(n+1), al menos 1−α. Con empates, ≤ puede ser conservador. La probabilidad promedia calibración aleatoria y nueva observación. No afirma que cada calibración fija cubra exactamente el 90% ni que cada entrada tenga esa probabilidad condicional. Entrenar o elegir scores con etiquetas de calibración puede invalidar el argumento.

Con n=99 y α=0,10 el rango es 90: cobertura marginal teórica 90/100 con scores continuos. Con n=4 se necesita rango 5 e intervalo ilimitado; el máximo de cuatro cubriría solo 4/5=80% en promedio. El fragmento usa aritmética entera para el 90%, evitando redondeos e interpolaciones genéricas que darían otro estadístico.

2. Una mezcla donde el grupo raro concentra los errores

En A, el 80% de los casos, el residuo absoluto R es uniforme entre 0 y 1 kW. En B, el 20%, entre 0 y 6 kW. Puede construirse f=100 kW y añadir error de signo aleatorio y magnitud R; la cobertura simétrica solo necesita R. El grupo se conoce al predecir y se define antes de calibrar. Las escalas facilitan el cálculo, no se estiman de una planta.

F(q) = 0.8·min(q/1,1) + 0.2·min(q/6,1), q ≥ 0 F(3) = 0.8·1 + 0.2·0.5 = 0.9 P(R≤3 | A)=1; P(R≤3 | B)=0.5

El cuantil poblacional del 90% es q=3 kW. Ambos regímenes reciben anchura total 6 kW, pero cobertura 100% en A y 50% en B. La garantía marginal no falla: la media ponderada es exactamente 90%. La pregunta operativa sobre fiabilidad en B difiere de la cantidad garantizada. Responderla con cobertura global es un error interpretativo.

3. Repetir calibraciones con cobertura de prueba analítica

Extraemos 2.000 calibraciones independientes de 99 residuos, semilla 20260924. Para cada una calculamos q y cobertura poblacional con las CDF conocidas. No simulamos millones de pruebas: la cobertura condicionada a q es analítica. La media entre calibraciones es una estimación Monte Carlo. Resultan 90,0234% global, 99,9559% en A y 50,2937% en B. La desviación estándar global entre calibraciones es 3,04 puntos porcentuales, no el error estándar de la media.

4. Calibrar por grupo: beneficio y coste informativo

Dividimos los mismos 99 residuos por grupo y calculamos cuantiles con n_A y n_B y corrección n_g+1. Con intercambiabilidad dentro de grupos definidos previamente, la prueba de rangos se aplica por separado. Garantiza cobertura marginal dentro del grupo, no condicionada a cada x. En población q_A=0,9 y q_B=5,4 kW: anchuras 1,8 y 10,8 kW, media ponderada 3,6 kW. El régimen difícil recibe un intervalo mayor.

CalibraciónTotalAB
Pooled0.9002340.9995590.502937
Groupwise0.9091900.9056670.923283
Coberturas medias en 2.000 calibraciones sintéticas; línea discontinua 0,90. Cada cobertura de prueba se calcula con la CDF conocida, sin muestrear el test.
Coberturas medias en 2.000 calibraciones sintéticas; línea discontinua 0,90. Cada cobertura de prueba se calcula con la CDF conocida, sin muestrear el test.

La simulación por grupos da 90,5667% en A y 92,3283% en B. El exceso concuerda con rangos más discretos en el grupo pequeño. Pero tres calibraciones tienen menos de nueve observaciones B y exigen umbral infinito. La anchura media de todas las réplicas es infinita. Los 3,66475 kW corresponden solo a las 1.997 réplicas finitas, no a la media global. El límite poblacional de 3,6 kW no elimina el problema finito.

5. Límites e interpretación técnica

No se debe sustituir silenciosamente infinito por un máximo finito: se pierde la garantía. Un límite físico conocido puede restringir el conjunto, pero añade una hipótesis documentada. Otras opciones son más datos, menos fragmentación o cambiar el objetivo. Grupos elegidos tras ver errores, o un clasificador de régimen que falla en prueba, requieren otro análisis. Cambiar frecuencias también cambia cobertura de un umbral global fijo.

La guía de Angelopoulos y Bates, arXiv v6 del 7 de diciembre de 2022, es la referencia consultada para procedimiento, diagnóstico, grupos y prueba del apéndice D. Mezcla, parámetros y simulación son un ejemplo didáctico independiente, no reproducción de sus benchmarks. La conclusión operativa exige indicar población promediada, calibración y coste en anchura. La cobertura marginal es útil al interpretarla según lo que demuestra.

Angelopoulos A. N., Bates S., A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification, arXiv:2107.07511v6 (2022), §§1,3,4.1, Appendix D.

from math import inf
def q90(scores):
    n = len(scores)
    k = (9*(n+1)+9)//10  # ceil(0.9*(n+1)), exact integer arithmetic
    return sorted(scores)[k-1] if k <= n else inf
print(q90([1., 2., 3., 4.]))
q = 3.
print(.8*min(q,1.) + .2*min(q/6.,1.))

Código, datos e instrucciones · JSON. Cálculos didácticos ejecutados con Python 3.14.0; figuras con Matplotlib 3.11.2. Análisis asistido por IA, sin afirmar revisión por pares ni humana. Portada original ImageGen ilustrativa: no documenta personas, sedes ni instalaciones de EL-AI. Fuentes consultadas el 24 de septiembre de 2026.