Nota técnica · protocolo de aferição

Zorma v1.0

O protocolo, o que ele mede, o que ele assume e o que já foi verificado.

Este documento existe para que o protocolo possa ser examinado, criticado e reproduzido sem depender desta implementação. Ele declara separadamente o que foi medido nesta bancada, o que é assumido a partir da literatura e o que é assumido pelo operador — três coisas que costumam aparecer misturadas e que sustentam graus de confiança bem diferentes.

Versão
1.0
Ferramenta
Aderência
Reprodução
§ 7
01

O que o protocolo responde

O protocolo recebe um conjunto de casos desfechados, cada um com um score atribuído antes do desfecho, e responde a três perguntas em ordem fixa:

A primeira pergunta é a que distingue este protocolo. A recusa em concluir não é falha: é resultado, e vem acompanhada da quantidade de dado que a tornaria desnecessária.

O que ele não responde

02

Estrutura da amostra

Cada linha é uma tupla (score, desfecho, valor, grupo). O grupo identifica a unidade de dependência — em antifraude transacional, o cliente.

Toda partição e todo reamostreio operam sobre grupos, nunca sobre linhas. A razão é que linhas do mesmo cliente não são independentes: se um cliente aparece de um lado da partição e do outro, parte do que parece capacidade preditiva é reconhecimento de alguém já visto, e o intervalo de confiança sai estreito demais.

Consequência quando o grupo não é informado

Sem coluna de grupo, cada linha vira seu próprio grupo. O protocolo roda, mas o intervalo de confiança passa a supor independência que a amostra pode não ter. O laudo registra essa condição.

03

Sequência de verificações

A ordem é lexicográfica e importa: cada verificação só é interpretável se as anteriores passaram. Uma falha interrompe e determina o diagnóstico.

#VerificaçãoPerguntaNaturezaFalha significa
1Tamanho da amostraHá casos e eventos suficientes?determinísticaFalta dado
2Permutação — média nulaRótulos embaralhados voltam a 0,50?praticamente determinísticaVazamento no dado
3Controle positivo — correçãoA bancada recupera alvos conhecidos?intervalo de confiançaDefeito de método ou agrupamento
4Controle positivo — poderRecupera com precisão suficiente?determinísticaFalta dado
5Permutação — valor-pA separação excede o acaso?teste de hipóteseScore sem sinal
6Teste incrementalAcrescenta sobre sinais triviais?teste de hipóteseScore sem valor marginal
7Estabilidade por faixaSepara homogeneamente?determinísticaUm número não representa o score
8Aferição temporalA separação se sustenta do início ao fim do período?intervalo de confiançaO número global descreve média que o período recente não confirma
Por que a natureza importa

As sete verificações não formam um conjunto homogêneo de testes estatísticos, e tratá-las como tal produz afirmações incorretas sobre taxa de erro. Três são determinísticas para a amostra observada: ou o mínimo foi atingido, ou não foi. Duas são verificações por intervalo de confiança. Uma é teste de hipótese.

A sétima — detecção de vazamento — é praticamente determinística por construção. Ela compara a média de centenas de permutações contra 0,50, e o erro-padrão de uma média cai com a raiz do número de sorteios: com desvio-padrão nulo típico de 0,034 e 250 sorteios, esse erro-padrão fica em torno de 0,002, de modo que a tolerância de 0,02 dista cerca de dez erros-padrão. O laudo publica esse cálculo com os números da rodada, em vez de afirmá-lo.

Um validador que recebe "sete testes a 5%" conclui coisa diferente de quem recebe esta classificação — e a segunda é a que corresponde ao protocolo.

Controle positivo por calibração

Não há trajetória a permutar quando o score chega pronto, então o controle positivo é feito injetando um sinal cuja separação verdadeira é conhecida por álgebra. Para s = α·y + ε com ε ~ N(0,1):

AUROC = P(s₁ > s₀) = Φ(α / √2) ⟹ α = √2 · Φ⁻¹(AUROC alvo)

Esse sinal passa pelo mesmo caminho da amostra real — mesmos grupos, mesmo tamanho, mesmo reamostreio. Dois alvos são usados, 0,65 e 0,80. A verificação se divide em duas independentes:

Tratar as duas como um critério único levaria a mandar corrigir método quando o que falta é dado.

