ELAI S.r.l.

Dos modelos de IA difieren en dos puntos: ¿pero en qué casos?

Del 90% al 92%: por qué la exactitud no basta para comparar modelos. Derivación guiada de la prueba exacta de McNemar con dos ejemplos reproducibles.

Dos modelos de IA difieren en dos puntos: ¿pero en qué casos?

La cifra del panel oculta la comparación

Una empresa compara dos modelos que clasifican imágenes de componentes. Sobre las mismas 1.000 imágenes, A acierta 900 veces y B 920. B gana dos puntos porcentuales: ¿basta para afirmar que es una mejora fiable? Necesitamos recuperar información perdida en el panel: ¿B corrige errores de A sin introducir otros, o resuelve muchos casos pero empeora casi otros tantos? Los porcentajes finales pueden ser idénticos en ambas situaciones, aunque la evidencia sobre la comparación cambie mucho.

Resumen. Construimos dos tablas sintéticas con igual tamaño muestral e idénticas exactitudes marginales, pero distinto número de casos discordantes. Derivamos la prueba exacta de McNemar como comparación binomial condicionada a los casos en los que solo un modelo acierta. El primer contraste da p aproximadamente 0,00000191; el segundo, 0,1565, aunque ambos muestran una ventaja observada de dos puntos. Explicamos qué significa, por qué no mide el valor económico del modelo y qué supuestos exige. Los cálculos y figuras son reproducibles; no se entrenó ni evaluó ningún modelo sobre datos empresariales.

Dos respuestas para cada imagen

El requisito esencial es entender el emparejamiento. Cada imagen tiene identificador, etiqueta de referencia y dos resultados: correcto o incorrecto para A y para B. Ambas respuestas corresponden al mismo caso. Una imagen difícil puede complicar a los dos modelos; una fácil puede ser resuelta por ambos. No son dos experimentos separados. Definimos cuatro recuentos: a, ambos correctos; b, solo B correcto; c, solo A correcto; d, ambos erróneos. Las letras son una convención local: conviene comprobar la orientación de las tablas al comparar programas o libros.

Comparacióna: ambosb: solo Bc: solo Ad: ninguno
I90020080
II820100800

En I, B conserva los 900 aciertos de A y añade 20; ambos fallan en los otros 80 casos. En II, B corrige 100 errores de A pero introduce 80 retrocesos en imágenes que A resolvía. El saldo sigue siendo +20. Son dos poblaciones de resultados construidas deliberadamente, no evaluaciones reales. El segundo caso, sin errores comunes, es intencionadamente extremo: hace visible lo que borran los porcentajes. No sugerimos que esa estructura sea típica de modelos reales.

Escribamos lo que calcula el panel. N es el total de imágenes y Acc la fracción correcta. La diferencia Δ̂, “delta estimada”, es la exactitud de B menos la de A. El recuento a se cancela: los aciertos compartidos no favorecen a nadie. Queda b menos c, dividido por N. La diferencia es 0,02, dos puntos porcentuales, no un aumento relativo del 2%. Respecto al 90%, el aumento relativo es aproximadamente 2,22%; usaremos puntos para evitar ambigüedad.

N = a + b + c + d Acc(A) = (a + c)/N Acc(B) = (a + b)/N Δ̂ = Acc(B) − Acc(A) = (b − c)/N = 20/1000 = 0.02

¿Qué pregunta estadística planteamos?

La descripción muestral es segura: B tiene 20 aciertos adicionales en ambas tablas. La inferencia se refiere a una población de casos de la que podría proceder la muestra. Preguntamos si los dos modelos fijados tienen igual probabilidad de éxito en esa población. La hipótesis nula H₀ expresa esa igualdad. No afirma que siempre respondan igual o fallen en las mismas imágenes. Modelos muy distintos pueden tener igual exactitud global. La prueba trata diferencias entre tasas, no similitud interna de arquitecturas.

Suponemos imágenes muestreadas independientemente de la misma población objetivo, etiquetas correctas y modelos y umbrales fijados antes de observar este test. Se exige independencia entre pares de resultados de imágenes distintas, no entre A y B sobre una imagen. Fotogramas consecutivos de una pieza, duplicados y recortes casi idénticos pueden violarla fácilmente. Una prueba matemáticamente exacta no repara un protocolo de recogida defectuoso. Mantenemos explícitas estas condiciones porque delimitan lo que puede sostener el resultado.

De los casos discordantes a una moneda ideal

Sea πb la probabilidad poblacional de que solo B acierte y πc la de que solo A acierte. La diferencia de exactitudes poblacionales es πb − πc, por la misma álgebra de los recuentos. H₀ equivale a πb = πc. En un caso discordante ya sabemos que uno ganó: bajo H₀, ¿cuál? La probabilidad condicional de victoria de B es πb/(πb + πc), igual a 1/2 con denominador positivo. De ahí surge la moneda ideal; no suponemos que los modelos respondan lanzando monedas.

H₀: πb = πc πb/(πb + πc) = 1/2 m = b + c K | m, H₀ ~ Binomial(m, 1/2)

