research.jflneto.dev.br
Validação

Qualificação × pipeline: reconciliando os dois resultados

Uma escada de alinhamento entre a execução de março e o run canônico de julho — quatro leituras da mesma comparação, e o único degrau que inverte o sinal

04/08/2026Validaçãoescada, segmentos, sensibilidade e ARIMA concluídosorigem: _notas/qual-x-pipeline/ (escada, adendo da cadeia), _notas/forense/ (itens A e C), _notas/segmentos/ — sobre EXEC_18_03_2026-{AI,AF,FC}.csv e os runs e1-20260729-122616 e e1-20260804-175333
Números provisórios

O texto abaixo — sobretudo o item B ("O mínimo de 4 anos segue sendo o canônico") e as referências a "o run canônico" ao longo da página — ficou desatualizado em 01/09/2026: o autor resolveu o IMP-ELEG, baixando a elegibilidade mínima de 4 para 2 anos, e o canônico do Capítulo 5 passou a ser e1-20260804-175333 (min2); e1-20260729-122616 (min4), o run que esta página trata como canônico — na escada, nos segmentos, na anomalia do Ceará e na validação do ARIMA —, desceu a análise de sensibilidade. Os números não ficaram errados: continuam válidos para o regime de elegibilidade que descrevem, e são a base do próprio achado da página — que a elegibilidade é o degrau que inverte o sinal entre retroativa e escalonada. No item B os papéis se invertem com a virada: a coluna "mín. 4", chamada de canônica no texto, é hoje a sensibilidade; a coluna "mín. 2", chamada de "rodada de sensibilidade", é hoje o canônico. Como a elegibilidade muda quais séries entram, ler as duas colunas continua sendo comparação de direção — o 3º e o 4º ano voltam a existir e a escalonada volta a vencer nas etapas iniciais —, não de nível. Estado atualizado: Panorama da pesquisa e o registry (registry_experimentos.yml, blocos_experimentais.yml). Três números da auditoria de 04/08 não foram reproduzidos e estão marcados como tal no texto. A causa mecânica da descontinuidade de 2018 segue indeterminada.

O Capítulo 5 afirma que a representação escalonada vence globalmente; o run canônico de julho afirma o contrário. As duas frases descrevem agregados de conjuntos diferentes, e a pergunta útil não é qual está certa, mas para onde a métrica foi. Esta página responde decompondo a diferença: cada degrau abaixo aplica um filtro a mais ao universo da qualificação, até ele coincidir com o do pipeline.

+0,26o que os filtros de universo movem
MAE da retroativa, de 9,54 para 9,80 — rede, anos e etapas somados
+4,48o que a elegibilidade move
MAE da escalonada, num único degrau
5 de 5métodos que invertem o sinal
todos no mesmo degrau, nenhum antes
51%do universo atual
a qualificação cobria 75.353 das 146.885 escolas

A escada de alinhamento

Sete degraus, do universo publicado na qualificação até o run canônico. A leitura que interessa é a forma das duas curvas: quase planas por seis degraus, e um salto.

Como ler. MAE do método "último valor", em alunos. Cada degrau acumula o anterior. Os quatro primeiros filtros — snapshot, rede pública, anos-alvo e etapas — movem a retroativa de 9,54 para 9,80. O quinto degrau, a exigência de quatro anos de histórico, move a escalonada de 7,55 para 12,03 e descarta 75% das suas séries.

Como ler. o mesmo em WAPE, o erro proporcional ao volume de matrículas. A retroativa fica entre 22,9% e 23,8% nos sete degraus — o erro relativo praticamente não se move de ponta a ponta, e é isso que sustenta a leitura de que o pipeline reproduz a execução antiga. Na escalonada o WAPE sobe de 17,8% para 26,0% no mesmo degrau em que o MAE salta.

O diagnóstico da auditoria não se sustenta

A auditoria de 04/08 atribuiu a virada a sete diferenças de universo agindo em conjunto. Medidas uma a uma, elas somam +0,26 no MAE da retroativa. O sinal do agregado vira num único degrau — min_anos_treino: 4 — e vira para os cinco métodos comparáveis, sem exceção. Nenhum outro degrau inverte a ordem.

