Auditoria interna

O teste adversarial: um conspiracionista contra dois céticos

Um agente instruído a provar manipulação contra dois verificadores independentes. Quatro anomalias morreram; duas sobreviveram — e um bug nosso foi encontrado no processo.

Investigador A (vascaíno, convicto de manipulação, liberdade total de hipótese)

Verificador B (método: reproduziu tudo do zero) · Verificador C (explicações inocentes: testou cada uma)

08/08/2026 · Leis & Impérios · três agentes Opus, réplica final concedida ao investigador


COMO FUNCIONOU

A produziu 9 anomalias + 1 achado de dados, cada uma com código e número. B refez as contas do zero, sem usar os scripts de A, atacando método (proxies, baselines, colisores, forking paths). C construiu a melhor explicação inocente para cada achado e a testou nos dados — quando a inocente falhava, declarava. A recebeu os dois laudos e respondeu com código novo, concedendo o que caiu.

Placar: das 9 anomalias, 4 morreram, 2 viraram outra coisa, 3 sobreviveram parcialmente. E o exercício produziu 2 correções de dados que valem mais que várias anomalias.


O QUE MORREU (concedido pelo próprio investigador, com o número que o matou)

A1 · "O cronômetro estica para o grande que perde" — MORTA. O proxy media quando o cartão cai, não o tamanho do acréscimo. O marcador limpo da janela (gol único nos acréscimos) dá +0,06 min, p=0,88. E 15-22% da amostra eram cartões gravados como "90" puro, desbalanceados entre os grupos. A janela não estica: +0,45 min, p=0,08, na remedição do próprio A.

A6 · "O goleiro visitante é outra categoria jurídica" — MORTA. O teste decisivo, rodado por A na réplica: no 0x0 antes dos 30 minutos — onde não há cera a fazer — o excesso é exatamente zero (OR 0,993, p=1,00). Depois dos 75, OR 3,48. O cartão vive só onde a cera paga. É a Regra 12 aplicada a quem faz cera, e quem faz cera é o visitante administrando resultado.

A4 · "O primeiro cartão é decidido antes da bola rolar" — MORTA como tese. Baseline errado (o correto é 52,7%, não 50%); o excesso real é +2,9pp, e o placebo de C executa: quando o visitante é o clube grande, o primeiro cartão nos 20 minutos iniciais é moeda (50,96%). É bloco baixo do visitante no início do jogo, não calibração por porte.

A9 · "A falta do líder não vira cartão" — MORTA. Com pontos/jogo no modelo, Palmeiras vai a q=0,27 e Botafogo a q=0,88. E o mecanismo é técnica, não favor: vermelho-por-falta cai 31% por ponto/jogo (p=0,0004) — time melhor comete falta menos grave.

A8 · "50% de amplitude entre árbitros" — reduzida a banalidade. Amplitude honesta ~+31% (percentis 10-90), p real 7×10⁻⁴, e direção zero: correlação da severidade com a estatura dos clubes = −0,0002 (p=0,99). Limiar pessoal de árbitro existe em todo esporte; sem direção, não é evidência de nada.

O QUE VIROU OUTRA COISA

A3 · "O Vasco leva 29% mais cartão por falta" — o achado mais explosivo, desmontado em três partes. O número é real (B reproduziu: 1,2907, FDR correto, robusto a tudo). Mas: 1. Metade é o adversário descendo — os rivais do Vasco levam menos cartão por falta contra o Vasco (0,88), que é o achado pró-Vasco já publicado pelo projeto, reembalado como perseguição. 2. O resíduo verdadeiro é +13,8% contra a liga inteira (p=0,0027)... 3. ...e a série temporal o mata como sistema: 1,205 → 1,217 → 1,130 → 1,093 → 1,088 → 0,886 → 0,978. Monótona decrescente, zerada em 2021 e 2023. Era um fenômeno de 2015-2018 que acabou. As defesas de A que venceram: não é elenco (concentração de cartões do Vasco é a 26ª de 29), não é crise (controle por pontos/jogo não reduz), não é estilo (posse não move nada).

A0 · O bug do travessão — CONFIRMADO, e o verificador corrigiu a correção. América-MG, Athletico-PR e Botafogo-RJ estavam 100% sem árbitro em todos os estudos anteriores: o ref_db.json grava esses nomes com travessão U+2013, que a normalização ASCII apaga. 754 partidas recuperadas. B então achou o segundo bug, dentro do conserto de A: o painel usa ano civil, e 112 jogos da temporada 2020 (que terminou em fev/2021) casavam com a temporada errada — 69 partidas com árbitro incorreto. Correção final por temporada: cobertura 100,0%. Impacto nos resultados já publicados: nulo (o efeito fixo de árbitro é absorvido em contrastes dentro da partida; o within-referee 0,884 vira 0,880). Mas toda análise futura usa a versão corrigida.