m es el número observado de discordantes: 20 en I y 180 en II. K es una variable aleatoria que cuenta cuántas victorias de B veríamos entre m discordantes si H₀ fuera cierta. Su valor observado es b. Condicionar a m significa fijarlo durante la prueba. Bajo los supuestos de muestreo, las direcciones de las victorias siguen una distribución binomial. La analogía de la moneda solo describe esas direcciones condicionadas, no la dificultad de la imagen ni la probabilidad global de error.

Construir el valor p sin una caja negra

Medimos cuán inusual sería un desequilibrio al menos así de grande bajo H₀. Usamos una prueba bilateral, pues cuentan desviaciones a favor de A o de B. Para cada k, el coeficiente binomial C(m,k) cuenta las formas de colocar k victorias de B en m posiciones; cada secuencia tiene probabilidad 2⁻ᵐ. Sumamos la cola hasta el menor de b y c y duplicamos para incluir la cola simétrica. Limitamos el resultado a uno, porque una probabilidad no puede superarlo.

P(K = k | m, H₀) = C(m,k) / 2ᵐ p_exact = min[1, 2 × Σ(k=0…min(b,c)) C(m,k) / 2ᵐ]

En I, b = 20 y c = 0. El extremo observado es que las 20 victorias sean de B. La prueba bilateral incluye el extremo opuesto, todas de A. Ambas secuencias suman probabilidad 2/2²⁰ = 1/524288, aproximadamente 0,00000190735. No es la probabilidad de que B sea peor ni de que la hipótesis nula sea cierta. Es la probabilidad de resultados al menos así de extremos dentro del modelo nulo, condicionada a 20 discordantes. Esta distinción evita convertir p en confianza sobre el producto.

En II hay 100 victorias de B y 80 de A. Bajo H₀ el centro es 90 por lado: B queda diez por encima. Sumando probabilidades para K ≤ 80 y K ≥ 100 obtenemos aproximadamente 0,156531. Con α = 0,05 fijado previamente, I rechaza H₀ y II no. No rechazar no demuestra igualdad: esta prueba, con estos datos y este umbral, no aporta evidencia suficiente para rechazarla.

Distribuciones binomiales bajo H₀ condicionadas a m discordantes. Las barras rojas forman las dos colas del valor p; la línea discontinua marca b observado. En I las colas son casi invisibles en escala lineal. II muestra 55–125 para facilitar la lectura; el cálculo incluye todos los valores 0–180. Abrir la imagen permite ampliarla.
Distribuciones binomiales bajo H₀ condicionadas a m discordantes. Las barras rojas forman las dos colas del valor p; la línea discontinua marca b observado. En I las colas son casi invisibles en escala lineal. II muestra 55–125 para facilitar la lectura; el cálculo incluye todos los valores 0–180. Abrir la imagen permite ampliarla.

Leamos desde el centro azul: son los resultados más probables si las direcciones discordantes estuvieran equilibradas. Busquemos después la línea negra: está en el extremo en I y todavía cerca del centro en II. Una barra no es el valor p; hay que sumar ambas colas rojas. Las escalas verticales difieren, por lo que no debemos comparar alturas como medida de lo bueno que es B. El gráfico representa el modelo del contraste, no prestaciones medidas.

Por qué los retrocesos cambian la incertidumbre

Podemos entenderlo sin una prueba de hipótesis. Para cada imagen definimos Dᵢ: +1 si solo gana B, −1 si solo gana A y cero si ambos aciertan o fallan. Su media es Δ̂. I contiene veinte +1 y ningún −1; II, cien +1 y ochenta −1. El saldo sigue siendo veinte, pero en II procede de cancelar muchas más contribuciones. Otro muestreo puede alterar más fácilmente el saldo cuando numerosas victorias compensan numerosas derrotas.

La fórmula siguiente cuantifica la intuición. Dᵢ² vale uno exactamente en los discordantes, así que la suma de cuadrados es m. La varianza muestral de diferencias es [m − NΔ̂²]/(N−1). Dividir por N y tomar la raíz estima el error estándar de la diferencia media. Aquí “error estándar” significa variabilidad muestral estimada, no número de errores de clasificación. No es el valor p exacto y no sustituye la prueba binomial derivada.

Δ̂ = (Σᵢ Dᵢ)/N Σᵢ Dᵢ² = m s²D = [m − NΔ̂²]/(N − 1) SE(Δ̂) = sqrt[(m/N − Δ̂²)/(N − 1)]

Con iguales N = 1.000 y Δ̂ = 0,02, el error estándar estimado es aproximadamente 0,00443 en I y 0,01341 en II: 0,443 y 1,341 puntos porcentuales. Si fingiéramos muestras independientes, una fórmula no emparejada daría unos 1,279 puntos para ambos. Perderíamos precisamente la diferencia buscada. Emparejar no siempre garantiza menor error estándar: depende de la relación entre resultados. II muestra que ignorarla también puede subestimar la variabilidad.