Como ler. cada célula é a diferença de MAE entre as duas representações num método (linha) e num degrau (coluna). Vermelho: a escalonada tem erro menor. Azul: a retroativa. A matriz inteira troca de cor numa só coluna — a do mínimo de quatro anos — e volta a trocar no último degrau, quando o universo passa a ser o do pipeline, com a cadeia um elo mais longa.

As quatro leituras

A mesma comparação sob quatro recortes. O seletor acima do gráfico troca método e representação.

Como ler. MAE por etapa. A qualificação nunca rodou o Ensino Médio (o arquivo correspondente tem 1 byte), então as três séries do EM só existem no pipeline. Na escalonada, a coluna verde é a única que existe na etapa 17: com o mínimo de 4 anos essa etapa não tem cobertura alguma.

Como ler. o mesmo em WAPE. É a métrica que permite comparar os quatro recortes entre si, porque não depende do porte médio das unidades de cada um.

A qualificação era um subconjunto, não outro universo

As 75.353 escolas que sobram no recorte alinhado da qualificação estão todas contidas nas 146.885 do pipeline — resíduo zero de um lado. O pipeline usa 71.532 escolas a mais. Dessas, 32.639 nunca tiveram registro nas etapas-alvo do Fundamental; as outras 38.893 têm registro e ainda assim não aparecem em nenhuma linha da extração de março, por causa não identificada.

Por que a escalonada ganhava

A explicação corrente é que a escalonada vencia nas séries curtas. Os dados dizem algo mais específico, e mais útil.

Como ler. cada linha é uma etapa; os dois pontos são as duas representações no universo original da qualificação. Abaixo do nome da etapa está o comprimento da cadeia escalonada naquela etapa — que na qualificação não varia entre escolas, é função determinística da posição na cadeia de progressão.

Comprimento de série e etapa são a mesma variável

Toda linha da etapa 17 tem 2 valores de histórico; toda linha da 18 tem 3; a 19 tem 4, e assim por diante. Isso torna impossível, no desenho da qualificação, separar o efeito do comprimento da série do efeito da etapa — são a mesma coluna. E define o mecanismo: a vantagem da escalonada acaba na etapa 19, que é onde a cadeia passa a atravessar a transição 5º→6º ano, quando a coorte troca de escola. Exigir 4 anos de cadeia obriga a escalonada a cruzar essa fronteira. Não é que séries curtas sejam melhores — é que cadeias curtas ainda não cruzaram fronteira.

As duas escalonadas não são a mesma construção

A cadeia da qualificação começa no 1º ano do Fundamental; a do pipeline começa na pré-escola (etapa_origem_extra: [2] no config.yaml). Um elo a mais dá exatamente um valor de histórico a mais em toda etapa-alvo — o n_hist máximo observado no run canônico bate dígito a dígito com essa previsão, e os n_valores da qualificação batem com a cadeia mais curta. Consequência: sob o mesmo mínimo de 4 anos, a primeira etapa com cobertura seria a 19 na qualificação e é a 18 no pipeline. As duas mudanças empurram a fronteira de cobertura em direções opostas, e parte do que parecia "a regra nova eliminou a escalonada" é a cadeia mais longa compensando na direção contrária.

Onde cada abordagem funciona

Sete atributos de escola cruzados com as predições, sobre 4,07 milhões de pares. A etapa é de longe a variável mais forte da base, então todo efeito aqui foi testado contra ela: um segmento que some ao ser restrito a uma única etapa estava medindo composição, não o atributo que lhe dá nome.

Como ler. cada linha é um nível de um segmento. O ponto cinza é a diferença agregada sobre todas as etapas; o azul, a mesma diferença dentro da etapa 18, a de maior número de pares. Segmentos cujos dois pontos ficam distantes não têm efeito próprio — o que parecia rede, região ou localização era a mistura de etapas por trás deles.

Correção de 2026-09-02 — o mecanismo desta figura não é confiável