Aferição temporal

O score chega pronto, então não há treino a separar no tempo: o que se afere é se o poder de separação se sustenta. A amostra é cortada em 60% da linha do tempo e a separação é medida nos dois lados; o reamostreio é por cliente sobre a amostra inteira, recalculando ambos os períodos a cada volta, de modo que um cliente presente nos dois lados entra ou sai junto.

O portão só dispara com queda acima do limiar e intervalo excluindo zero. Reprovar por oscilação repetiria um erro já corrigido neste protocolo — o controle negativo por sorteio único, que acusava defeito onde havia variabilidade.

Diagnóstico complementar · otimismo da validação não temporal

O incremento sobre os sinais triviais é medido de duas formas: dentro da amostra, por validação cruzada agrupada por cliente, e fora do tempo, ajustando no período anterior e avaliando no posterior. A literatura de detecção de fraude documenta que a validação não temporal superestima o desempenho esperado em produção. Aqui a diferença é medida na base do próprio cliente em vez de citada.

Sai sem intervalo de confiança e por isso não é portão: serve para dimensionar quanto o número do portão pode estar otimista, não para emitir veredito.

Teste incremental

O critério não é se o score vence uma regra trivial, e sim o que ele acrescenta depois que a regra trivial já foi aplicada. Compara-se a separação de [valor, log-valor, frequência do grupo] contra [os mesmos + score], ambos por validação cruzada agrupada, e a diferença por reamostreio pareado.

Por que reamostreio pareado e não DeLong

O teste de DeLong é o padrão para comparar AUROC correlacionados e é mais eficiente. Ele assume, porém, observações independentes — pressuposto que amostras com grupos repetidos violam. O reamostreio pareado por grupo respeita a estrutura de dependência e é a escolha correta para este desenho, não uma alternativa de segunda linha.

04

Medido, assumido, declarado

Três origens de confiança diferentes, que costumam aparecer misturadas:

Medido nesta bancada

GrandezaComo
Separação (AUROC)Estatística de postos de Mann-Whitney, com tratamento de empates por posto médio
Intervalo de confiançaReamostreio por grupo, percentis 2,5 e 97,5
Valor-pPermutação dos rótulos, 120 a 250 repetições conforme o tamanho
Ganho incrementalValidação cruzada agrupada em 5 dobras, regressão logística, diferença por reamostreio pareado
EstabilidadeAUROC por quartil de valor, amplitude entre faixas
Captura no topoFração de eventos e de perda financeira nas fatias de maior score, com intervalo
Custo esperadoVarredura completa de pontos de corte sob os custos declarados

Assumido a partir da literatura

Declarado pelo operador, não verificável aqui

PremissaEfeito se falsa
Ausência de viés de seleçãoLaudo aprovado e errado. É a única forma conhecida disso acontecer
Score gravado antes do desfechoVazamento — normalmente detectado pela verificação 2, mas não sempre
Custo de revisão por casoPonto de corte e economia deslocados
Eficácia da revisão manualEconomia projetada inflada se superestimada
Volume mensal e capacidade da equipeProjeção e restrição de fila incorretas
Amostra representativa do períodoProjeção linear inválida

Método e política

Cinco limiares dependem do que está em jogo e são escolhidos antes de rodar. Três não dependem e não se movem. A separação permite discordar da política sem que isso questione o método.

LimiarConserv.PadrãoExplor.Natureza
Casos mínimos500300200política
Eventos mínimos402515política
Largura máxima do IC0,150,200,25política
Ganho mínimo0,050,030,01política
Amplitude máxima0,070,100,15política
Desvio máximo da média nula0,02método
Valor-p máximo0,05método
Teto de rodadas2método

Trocar de modo depois de ver o resultado queima um ciclo de revisão, como qualquer outra mudança de protocolo. Sem esse custo, "reprovou no padrão, tenta no exploratório" seria um laço sem condição de saída.

05

Validações empíricas

Nenhuma das afirmações abaixo é teórica. Todas foram medidas, e os parâmetros de reprodução estão na seção 7.

V1 · Discriminação entre estados

Sete populações sintéticas com propriedades conhecidas, cada uma construída para acionar um estado distinto do protocolo. Semente fixa, resultado determinístico.

