Para prever a PMS no Python, três caminhos competem: a econometria clássica (ARIMA), o machine learning (XGBoost) e a inteligência artificial (TimeGPT). Neste tutorial você vê como montar os três sobre a mesma série da Pesquisa Mensal de Serviços do IBGE e como descobrir qual deles acertou quando confrontado com o dado que já se realizou.
A PMS é a estatística oficial do IBGE para o setor de serviços, o maior componente do PIB brasileiro. Sua variação mensal é uma das primeiras leituras do ritmo da atividade, e também uma das mais difíceis de antecipar: é uma série volátil, que muda de sinal com frequência e reage a choques sazonais e estruturais.

O gráfico acima confronta as previsões feitas há quase um ano com a PMS que o IBGE publicou desde então. Nenhum modelo capturou os saltos bruscos da série, mas, no erro acumulado, o XGBoost foi o que ficou mais perto do realizado.
Quer reproduzir esta comparação?
O script completo em Python (coleta a PMS na API do IBGE, treina ARIMA, XGBoost e TimeGPT, avalia numa janela de teste e gera as previsões) vai para os assinantes do Boletim AM. Assine, é gratuito, e receba no seu e-mail o código pronto para rodar.
Por que prever a PMS é difícil
A PMS que usamos é a variação do volume de serviços de um mês contra o anterior, já com ajuste sazonal. O ajuste sazonal remove o padrão que se repete todo ano, como o pico de fim de ano, para que a variação reflita movimento real da atividade, não o calendário.
Mesmo assim, a série é ruidosa. A variação típica de um mês para o outro é grande em relação ao nível médio, próximo de 0,5%. Ela sobe e desce, cruza o zero e responde a choques que nenhum modelo enxerga de antemão. Prever mês a mês essa série, com precisão, é praticamente impossível.
Por isso o exercício coloca métodos de naturezas diferentes para competir. Cada família de modelo enxerga a série de um jeito, e comparar os três diz mais do que confiar em qualquer um deles isoladamente.
Como o exercício foi feito, etapa por etapa
O método é um pipeline de dados com quatro etapas. As três primeiras preparam o terreno; a quarta é a competição entre os modelos.
1. A PMS vem pronta da API do IBGE
A série está na API SIDRA do IBGE, na tabela da PMS. Em vez de baixar planilhas à mão, o código lê o dado direto de uma URL e devolve uma série mensal limpa. A variável escolhida já traz o ajuste sazonal, o que evita ter que dessazonalizar por conta própria.