O ponto azul acima restringe tudo à etapa 18 (EF 5º ano, a de maior número de pares) como substituto de "controlar por etapa". Essa escolha é a mesma que a seção 4 de o método (escrita depois desta página) documenta como arbitrária e não neutra: a etapa 18 carrega viés próprio, não é uma leitura representativa das outras nove etapas com cobertura escalonada. Uma reanálise de hoje (tools/analise_controle_etapa.py) refaz a mesma pergunta com o método correto — estimar o Δ dentro de cada etapa e agrupar as dez estimativas com o peso que cada etapa tem no universo do próprio tipo de segmento, não restringir a uma etapa isolada — e o resultado muda de direção, não só de magnitude: em 10 dos 13 níveis de segmento (rede, região, localização, porte), o Δ restrito à etapa 18 tem sinal oposto ao Δ agrupado corretamente. O ponto azul desta figura, portanto, não é uma leitura confiável de "o efeito sobrevive ao controle" para nenhum nível individual — é o artefato de uma etapa que não é neutra, do mesmo jeito que o EF 5º ano não é neutro na ilustração da seção 4 do método. A conclusão de fundo da página não muda: porte e regularidade da série continuam sendo os segmentos que sobrevivem ao controle por etapa feito do jeito certo; rede, região e localização continuam sendo majoritariamente composição de etapa (ver resumo.csv, coluna efeito_controlado_agrupado) — é só esta figura específica, como mecanismo de controle, que não sustenta a leitura nível a nível que o texto ao lado dela faz. A figura é mantida como registro do que foi apresentado à orientação nesta data; para a versão correta, ver a seção 4 do método e a tabela completa que a acompanha.

Run e1-20260804-175333

Cálculo: para os mesmos 13 níveis de segmento desta figura (rede: federal/estadual/municipal; região: N/NE/CO/SE/S; localização: urbana/rural; porte em tercis: pequeno/médio/grande), sinal de delta_etapa18_apenas comparado ao sinal de delta_controlado_agrupado — protocolo pareado idêntico ao de pipeline/m50_avaliacao.py::comparar_representacoes, efeito e teste de pipeline/m60_estatistica.py::_wilcoxon_pareado. Sinal oposto em 10 níveis: rede/estadual, rede/municipal, as 5 regiões, localização/urbana, localização/rural e porte/grande. Mesmo sinal em 3: rede/federal, porte/pequeno e porte/médio.

Fonte: tools/analise_controle_etapa.py → runs/e1-20260804-175333/analise_controle_etapa/resumo.csv

Rede, região e localização não sobrevivem ao controle

O corte rural × urbana parece o mais forte de todos no agregado: a escalonada empata no rural (Δ +0,06, vence em 54,6% dos pares) e perde por 4,37 no urbano. Controlando por porte, esse vão de ~4,3 cai para 0,10–1,06; controlando por porte e etapa juntos, para 0,03–0,62. Sobra um resíduo pequeno e consistentemente no mesmo sentido, mas nada perto do efeito bruto: nesta base, "rural" é sobretudo um sinônimo de escola pequena com pouco Ensino Médio. O mesmo vale para rede — "estadual" é onde está o Ensino Médio — e para região.

O que sobrevive: porte e regularidade da série

Como ler. diferença de MAE pareado por quintil de matrícula total da escola, medida no ano anterior ao ano-alvo para não usar informação do alvo. Vermelho: a escalonada tem erro menor. A série é monotônica e troca de sinal no terceiro quintil — a escalonada vence em escolas pequenas e perde de forma crescente em escolas grandes.

Como ler. WAPE por quartil do coeficiente de variação do próprio histórico de treino (nunca inclui o ano-alvo). Quanto mais irregular a série, pior qualquer método — e as duas curvas se cruzam: no quartil mais instável a escalonada tem erro relativo menor que a retroativa (35,7% contra 38,8%).

A crítica das "séries bem comportadas" tem número agora