Otro límite es el origen de las 1.000 imágenes. Si fueran todo el universo de interés, su diferencia sería simplemente la observada: el test no añade imágenes. La inferencia tiene sentido al conectar una muestra con futuros casos o una población mayor. Un benchmark público cómodo no representa automáticamente una línea productiva. Hay que explicar la generalización pretendida, los casos excluidos y la selección de los incluidos, incluso con aritmética impecable.

Exacto no significa universal

La prueba exacta suma probabilidades binomiales sin aproximación chi-cuadrado. “Exacto” describe la distribución de referencia bajo los supuestos, no etiquetas perfectas ni conclusiones ciertas. Existe el estadístico asintótico (b−c)²/(b+c), comparado con una chi-cuadrado de un grado de libertad, y una variante con corrección de continuidad. Con pocos discordantes la aproximación puede ser insatisfactoria. Usamos el mismo cálculo binomial en ambos ejemplos para no confundirlos cambiando de variante.

Si m = 0 no observamos discordancia y el código devuelve p = 1, coherente con la ausencia de evidencia direccional. No demuestra coincidencia en todas las imágenes futuras. La discreción importa: no todos los valores p son posibles con m fijo y la prueba exacta puede ser conservadora. El 5% no es una ley natural; la regla debe declararse antes. Cambiarla tras ver 0,1565 adaptaría el protocolo al resultado.

De la significación a la decisión empresarial

Un valor p pequeño no establece que B deba desplegarse. La ventaja observada sigue siendo dos puntos: hay que valorar magnitud, incertidumbre, coste de inferencia y consecuencias de errores. En calidad industrial, omitir un defecto crítico y rechazar una pieza conforme pueden costar muy distinto. La exactitud cuenta ambos como un error. Antes de probar hay que decidir si la métrica responde a la pregunta operativa. Comparar pérdidas ponderadas exige un análisis adecuado, no sustituir arbitrariamente recuentos ponderados en McNemar.

La prueba se refiere a dos modelos ya fijados. Reentrenarlos con otros datos, semillas o hiperparámetros podría producir modelos distintos; esa variabilidad no aparece en los recuentos. No comparamos en general dos algoritmos de aprendizaje. Asimismo, elegir B tras comparar decenas de candidatos en el mismo test exige considerar la selección. El procedimiento no elimina los problemas de comparaciones múltiples ni del uso repetido del test. Debe seguir visible el vínculo entre pregunta, muestreo y conclusión.

Código reproducible y resultados que no debemos inventar

El paquete incluye ambas tablas, distribuciones nulas completas y el programa generador. exact usa combinaciones enteras y Fraction para sumar la cola como racional, convertido a decimal solo al salir. case reconstruye exactitudes, discordancias, diferencia y error estándar. Los assert comprueban exactitudes iguales entre escenarios y valores p a ambos lados de 0,05. No hay aleatoriedad y no aplica una semilla. El fragmento requiere experiment.py en el mismo directorio extraído.

Una evaluación empresarial propuesta debería conservar el resultado de cada modelo en cada caso, no solo los totales. Así permitiría inspeccionar retrocesos, verificar etiquetas y vincular cambios con categorías de error predefinidas. Aquí no realizamos esa evaluación: no recogimos imágenes, implicamos operadores ni comparamos productos de EL-AI. La portada es ilustrativa. Demostramos relaciones matemáticas y cálculos sobre tablas sintéticas; el protocolo aplicado sigue siendo una propuesta adaptable a datos reales.

Dos puntos no cuentan toda la historia

La respuesta es concreta: al evaluar dos modelos sobre los mismos casos no bastan las exactitudes finales. Hay que saber qué errores corrige cada uno y qué retrocesos introduce. Veinte mejoras sin retrocesos y cien mejoras con ochenta retrocesos dan el mismo saldo, pero distinta evidencia estadística. La prueba exacta hace verificable esa diferencia bajo supuestos declarados. La decisión final también necesita el significado operativo de los errores: un buen informe muestra la diferencia y las condiciones que hacen creíble su interpretación.

Fuente metodológica y límites de la publicación

Consultamos la documentación primaria NIST Dataplot, “McNemar Test”, actualizada el 11 de diciembre de 2023: definición de comparación emparejada, supuestos y variantes exacta y asintótica. La hipótesis sustantiva es la igualdad de probabilidades discordantes; no interpretamos “independence” del encabezado descriptivo como una prueba de independencia entre modelos. Los recuentos, explicación numérica, código y figuras son ejemplos didácticos propios. No reproducen el conjunto demostrativo de NIST ni constituyen investigación original o artículo revisado por pares.

NIST Dataplot — McNemar Test (2023-12-11).

from experiment import case
for label, counts in [('I', (900,20,0,80)), ('II', (820,100,80,0))]:
    r = case(*counts)
    print(label, r['A_accuracy'], r['B_accuracy'], r['discordant'])
    print('exact p', r['exact_p'])
    print('paired SE', r['paired_standard_error'])

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 9 de octubre de 2026.