PopulaçãonAUROCEstado esperadoObtido
Separação alta4.0000,869Laudo emitidoconfere
Separação moderada4.0000,732Laudo emitidoconfere
Score reflete o valor4.0000,673Sem ganho sobre o trivialconfere
Sem sinal real4.0000,495Sem sinal acima do acasoconfere
Amostra curta2400,766Amostra insuficienteconfere
Amostra no limite7000,786Bancada sem poderconfere
Cego no ticket alto4.0000,722Desempenho instávelconfere
Perde força no tempo4.0000,770Degradação temporalconfere

Note que a população de separação alta com amostra curta é recusada apesar do AUROC de 0,904. É o comportamento pretendido: separação aparente alta em poucos eventos não sustenta decisão.

V2 · Cobertura dos intervalos de captura

Oitenta amostras independentes de 4.000 casos, extraídas de uma população de referência de 400.000 casos com separação verdadeira conhecida. Para cada amostra, verificou-se se o intervalo nominal de 95% continha o valor verdadeiro da população.

FatiaValor verdadeiroCobertura medidaErro padrãoLargura média
1% de maior score16,96%97,5%±3,4 pp16,4 pp
5%41,08%97,5%±3,4 pp23,2 pp
10%55,44%95,0%±4,8 pp23,9 pp
20%71,62%95,0%±4,8 pp21,4 pp

Cobertura entre 95,0% e 97,5% para um nominal de 95%. O intervalo é honesto, com leve conservadorismo nas fatias estreitas.

Escopo desta aferição

O resultado vale para o procedimento de reamostragem implementado nesta versão, aplicado a este estimador, sob a estrutura de dependência e os tamanhos descritos acima. Não é afirmação sobre propriedades gerais do método bootstrap, que variam com o estimador, com a estrutura de grupos e com o tamanho da amostra. Alterar qualquer um desses elementos exige refazer a aferição.

V3 · Recuperação de alvos de calibração

Alvos de 0,65 e 0,80 injetados em amostra de 4.000 casos e 68 eventos foram recuperados em 0,6476 e 0,8009 — erros de 0,0024 e 0,0009, ambos com o alvo dentro do intervalo medido.

V4 · Validação da própria bancada de testes

Registro de um erro encontrado e corrigido

Durante a validação V2, a cobertura medida foi de 87% e 88% em duas levas, contra os 95% nominais. A hipótese inicial foi subcobertura do reamostreio, e uma correção de viés foi implementada. A correção não alterou o resultado.

Uma terceira leva, com outra família de sementes, produziu 98%. A investigação passou então do algoritmo para a infraestrutura de testes e identificou a causa: o gerador pseudoaleatório mulberry32 produz fluxos correlacionados para sementes próximas, e as amostras vinham sendo geradas com sementes espaçadas linearmente. As amostras "independentes" não eram independentes.

Com as sementes embaralhadas por mistura de bits, a cobertura passou a 95,0%–97,5%, eliminando a hipótese de subcobertura. A correção de viés foi então removida, por ter sido validada apenas sob a infraestrutura contaminada.

O registro fica porque a conclusão de V2 depende da correção de V4. Uma validação vale o que vale a bancada que a produziu.

V6 · Discriminação da aferição temporal

Uma população foi construída com separação forte nos primeiros 60% do período e cerca de um quarto dessa força nos 40% finais, simulando adaptação da fraude. O AUROC global resultante — 0,7703 — está dentro da faixa que o protocolo aceitaria sem a verificação temporal.

MedidaValor
AUROC global0,7703
Período 1 (2.389 casos, 45 fraudes)0,9023
Período 2 (1.611 casos, 35 fraudes)0,5997
Queda · IC 95%0,3026 [0,193; 0,411]
Incremento por validação cruzada+0,2228
Incremento fora do tempo+0,1087
Otimismo da validação não temporal0,1141

O otimismo medido — 11,4 pontos de AUROC — é da mesma ordem do que benchmarks públicos de detecção de fraude relatam quando a validação cruzada não respeita a ordem temporal. Nas populações estáveis do conjunto V1, a queda medida ficou entre −0,076 e +0,036, sempre com intervalo contendo zero: o portão não dispara por oscilação.

V5 · Leitura de arquivo