A regularidade histórica da série é o segmento que mais discrimina, e o único cujo efeito permanece limpo em toda verificação — inclusive dentro de cada quintil de porte separadamente. Na retroativa o WAPE quase dobra do quartil mais estável ao mais instável (20,0% → 38,8%). É a confirmação direta da objeção de que os baselines se beneficiam de séries comportadas: onde a série é regular, qualquer método vai bem e a escolha entre eles importa pouco; onde não é, todos degradam — e a vantagem da retroativa desaparece.

Uma anomalia geográfica que resiste

Como ler. diferença de MAE no subconjunto pareado, por unidade da federação — azul para a retroativa, vermelho para a escalonada, como no resto da página. O Ceará é a única das 27 unidades com diferença negativa (−1,09; a escalonada vence em 61,4% dos pares), contra +0,30 em São Paulo e +10,49 no Distrito Federal.

O Ceará não é composição — e não há mecanismo identificado

Diferente de rede e região, o caso do Ceará resiste ao controle. Padronizando pela composição de etapas do próprio estado — que é atípica, com só ~1% dos pares em Ensino Médio contra ~19% no país — o valor esperado seria +0,92, favorecendo a retroativa. O observado é −1,09, de sinal oposto. Padronizações por porte, localização e rede também preveem diferença positiva (+1,44, +1,74 e +0,87). A distinção aparece etapa a etapa: nas etapas 19, 20, 21, 27 e 41 o resto do país favorece claramente a retroativa e o Ceará não acompanha.

Nenhum dos segmentos testados explica isso, e esta análise não testa mecanismo. Fica registrado como achado robusto ao controle, não como efeito explicado. Ressalva de amostra: nas etapas 25 a 27 o Ceará tem entre 490 e 875 pares, base frágil; nas etapas 18 a 21 e 41, entre 35 e 44 mil pares cada.

Qual método ganha muda pouco — e só numa das representações

Na retroativa, o vencedor por MAE é sempre a suavização exponencial ou o ensemble por média, nas 27 UFs, nas cinco regiões, nas três redes, nos cinco quintis de porte e nos quatro quartis de estabilidade — sem uma única exceção, e com diferença quase sempre inferior a 0,1 aluno entre os dois. Na escalonada o vencedor de fato varia entre segmentos. Para a decisão prática, a escolha do método é estável; o que muda o resultado é a representação e o segmento, não o estimador.

Os três achados em aberto

A · A escalonada prevê para escolas que não ofertam a etapa

Como ler. a barra clara é quanto a escalonada considera elegível; a escura, quanto chega a ter alvo real para comparar. A distância entre as duas é composta por escolas cuja coorte de origem existe mas que não ofertam a etapa-alvo.

Resolvido — as métricas não estavam contaminadas

Só 36,6% das séries escalonadas elegíveis chegam a ser avaliadas, contra 83,3% das retroativas. Mas o módulo de avaliação já descarta linhas sem alvo antes de calcular qualquer métrica: o que estava inflado era a tabela de cobertura, não os números publicados. Das escolas do excedente na 1ª série do EM, 97,4% nunca ofertaram Ensino Médio em nenhum ano da série histórica — são municipais (90,8%), rurais (55,6%) e pequenas (matrícula média 225 contra 462). O "alvo médio 7,5" citado pela auditoria é artefato de tratar ausência de oferta como zero; o valor correto é 78,9.

B · O mínimo de 4 anos elimina a escalonada nas etapas iniciais

O limite é aritmético: com gap_minimo: 2, a cadeia precisa de min_anos_treino + 2 elos antes do alvo. A rodada de sensibilidade (e1-20260804-175333, config_min2.yaml) baixou o critério para 2 anos e mediu o efeito contra o mínimo de 4 então vigente — foi este teste que levou o autor a resolver o IMP-ELEG em 01/09: hoje é o mínimo de 2 anos que é o canônico do Capítulo 5, e o mínimo de 4 (e1-20260729-122616) que é a sensibilidade. Na tabela abaixo os rótulos ficaram como estavam quando o teste rodou — leia "mín. 2" como o canônico de hoje.

