Variantes A e B: como a previsão encontra o futuro¶
A variante diz quando o valor real fica disponível enquanto o modelo prevê. Nas duas,
o modelo é ajustado uma vez na origem; o que muda é como as fh previsões seguintes são
produzidas. A variante é escolhida no experimento e vale para a busca, a seleção, a
finalização e a previsão:
AutoHybridExperiment(fh=14) # variante A (padrão)
AutoHybridExperiment(fh=7, variant="B") # variante B
Variante A: vários passos de uma vez (padrão)¶
Na origem t, o modelo prevê t+1, …, t+fh sem ver nenhum valor real depois de t. Para prever t+3, os valores de t+1 e t+2 ainda não existem: o modelo usa as próprias previsões deles.
Num híbrido (ŷ = b + α·r̂), o corretor precisa dos últimos w resíduos. Depois da
origem não há resíduo observado, então a janela recebe os resíduos previstos r̂.
O erro tende a se acumular ao longo do horizonte, e o ganho do corretor costuma ser mais
forte no primeiro passo. Quando o padrão dominante é regular e bem modelado, a diferença
para a variante B pode ser pequena: no notebook 04, num trecho de 28 dias, a variante A
teve até erro menor.
Quando usar: quando o plano inteiro é necessário de antemão, por exemplo a demanda dos próximos 14 dias calculada hoje.
Variante B: um passo por vez, parâmetros congelados¶
O modelo prevê só o próximo passo. O valor real chega, entra no contexto, e o modelo
prevê o passo seguinte, até completar fh passos. Os parâmetros não mudam: nada é
reajustado; só o estado (o contexto observado) avança.
Num híbrido, o resíduo observado y − b entra na janela do corretor somente depois
da observação: o corretor trabalha com erros verdadeiros, não com erros que ele mesmo
previu.
Quando usar: em operação contínua, quando cada valor chega antes da próxima previsão, por exemplo monitoramento ou a previsão do dia seguinte atualizada todo dia. A escolha segue a operação, não uma vantagem garantida de precisão.
Exemplo: fh = 3, origem no dia 10¶
Variante A |
Variante B |
|
|---|---|---|
Dia 11 |
prevê com dados até o dia 10 |
prevê com dados até o dia 10 |
Dia 12 |
prevê com dados até o dia 10 (e a previsão do dia 11) |
prevê com dados até o dia 11 observado |
Dia 13 |
prevê com dados até o dia 10 (e as previsões dos dias 11 e 12) |
prevê com dados até o dia 12 observado |
Ajustes |
1, na origem |
1, na origem; nenhum depois |
Efeito na validação¶
A validação temporal simula a variante escolhida. Em A, cada origem gera uma previsão de
fh passos. Em B, cada origem gera fh previsões de um passo, e cada alvo só é
revelado depois da sua previsão. Os erros das duas variantes não são comparáveis: em
B todo erro é de um passo, em A eles cobrem os horizontes 1 a fh. Compare modelos
sempre dentro da mesma variante.
Compatibilidades¶
Recurso |
A |
B |
|---|---|---|
Modelos-base que incorporam observações novas sem reajuste
( |
sim |
sim |
Modelos-base sem essa capacidade |
sim |
|
Decomposição |
sim |
sim |
Decomposição |
sim |
não |
Seleção dinâmica do corretor ( |
não |
sim |
Corretores de sequência residual ( |
sim |
sim |
|
sim |
só |
Em produção (variante B)¶
exp = AutoHybridExperiment(fh=7, variant="B").fit(y)
result = exp.compare_models()
final = exp.finalize_model(result.best)
stream = final.stream()
ticket = stream.predict_next() # previsão, base e correção do próximo passo
stream.observe(valor_observado) # revela o valor; nada é reajustado
predict_nexteobservealternam estritamente: prever duas vezes sem observar é recusado.ForecastTickettraz a previsão, a parte da base e a correção daquele passo.FinalizedForecaster.update_statedevolve um novo objeto com as observações novas e recusarefit=True.training_cutoff(fim do treino) difere delast_observation(último valor recebido).
O notebook 04. Variante B: previsão rolling de um passo mostra o streaming, a base e a correção a cada passo e as duas variantes no mesmo trecho, com figuras.