O leitor de CSV foi verificado contra nove formatos numéricos de uso corrente no Brasil — incluindo 1.299,00, 1.299 e R$ 2.480,50 — e sete grafias de desfecho, entre elas 1.0, chargeback e aprovada. Amostras degeneradas — sem eventos, só com eventos, ou com score constante — são recusadas na entrada com mensagem específica, em vez de produzirem resultados indefinidos.

06

Limites conhecidos

L1 · Viés de seleção — não detectável

Se a amostra contiver apenas casos que passaram por revisão manual, e a revisão tiver sido determinada pelo próprio score em aferição, todas as medidas ficam enviesadas de um modo que nenhuma verificação deste protocolo detecta e nenhum ajuste corrige. É a principal limitação metodológica conhecida do protocolo — o mecanismo que ele não consegue apurar diretamente. Erros de importação, de implementação ou de integridade do arquivo também produzem resultado incorreto, mas são causas distintas, tratadas fora do protocolo e em geral detectáveis por outros meios.

A mitigação é procedimental, não estatística: a ferramenta bloqueia a execução até declaração explícita do operador, e o laudo registra que se trata de declaração, não de verificação.

L2 · Multiplicidade — sem taxa única

Das sete verificações, apenas três possuem componente probabilístico relevante: os dois alvos de calibração, avaliados por intervalos nominais de 95%, e o teste incremental. As demais são determinísticas para a amostra observada ou operam com taxa de falso alarme irrelevante.

Como os dois alvos de calibração compartilham a mesma amostra, suas probabilidades de recusa não são independentes. Não existe, portanto, uma taxa única de recusa espúria obtida pela combinação dos níveis nominais — e apresentar um número assim seria criar precisão falsa em um documento cuja proposta é o contrário disso.

O que se pode afirmar: a possibilidade de recusa por flutuação amostral é dominada pelas verificações de calibração e permanece da ordem de alguns pontos percentuais; e o erro atua no sentido conservador, podendo recusar um laudo aceitável mas não aprovar um inaceitável por esse motivo. O teto de rodadas existe para impedir que a repetição converta esse conservadorismo em permissividade.

L3 · Projeção temporal

A projeção mensal é linear e supõe que o período futuro se pareça com a amostra. Amostras que cobrem períodos atípicos, ou que misturam regimes distintos, herdam a distorção na média.

L4 · Resposta adversarial

O ponto de corte ótimo é ótimo sob o comportamento observado. Alterar o corte altera o comportamento de quem frauda, e o ótimo se desloca. O protocolo mede o passado.

Desde a introdução da aferição temporal, parte deste limite deixou de ser ressalva e virou medição: a verificação 8 mede se a separação se sustentou dentro do período amostrado. O que permanece fora do alcance é a projeção para depois dele — nenhuma medição sobre dado passado antecipa a próxima adaptação. Sem coluna de data, nem sequer o comportamento dentro do período é verificado, e o limite volta a ser integralmente ressalva.

L5 · Ordenação, não calibração

Mede-se discriminação, não calibração probabilística. Para uso por ponto de corte — que é o uso previsto — calibração não altera decisão. Para uso do score como probabilidade, este protocolo é insuficiente e outras medidas seriam necessárias.

L6 · Projeção de amostra necessária

Quando o protocolo indica quanto dado falta, a projeção supõe que a largura do intervalo decresce com a raiz do número de eventos e que o histórico adicional se pareça com o atual. É estimativa de ordem de grandeza, verificada contra os cenários sintéticos, não garantia.

07

Reprodução independente

Os resultados da seção 5 são reproduzíveis sem confiar nesta implementação. Todas as populações são geradas por procedimento declarado, com sementes fixas.

Populações de teste

Gerador de score:   s = α·y + ε,  ε ~ N(0,1),  α = √2 · Φ⁻¹(AUROC alvo)
Gerador de valor:    v = ticket · exp(0,85 · N(0,1)),  mínimo 12
Gerador de data:     dia sorteado uniformemente em [0, 180), a partir de 01/08/2025
Grupos:              0,62 · n identificadores sorteados uniformemente
Aleatoriedade:       mulberry32, semente 2026
Parâmetros padrão:   n = 4.000 · taxa de evento 1,6% · ticket 420

Ordem de consumo do gerador, por linha (relevante para reprodução exata):
  1. identificador do grupo   2. valor   3. rótulo   4. dia   5. ruído do score