Etapan · mín. 4MAEWAPEn · mín. 2MAEWAPE
3º EF———179.0034,4116,2%
4º EF———308.2865,4715,5%
5º EF100.5324,8716,1%315.0555,4015,2%
6º EF89.81112,2629,4%140.22612,6030,1%
7º EF101.02911,1627,7%140.14612,1228,8%
8º EF108.9857,8119,8%142.5748,1919,7%
9º EF115.1258,9423,5%207.24510,6419,9%
1ª EM17.91235,6545,2%62.20639,1541,3%
2ª EM45.67236,2643,5%63.03537,5642,9%
3ª EM50.03930,8242,3%64.25931,0140,8%

Representação escalonada, método "último valor", segmento sem_fallback. A etapa 2º EF continua sem cobertura mesmo com mínimo de 2: a cadeia só tem um elo antes dela.

O critério recupera exatamente o regime em que a escalonada vence

Baixar o mínimo para 2 anos devolve à escalonada as etapas 3º e 4º ano — e o 4º ano volta com WAPE 15,5%, o menor erro relativo de toda a tabela, reproduzindo no pipeline novo o que a qualificação havia encontrado (MAE 5,99 lá, 5,47 aqui). O erro global da escalonada cai de 13,41 para 10,98 enquanto o número de séries avaliadas cresce 2,6×; a retroativa quase não se move (12,04 → 12,00). Não é que o critério mais frouxo "melhore" a escalonada: ele deixa de excluir as cadeias que ainda não cruzaram fronteira, que são justamente onde ela funciona.

C · A descontinuidade de 2018 é maior do que se supunha

Ameaça à validade subestimada

A decisão de aceitar a descontinuidade como limitação pressupunha que o treino usa majoritariamente anos a partir de 2019. Não usa: 81,6% das séries elegíveis do run min4 (e1-20260729-122616) tocam pelo menos uma observação anterior a 2018 — 96,8% na retroativa, que acumula todo o histórico disponível sem janela. Mesmo no ano-alvo mais distante do problema, 94,4%. Na base canônica min2 o piso de histórico mais baixo deixa entrar séries curtas inteiramente pós-2018: a Fase 6 (relatorio_quebra_2017_2018.md, seção 5.2) recalculou o mesmo indicador sobre a população certa e achou 68,4% (5.040.373 de 7.370.033 séries elegíveis) — menos concentrado, mas ainda maioria; a causa mecânica segue indeterminada nas duas bases.

O salto de 2017 para 2018 é de 3,16× em linhas escola-etapa, mas só 1,23× em escolas distintas, e 97,2% das escolas de 2017 seguem presentes em 2018: o que muda é o número de etapas registradas por escola, de 2,35 para 6,78. A razão é uniforme entre as 27 UFs, as 12 etapas e as três redes — padrão de processo, não de política educacional. Os anos 2007–2017 somam 13,2 milhões de matrículas contra cerca de 48,5 milhões nas estatísticas oficiais do período. A leitura consistente é que esses anos contêm um subconjunto incompleto, mas a causa mecânica segue indeterminada: o arquivo-mestre é entrada externa e não há, nesta árvore, script que o gere.

ARIMA estimar θ não bateu o alpha fixo

O ARIMA entra na suíte como método adicional, na especificação (0,1,1) sem constante — que é a suavização exponencial simples com o parâmetro de alisamento estimado dos dados (ajuste por soma de quadrados condicional, vetorizado sobre a base elegível inteira do run e1-20260729-122616 — min4, o run desta validação; o ARIMA ainda não rodou sobre min2 —, sem amostragem), contra o alpha: 0.5 fixo hoje no config.yaml. É a única ordem da grade original que não colapsa num método que a suíte já tem: (0,1,0) é o "último valor" e (0,0,0) com constante é a média histórica. 4.806.030 séries elegíveis ajustadas, 100% de sucesso, 223s de tempo total.

métodonMAEWAPE
ensemble_media2.571.58111,1322,9%
suav_exp (α=0,5 fixo)2.571.58111,1322,9%
ensemble_mediana2.571.58111,2323,1%
kalman2.571.58111,8024,3%
último_valor2.571.58112,0424,8%
arima (θ estimado)2.571.58112,2825,3%
media2.571.58113,4227,6%
reglin2.571.58113,5627,9%

