Publiquei um Número que Nada Tinha Medido

Paulo Rodrigues7 min de leitura

Apareceu uma estatística no meu registo de investigação publicado. Dizia, mais ou menos: o efeito é +0,531, a 11,2 sigma.

Não era uma medição. O efeito era real. O sigma era uma cadeia de texto, escrita à mão dentro de um print, sem nada no código a calculá-la.

Não dei por isso. Já estava publicado há um dia.

Como se publica um número que não é um número

Andava a reproduzir um artigo do ICML 2026, aquele cujo argumento central é que se pode ganhar o benchmark habitual devolvendo respostas vazias na maior parte das vezes. (Escrevi sobre isso à parte.)

Parte desse trabalho consistia em verificar uma afirmação específica: o método do artigo torna os intervalos de previsão mais curtos? Corri a experiência, o script imprimiu a linha de resumo, e copiei essa linha para o registo como conclusão.

A forma da falha é esta. A frase impressa continha dois números lado a lado. Um tinha sido calculado. O outro tinha sido escrito. E porque apareceram juntos, em monoespaçado, no fim de um script que tinha mesmo acabado de correr durante algum tempo, o número escrito herdou a credibilidade do número calculado.

O mecanismo é todo aqui. Não houve alucinação no sentido dramático, nenhum sistema afirmou algo falso sobre o mundo. Um número foi apenas colocado no sítio onde costuma estar uma medição, e a colocação tratou de mentir.

O que sai no terminal não é evidência, é uma afirmação sobre um cálculo. São coisas diferentes, e passei anos sem precisar de as distinguir, porque historicamente vinham as duas do mesmo sítio.

O que aconteceu quando repeti a experiência

O passo óbvio seguinte era assumir que a conclusão não prestava e retirá-la. Também estaria errado.

O script dos autores fixa cinco sementes aleatórias. Alarguei para duzentas e, a parte que interessava, gravei as matrizes por semente que o script normalmente descarta na média, para passar a existir um ficheiro em disco em vez de uma linha num ecrã.

O resultado:

impressorepetido, n=200
efeito (α=0,05)+0,531+0,531454
sigma11,219,11
desvio-padrão0,393338

O efeito reproduziu-se até à terceira casa decimal. A execução original tinha mesmo acontecido. Simplesmente nunca ficou gravado o artefacto, e por isso não havia maneira de distinguir um resultado verdadeiro de um resultado escrito à mão, que é exactamente a razão pela qual era preciso repetir em vez de apagar.

O sigma estava errado, mas errado para baixo: a separação real é 19,1 e não 11,2. A afirmação publicada tinha sido mais conservadora do que a evidência permitia.

Isso não serve de consolo. Um número que ninguém mediu calhar cair para o lado favorável é sorte, não é método. Se tivesse caído para o outro lado, eu teria publicado um exagero.

Para ficar completo, já que é essa a conclusão de facto: em α=0,05 o método alonga os intervalos (+0,5315, 19,1σ), enquanto em 0,10, 0,15 e 0,20 os encurta (−0,367, −0,526, −0,617). A cobertura mantém-se no valor nominal em todos os casos, 0,9493 contra um alvo de 0,95, portanto o teorema do artigo fica intacto. O artigo nunca afirmou encurtamento universal. O resumo automático do artigo, gerado pela plataforma do desafio, foi que afirmou.

Duas lições que apontam em sentidos opostos

A primeira é a evidente. Um número impresso não é um número medido. Antes de uma figura contar como conclusão, alguma coisa tem de a ter escrito em disco. Passei a tratar "que artefacto é que eu abri?" como a pergunta, em vez de "isto parece certo?", porque parecer certo era precisamente a propriedade que o número mau tinha.

A segunda é menos confortável, e quase me escapou.

Quando encontrei a cadeia de texto fixa, a minha conclusão imediata foi isto foi inventado, a conclusão não vale nada. Confiante, rápida, e também sem evidência nenhuma. Era uma hipótese com ar de veredicto, produzida pela mesma maquinaria que tinha produzido o erro original, a afirmar uma coisa por ser plausível e não por ter sido verificada.

Se tivesse agido em função disso, teria retirado uma conclusão correcta.

Só a repetição da experiência resolveu. Não foi o primeiro instinto nem o segundo. Foi o artefacto.

Quanto isto custa, e porque é que isso importa

92 segundos de relógio num portátil, 105 segundos de CPU. Sem GPU, sem nuvem, apenas numpy e scikit-learn sobre um conjunto de dados sintético pequeno o suficiente para caber em memória.

É este o número a que volto sempre. A verificação não era cara, nem lenta, nem tecnicamente exigente. Apenas não tinha sido feita.

Esta é a forma real do controlo de qualidade em trabalho assistido por IA, e não é a que as pessoas esperam. O modo de falha não é um sistema a inventar algo escandaloso que um leitor atento apanharia. É um valor pequeno, plausível, bem formatado, no sítio certo, rodeado de valores correctos, indistinguível por inspecção, e barato de verificar se alguém se lembrar de o fazer.

Gerar cem linhas plausíveis é hoje quase gratuito. Verificar cem linhas custa exactamente o que sempre custou. É na distância entre estas duas curvas que vive todo este tipo de erro, e ler com mais atenção não a fecha. O que a fecha é uma regra: um número só passa a conclusão quando se consegue dizer de que ficheiro veio.

Corrigi isto acrescentando uma entrada nova ao registo, com a repetição e o valor corrigido, e deixei o original visível. Editar resultados publicados para fazer um estado passado parecer mais arrumado é um problema maior do que o erro que esconde.

A linha original continua lá. A correcção também. Parece-me a ordem certa.


O artigo é Questioning the Coverage-Length Metric in Conformal Prediction (Min, Lu, Li, Zhang, Teng). A reprodução foi submetida ao desafio de reprodução por agentes do ICML 2026. Todos os valores deste texto vêm de um ficheiro em disco, claim1_seeds200.csv e as matrizes por semente que lhe deram origem, e foram recalculados a partir das matrizes em bruto antes da publicação, o que me pareceu o mínimo dado o tema.

Perguntas Frequentes

O que correu mal, exactamente?

Um script imprimiu uma frase com uma estatística lá dentro, um efeito e um valor de sigma. O efeito era real, vinha de um cálculo feito antes no mesmo script. O sigma não era. Estava dentro da frase impressa como texto literal, e nada no código o calculava. Como apareceu no terminal ao lado de um número genuíno, foi lido como resultado. Copiei essa linha para um registo de investigação publicado e lá ficou durante um dia até alguém a questionar.

Então a conclusão estava errada?

Não, e foi essa a parte que me surpreendeu. Repetir a experiência com 200 sementes reproduziu o efeito até à terceira casa decimal, +0,5315 contra os +0,531 que tinham sido impressos. A execução original tinha mesmo acontecido, apenas nunca ficou gravado nenhum ficheiro. Mas o sigma estava errado: o valor real é 19,1 e não 11,2. Estava subestimado, o que significa que a afirmação publicada tinha sido mais conservadora do que a evidência permitia. Um número errado que calha cair para o lado seguro continua a ser um número errado.

Como se distingue um número real de um número impresso?

Perguntando o que o calculou, e indo verificar. Não basta avaliar se parece plausível, porque a plausibilidade é precisamente o que falha aqui: o valor inventado estava ao lado de um verdadeiro e herdou a credibilidade dele. O teste concreto é saber se existe um artefacto, um ficheiro, uma matriz, uma linha num CSV que alguma coisa escreveu. Se o único vestígio de um número é ter aparecido num ecrã, ainda não é evidência. O que sai no terminal é uma afirmação sobre um cálculo, não o cálculo.

Porque não apagar simplesmente o número errado?

Porque o registo já estava publicado, e editar resultados gravados para fazer um estado passado parecer melhor é um problema maior do que o erro original. A correcção foi feita acrescentando uma entrada nova, com a repetição da experiência, o valor corrigido e a explicação do que tinha falhado, deixando o original visível. Um registo que se reescreve discretamente deixa de ser um registo. Isto importa ainda mais quando o trabalho é assistido por IA, porque o volume de texto gerado torna a edição posterior mais fácil e mais difícil de detectar.

Isto quer dizer que não se pode confiar em análise gerada por IA?

Quer dizer que o volume produzido e o esforço de verificação crescem a ritmos diferentes, e é nessa diferença que vivem os erros. Gerar cem linhas plausíveis é hoje quase gratuito. Verificar cem linhas custa o mesmo que sempre custou. Por isso a disciplina que conta não é ler com mais atenção, é exigir um artefacto antes de um número passar a contar como conclusão. Neste caso a verificação inteira levou 92 segundos de relógio num portátil. A barreira nunca foi o esforço, foi ninguém ter perguntado.

Pronto para automatizar o seu negócio?

Construímos ferramentas de IA e sistemas de automação para PMEs europeias — desde MVPs rápidos até sistemas em produção, sempre em conformidade com o GDPR.

it's human stuff

Insights semanais de IA para PMEs europeias. Sem exageros, apenas o que funciona.

Continue a Ler