O QUE SOBREVIVEU AOS DOIS VERIFICADORES

S1 · O embargo de escala (z=−14,66). A probabilidade de um árbitro repetir o mesmo clube no jogo seguinte é 6,2% do acaso — contra o nulo mais duro que B conseguiu construir (permutação dentro da rodada, preservando a agenda real de cada árbitro). Recuperação suave em 4 rodadas. A "sobra nos lags 5-11" foi retirada (conservação aritmética). O que fica: a escala do Brasileirão é um sistema de controle fino e determinístico, não um sorteio — o que não prova direcionamento nenhum, mas estabelece que o mecanismo para direcionar existe e é operado com precisão.

S2 · A mesma falta, sentença diferente (a forma mais afiada do viés de mando). O árbitro apita o mesmo número de faltas para mandante e visitante (IRR 1,0005, p=0,94) e converte a falta do visitante em cartão 10,8% mais vezes (0,9027, p=1,5×10⁻¹⁰). Estável às três versões da variável de árbitro. Some com portões fechados (0,985, p=0,68; interação p=0,002). O viés não está em ver a falta — está em decidir a pena. Mecanismo: torcida (consenso dos três agentes).

S3 · O segundo amarelo do visitante (o único achado que resistiu parcialmente à explicação inocente). Jogador visitante pendurado vira expulso 1,40x mais que mandante pendurado, ajustado por estado de placar (p=0,0016, IC [1,14; 1,73]) — e apertando o filtro de classificação o efeito sobe (1,63 com gap≤20min), o contrário do que má classificação faria. A célula "perdendo" é nula (1,12, p=0,56) — parte é anti-jogo de quem administra resultado, como diz C. Mas a maior célula da amostra, empate, com 6.214 pendurados, dá 1,49 (p=0,010) — e cera não explica jogo empatado. Sobrevive menor do que nasceu, mas sobrevive.

S4 · Cinco tiros de direcionamento, cinco erros — declarados pelo próprio conspiracionista. Escala por porte do jogo (p=0,75) · par árbitro-clube específico (0 de 56 pares sob FDR) · rebaixamento (p=0,83) · pênaltis (p=0,68) · árbitro conterrâneo em campo (p=0,73). O agente com mandato explícito para achar manipulação, com liberdade total e computação à vontade, não achou a alavanca sendo puxada em nenhum dos cinco lugares onde ela deveria aparecer.


A TESE QUE SAI DO DEBATE (palavras finais do próprio investigador A, após conceder)

"Entrei procurando uma mão na balança e saí com um relógio e um termostato. [...] O viés é real, é mensurável e vive exclusivamente no passo discricionário — mas o vetor dele aponta para a arquibancada, não para uma sala. [...] Continuo achando que uma máquina capaz de espaçar árbitros com essa precisão é uma máquina capaz de escolher — mas depois desta rodada eu não tenho um único número que mostre a alavanca sendo puxada, e é obrigação minha dizer isso com todas as letras."

O QUE ISTO DÁ AO EPISÓDIO

  1. O formato é o conteúdo. "Contratamos um conspiracionista e dois céticos" é um ato de vídeo inteiro — as 4 anomalias que morreram são tão narráveis quanto as que sobraram, e a honestidade de matar as próprias hipóteses é a marca do canal.
  2. Três números novos para a tela: o embargo z=−14,66; faltas 1,00 × cartão-por-falta 0,90; e o segundo amarelo 1,40 que resistiu.
  3. Duas correções de dados que blindam tudo o que vem depois (travessão + temporada; cobertura de árbitro 76,8% → 100%).
  4. Vale a regra de sempre: PADRÃO ≠ INTENÇÃO — causa não identificada. E agora com um teste a mais: procuramos a intenção em cinco lugares com o investigador mais motivado possível, e ela não apareceu em nenhum.

ARQUIVOS

Scripts do investigador: prep.py, fix_arb.py, a*.py, réplica R*.py · Verificadores: PB.pkl, c*.py · Resumo dos laudos: adversarial/RELATORIO_A.md · Este veredito: VEREDITO_ADVERSARIAL.md Pendência aberta: regenerar painel_visibilidade.csv com o árbitro corrigido por temporada (versão B) e re-rodar os números do Estudo 6 — impacto esperado ~zero, mas fica registrado até ser feito.