MAE global, retroativa, segmento sem_fallback. Fonte: runs/e1-20260729-122616/relatorio_e1.md.

Estimar o parâmetro não ajudou

O ARIMA fica em 6º lugar de 8 — pior que o suav_exp com alpha fixo em 0,5 (que empata com o ensemble no topo da tabela) e pior até que o "último valor" ingênuo. A hipótese natural — que estimar θ dos dados bateria um alisamento com parâmetro fixo arbitrário — não se confirma neste run. A explicação está na validação abaixo: θ é mal identificado exatamente onde está a maioria da base.

Validação contra o statsmodels: concordância parcial, dependente do histórico

O CSS vetorizado (produção) foi comparado contra statsmodels.tsa.arima.model.ARIMA (máxima verossimilhança exata) em 3.000 séries elegíveis reais. São dois estimadores diferentes do mesmo modelo — divergir não é, por si só, evidência de erro — mas a divergência encontrada é grande demais para ignorar.

86%da amostra tem histórico curto
n_hist 4–8 anos, onde θ é fracamente identificado
~48%das séries divergem >1 aluno
entre a previsão do CSS e a do MLE exato, disperso por toda faixa de histórico
0,98correlação de previsão
no subconjunto sem outliers numéricos do statsmodels
20%outliers do statsmodels
MLE irrestrito diverge para |θ̂|>2 em séries curtas — instabilidade numérica dele, não do CSS

Removendo os outliers do statsmodels (instabilidade numérica do MLE irrestrito em séries curtas, não um problema do CSS), a correlação de θ entre as duas implementações ainda é só 0,39 — e cai para 0,00–0,13 quando o histórico tem entre 4 e 7 anos, que é onde está a maior parte da base elegível. Só séries com n_hist ≥ 9 (14% da amostra) mostram concordância real (correlação 0,57–0,99). A previsão concorda mais do que θ (correlação 0,98 no subconjunto limpo) porque θ·ε é uma correção de segunda ordem sobre o último valor observado — mas mesmo assim quase metade das séries diverge por mais de um aluno em relação ao MLE exato, de forma dispersa, não concentrada nos casos degenerados. Leitura completa em runs/e1-20260729-122616/validacao_arima.md.

O que não foi reproduzido

Três números citados na auditoria de 04/08 não saem de nenhum recálculo sobre os arquivos. Ficam registrados como não reproduzidos, e não como errados por consequência — em dois dos três casos a conclusão que eles ilustravam continua válida por outra via.

Número citadoOnde apareceO que o recálculo dáEfeito na conclusão
41.603 escolas (28,3%) descartadas por não casar com o snapshotDiferenças de universoÉ de outra comparação — a construção da base do pipeline. O efeito sobre a qualificação é de 1.606 escolas (1,7%)Nenhum
MAE 7,57 × 10,09 do Capítulo 5Origem do resultado antigoNão reproduz por ponderação por linha, por escola nem por média simples dos três recortes. O mais próximo é 9,93 × 7,38; sem dupla contagem, 9,54 × 7,34Direção e ordem de grandeza mantidas
Alvo médio 27,7 e MAE 6,70 na etapa 17Tabela de WAPE por etapaOs valores corretos são 35,14 e 8,50. Testei os dois segmentos do run e nenhum reproduz os citados. A coluna WAPE da mesma tabela está corretaNenhum — a tese se apoia no WAPE

Fonte: EXEC_18_03_2026-{AI,AF,FC}.csv (execução de 18/03/2026) e run e1-20260729-122616 do pipeline, segmento sem_fallback. Todos os números foram recalculados a partir dos arquivos primários; onde um valor é citado de relatório sem recálculo, está assim indicado. WAPE é sempre razão de somas, nunca média de WAPEs. Memórias de cálculo, scripts e as tabelas completas em _notas/qual-x-pipeline/, _notas/forense/ e _notas/segmentos/. Ver também o run canônico e a base canônica.