Tres confirmaciones pueden venir del mismo error
Tres agentes de IA coinciden al leer un procedimiento. Parece verificación, pero una página obsoleta compartida puede repetir un error tres veces. ¿Cuánto mejora la mayoría si los errores dependen entre sí? Construimos un modelo probabilístico completo, sin atribuir cifras inventadas a agentes reales.
Suponemos verdad binaria y m votantes impar. E_i vale uno al fallar y cero al acertar. Cada error marginal p=0,2 es elegido, no medido. Con muchas respuestas erróneas diferentes, contar errores no basta para describir el voto; la restricción binaria es esencial. Las probabilidades no tienen unidades.
Primero, errores independientes
Con independencia falla la mayoría si fallan al menos (m+1)/2 votantes. Para m=3 hay tres casos de dos errores, cada uno p²(1−p), más p³ para tres. Da 3p²(1−p)+p³=0,104, menor que 0,2. La mejora nace de errores en casos distintos, no del acuerdo en abstracto.
C(m, k) cuenta qué k fallan y el producto da la probabilidad de cada disposición. Sumamos exactamente los casos de mayoría errónea. El código enumera todas las secuencias para m=3 y 5: comprobación exacta finita, no conversaciones simuladas. Para p>0,5 no hay garantía de mejora; verifica que m=3, p=0,7 empeora el riesgo individual.
Añadir una causa común sin cambiar el error individual
Con probabilidad q todos copian un indicador Bernoulli(p); con 1−q los errores son independientes. q es probabilidad de rama, no similitud textual medida. Cada agente conserva error p en ambas ramas. Solo cambia la distribución conjunta: cómo aparecen juntos los errores.
En la rama común la mayoría falla con p; en la otra, con B_m(p). Ponderar da la fórmula. Con tres agentes y q=0,5 resulta 0,152. Para q=1 permanece 0,2 con cualquier m: las copias no añaden evidencia. Con p<0,5 aumentar m mantiene el suelo q·p en este modelo, no en todo sistema multiagente.
| m | q=0 | q=0,5 | q=1 |
|---|---|---|---|
| 1 | 0.2 | 0.2 | 0.2 |
| 3 | 0.104 | 0.152 | 0.2 |
| 5 | 0.05792 | 0.12896 | 0.2 |
| 9 | 0.019581 | 0.109791 | 0.2 |

Correlación y unanimidad responden preguntas distintas
Para agentes distintos E[E_iE_j]=q·p+(1−q)p². Restar p² da covarianza q·p(1−p); dividir por varianza da correlación q si 0< p<1. Depende de conocer la construcción completa. Marginales y correlaciones por pares no determinan en general la mayoría: importan dependencias superiores. Coincidir en respuestas tampoco equivale a correlación de errores sin verdad conocida.
Aceptar solo unanimidad exige contar rechazos. La rama común siempre coincide; la independiente coincide con p^m+(1−p)^m. Cobertura: q+(1−q)[p^m+(1−p)^m]. El error entre aceptados divide q·p+(1−q)p^m por esa cobertura. El código calcula ambos, sin confundir exactitud selectiva con servicio completo.
Qué verificar en un sistema real
El experimento enumera probabilidades, no modelos lingüísticos, y no mide costes, latencia ni productos. La práctica necesita tareas representativas, verdad independiente y registro de fuentes comunes. Nombres o prompts distintos no prueban independencia. Cambiar fuentes puede ayudar, pero exige medir; el verificador final también puede compartir el error inicial.
Votar ayuda si combina evidencias con errores suficientemente distintos, no por acumular respuestas. Un 20% individual da aquí riesgos colectivos de 10,4%, 15,2% y 20% con independencia, mitad de rama común y dependencia completa. Igual capacidad individual produce resultados colectivos distintos. Contar confirmaciones sin origen puede multiplicar confianza en un solo error.
import math,itertools,json,sys
from pathlib import Path
p=.2;rows=[]
def independent_majority(m,p):return math.fsum(math.comb(m,k)*p**k*(1-p)**(m-k) for k in range(m//2+1,m+1))
for m in [1,3,5,9]:
for q in [0,.25,.5,.75,1]:
majority=q*p+(1-q)*independent_majority(m,p)
all_wrong=q*p+(1-q)*p**m;unanimous=q+(1-q)*(p**m+(1-p)**m)
rows.append(dict(agents=m,sharedBranchProbability=q,pairwiseErrorCorrelation=q,errorEach=p,majorityError=majority,unanimousCoverage=unanimous,errorGivenUnanimity=all_wrong/unanimous))
for m in [3,5]:
exhaustive=math.fsum(p**sum(bits)*(1-p)**(m-sum(bits)) for bits in itertools.product([0,1],repeat=m) if sum(bits)>m//2)
assert abs(exhaustive-independent_majority(m,p))<1e-14
assert abs(independent_majority(3,.2)-.104)<1e-14
assert all(abs(r['majorityError']-.2)<1e-14 for r in rows if r['sharedBranchProbability']==1)
assert independent_majority(3,.7)>.7
r=dict(python=sys.version.split()[0],seed=None,scope='Exact constructed mixture model of dependent Bernoulli error indicators, not an evaluation of real AI agents',model='With probability q all m errors equal one Bernoulli(p); otherwise errors independently Bernoulli(p). Binary ground truth and odd majority; no adversarial or language-model execution.',rows=rows)
Path(__file__).with_name('results.json').write_text(json.dumps(r,indent=2),encoding='utf8');print('All exact mixture and enumeration assertions passed; rows',len(rows))
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 25 de octubre de 2026.