Valores esperados com a semente 2026

PopulaçãoAUROCValor-pΔ trivialAmplitudeQueda temporal
Separação alta0,8689< 0,005+0,3160,055+0,030
Separação moderada0,7320< 0,005+0,1730,055+0,036
Score reflete o valor0,6733< 0,005+0,0040,097−0,076
Sem sinal real0,49530,562−0,0060,042+0,032
Amostra curta0,76600,028+0,120
Amostra no limite0,7859< 0,005+0,2740,141+0,129
Cego no ticket alto0,7222< 0,005+0,1540,394+0,122
Perde força no tempo0,7703< 0,005+0,2230,140+0,303

Ensaio de cobertura

População de referência:  400.000 casos, AUROC verdadeiro 0,85, taxa 1,6%
Amostras:                 80 independentes, 4.000 casos cada
Reamostragens:            250 por amostra, por grupo
Sementes:                 embaralhadas por mistura de bits — sementes
                          linearmente espaçadas produzem fluxos
                          correlacionados em mulberry32 (ver V4)
Critério:                 fração de amostras cujo intervalo 2,5–97,5
                          contém o valor verdadeiro da população
Como contestar este protocolo

Reproduza as populações da tabela acima e verifique se os estados batem. Se não baterem, ou o procedimento aqui está incompleto, ou a implementação diverge do que este documento descreve. Ambos são achados relevantes e são o motivo de esta seção existir.

08

Registro de revisões

AlteraçãoMotivo
Controle negativo por sorteio único substituído por permutação com 120–250 repetiçõesCom evento raro, um sorteio único tem desvio padrão da ordem de 0,035 e reprovava por acaso em cerca de 15% das execuções
Controle positivo separado em correção e poderUm critério único de erro absoluto confundia defeito de método com falta de dado, e produzia o diagnóstico errado
Cinco limiares reclassificados como política declarada antes da execuçãoNão são propriedades do método; dependem do que está em jogo. Permite discordar da política sem questionar o método
Decisão separada em protocolo e implicações operacionaisRecomendação comercial não tem a mesma natureza que consequência dos testes e não deve ter a mesma autoridade
Supressão do ponto estimado em fatias com menos de 15 eventosPercentual sobre punhado de eventos oscila demais para ser citado; publica-se apenas o intervalo
Correção de viés nos intervalos implementada e removidaA evidência que a justificava vinha de infraestrutura de testes contaminada — ver V4
Laudo dividido em executivo e completoO documento passou de 13 mil caracteres e atendia mal a dois leitores distintos
Acrescentada aferição temporal como oitava verificação, com coluna de data opcionalA orientação interagências (SR 11-7 à época, hoje SR 26-2) define backtesting como comparação em período não usado no desenvolvimento; o protocolo particionava apenas por cliente. Benchmarks públicos de fraude reportam superestimação de vários pontos de AUROC quando a validação não respeita a ordem temporal — medida aqui em 0,114 na população de teste construída para isso
Cenário "amostra no limite" recalibrado de 800 para 700 casosA geração de datas alterou o fluxo do gerador pseudoaleatório e a configuração anterior deixou de demonstrar falta de poder, passando a acionar o portão de correção
Frase "única forma conhecida" substituída por "principal limitação metodológica conhecida"A formulação original não era defensável: erros de importação, de implementação ou de integridade do arquivo também produzem resultado incorreto, ainda que por causas distintas
Afirmação de "nove desvios-padrão" substituída por cálculo publicado com os números da rodadaO texto não dizia desvios em relação a qual distribuição. O laudo agora imprime o desvio-padrão nulo, o erro-padrão da média e a distância em erros-padrão, todos medidos na execução
Aferição de cobertura delimitada ao procedimento desta versãoSem a delimitação, o texto podia ser lido como afirmação sobre o método bootstrap em geral
Afirmação de multiplicidade retirada do laudo e substituída por classificação das verificaçõesO texto anterior dizia "seis testes independentes, cada um a 5%, chance de 25%". Eram sete verificações, nem todas testes de hipótese, nem todas a 5%, e os alvos de calibração não são independentes entre si. Nenhuma das três premissas do cálculo se sustentava. A correção não foi ajustar o número, e sim abandonar um cálculo injustificável