O gráfico da série mostra o tamanho do problema: a PMS oscila em torno de zero, muda de sinal a todo momento e traz o choque extremo da pandemia em 2020. É esse ruído que os modelos precisam enfrentar.
2. A janela de teste garante uma comparação justa
Para saber quem prevê melhor, a regra de ouro é avaliar cada modelo em dados que ele não viu no treino. Por isso o exercício separa os últimos 12 meses como janela de teste: treina com o resto da série e compara a previsão com o que realmente aconteceu naqueles 12 meses.
O erro é medido por três métricas clássicas. O RMSE penaliza erros grandes com mais força; o MAE é a média do tamanho do erro; o MAPE mede o erro em termos percentuais. Em todas, quanto menor, melhor.
3. Três modelos, três formas de enxergar a série
O ARIMA é o cavalo de batalha da econometria de séries temporais. Ele usa os próprios valores passados da série e o erro recente para projetar o futuro, e na versão sazonal captura o padrão que se repete a cada 12 meses. A escolha da configuração é automática, feita pela função que busca a melhor combinação.
O XGBoost não é um modelo de séries por natureza: é um algoritmo de árvores de decisão. Para usá-lo em previsão, o truque é transformar a série numa tabela de variáveis explicativas, as features: defasagens (o valor de 1, 3, 6, 12 meses atrás), médias móveis recentes e marcadores do calendário. O modelo aprende a relação entre essas features e o valor do mês seguinte.
O TimeGPT, da Nixtla, é um modelo de fundação para séries temporais. Assim como os grandes modelos de linguagem foram treinados em imensos volumes de texto, o TimeGPT foi treinado em bilhões de séries. A promessa é prever sem treinar nada na sua série específica. Para usá-lo é preciso criar uma conta na Nixtla e obter uma chave de API própria, o que pode exigir plano corporativo conforme o volume de uso.
Por fim, o exercício monta um ensemble: a média das previsões. Combinar modelos que erram de formas diferentes costuma reduzir o erro médio, sem precisar apostar de antemão em qual é o melhor.
Quem acertou: previsto contra realizado
As previsões geradas para o período iniciado em agosto de 2025 já podem ser comparadas com a PMS que o IBGE divulgou desde então. A tabela traz o erro de cada modelo nesses nove meses, medido pelo RMSE e pelo MAE.
| Modelo | Abordagem | RMSE | MAE |
|---|---|---|---|
| XGBoost | Machine learning | 0,852 | 0,638 |
| Ensemble | Média dos modelos | 0,870 | 0,668 |
| ARIMA | Econometria clássica | 0,877 | 0,690 |
| TimeGPT | Inteligência artificial | 0,994 | 0,825 |
Erro das previsões (set/2025) contra a PMS realizada, 9 meses (ago/2025 a abr/2026). Fontes: exercício e IBGE (SIDRA).
O XGBoost teve o menor erro, seguido de perto pelo ensemble e pelo ARIMA. O TimeGPT, a inteligência artificial do trio, superestimou de forma consistente a variação e ficou por último nesta janela. Não é um veredito geral sobre os métodos: é o que aconteceu nesta série, neste período. Testar as previsões contra o dado que se realizou é o que dá base à comparação, em vez de comparar modelos apenas pelo desempenho no período de treino.
A previsão para os próximos 12 meses
Com os modelos re-treinados sobre a série atualizada, o exercício projeta os 12 meses seguintes ao último dado do IBGE. ARIMA e XGBoost, junto do ensemble, apontam variações em torno da média histórica.

O padrão é o esperado numa série tão volátil: os modelos convergem para previsões próximas da média, porque antecipar o ruído mês a mês é quase impossível. A diferença entre eles está em como cada um lida com a inércia e a sazonalidade da série.
As ferramentas por trás



Considerações finais
O ponto central deste exercício não é qual método vence, mas o método de comparação: uma janela de teste que nenhum modelo viu no treino, métricas de erro claras e a checagem do previsto contra o dado que se realizou. Numa série tão volátil quanto a PMS, nenhum modelo acerta os saltos mês a mês, e reconhecer esse limite já é parte da análise.
O Python resolve bem esse tipo de trabalho porque reúne, num só ambiente, a coleta na fonte oficial, o preparo dos dados e três famílias de modelo bem diferentes. O mesmo caminho, coletar, avaliar, modelar e confrontar com a realidade, se repete em quase todo problema de previsão macroeconômica. O que muda é a aplicação por área:
- Economista de conjuntura: antecipa o ritmo dos serviços e da atividade para leitura de cenário.
- Analista de investimentos: usa a projeção de indicadores para calibrar apostas em juros, câmbio e setores.
- Cientista de dados: compara econometria, machine learning e IA num problema real, com avaliação rigorosa.
- Gestor e planejamento: incorpora previsões de atividade em orçamentos e cenários de demanda.
- Pesquisador e estudante: reproduz um exercício de previsão com dados abertos, sem depender de bases proprietárias.
Em todas essas frentes, saber programar em Python é o que permite sair da leitura passiva do indicador para produzir a própria análise.
Você viu como funciona; aprenda a montar o pipeline
A Formação em Análise Macroeconômica ensina a montar pipelines como este, da coleta no IBGE à modelagem e previsão em Python. Quem quer acesso a todas as formações tem o AM Black, a assinatura anual.
Conheça a Formação em Análise Macroeconômica →Ver o AM Black →
Leia também: