Avaliando a acurácia de uma previsão com o R

Quem trabalha com previsões quantitativas sabe que uma parte importante de qualquer projeto é a avaliação das previsões geradas pelo(s) modelo(s). É dessa forma que podemos verificar se estamos no caminho correto. Para ilustrar como isso pode ser feito no R, vou construir nesse post um modelo univariado simples para a taxa de desemprego medida pela PNAD Contínua e depois efetuar o processo de avaliação das previsões geradas. Para começar, vamos carregar alguns pacotes...


library(forecast)
library(ggplot2)
library(sidrar)
library(xtable)

Vamos pegar os dados que precisamos do SIDRA com o pacote sidrar...


# Dados Brutos
table = get_sidra(api='/t/6318/n1/all/v/1641/p/all/c629/all')
# Pegar a PEA
pea = table$Valor[table$`Condição em relação à força de trabalho e condição de ocupação (Código)`==32386]
# Pegar a População Desocupada
desocupada = table$Valor[table$`Condição em relação à força de trabalho e condição de ocupação (Código)`==32446]
# Criar Desemprego
desemprego = ts(desocupada/pea*100, start=c(2012,03), freq=12)

Com a função ggtsdisplay do pacote forecast podemos visualizar a nossa série e as funções de autocorrelação como abaixo.

Para a construção de um modelo univariado, teríamos que (1) verificar se a nossa série é estacionária e (2) tentar identificar os coeficientes AR e MA através de funções de autocorrelação. Vamos aqui, entretanto, utilizar um algoritmo de modo a automatizar esse processo através de critérios de informação com a função auto.arima:


sarima = auto.arima(desemprego, max.p=2, max.q=4, max.P = 2, max.Q=2)

Aplicada a função auto.arima sobre a nossa série, temos um modelo SARIMA(1,2,0)(1,1,0)[12]. Com base nesse modelo, podemos agora gerar previsões e, consequentemente, avaliá-las. É comum aqui, por suposto, dividir a nossa amostra em duas subamostras: uma de treino, onde rodamos o nosso modelo e outra de teste, onde são feitas as previsões. Nessa amostra de teste é onde ocorre a comparação com as observações efetivas da nossa série. Como regra de bolso, é comum destinar 70% para a subamostra de treino e o restante para a amostra de teste. Como nossa amostra é, entretanto, curta, vou aqui reservar apenas as 6 últimas observações para o conjunto de teste, de modo a ilustrar apenas o código.


training = window(desemprego, end=end(desemprego)-c(0,6))
test = window(desemprego, start=end(desemprego)-c(0,5))
acuracia = Arima(training, order=c(1,2,0), seasonal = c(1,1,0))
acuraciaf = forecast(acuracia, h=length(test), level=95)

Com o código acima, criamos as nossas subamostras, rodamos o modelo na subamostra de treino e gerar a previsão com base no tamanho do vetor de teste. Por fim, com a função accuracy do pacote forecast podemos avaliar essas previsões.


acc = accuracy(acuraciaf$mean, test)

E aí está a tabelinha que queríamos...

ME RMSE MAE MPE MAPE ACF1 Theil's U
Test set -0.19 0.23 0.20 -1.51 1.57 0.37 0.87

O erro médio do nosso modelinho é de 0,19 negativos e o RMSE é de 0,23. Para maiores detalhes sobre essas métricas, veja esse post aqui.

Curtiu o tema? Nós exploramos isso e muito mais no nosso Curso de Construção de Cenários e Previsões usando o R, voltado exclusivamente para a construção de previsões quantitativas no R. Dê uma olhada lá e se inscreva na próxima turma!

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Criando um Dashboard de análise de Ações no Python

Um Dashboard é um painel de controle que consolida uma variedade de informações sobre um determinado objeto de estudo em um ou mais painéis. Ele simplifica significativamente o processo de análise de dados, oferecendo uma visão global e fácil de entender. Uma maneira simples de construir um Dashboard para acompanhar uma ação específica é utilizando duas ferramentas: Quarto e Python. Neste post, mostramos o resultado da criação de um Dashboard de Ação.

Analisando séries temporais no Python e esquecendo de vez o Excel

Séries temporais representam uma disciplina extremamente importante em diversas áreas, principalmente na economia e na ciência de dados. Mas, afinal, como lidar com esses dados que se apresentam ao longo do tempo? Neste exercício, demonstraremos como compreender uma série temporal e como o Python se destaca como uma das melhores ferramentas para analisar esse tipo de dado.

Cálculo do Retorno Econômico de uma Política Pública

Como podemos traduzir os efeitos de uma política pública para valores monetários? Essa é uma tarefa árdua que requer algumas premissas, entretanto, com métodos bem definidos, é possível obter estimativas precisas dos ganhos e os gastos de uma política pública.

Neste exercício, demonstramos tal método usando a política hipotética "Mãe Paranense”, um conjunto de ações que visam reduzir a mortalidade materna e infantil no estado. Usamos a linguagem R como ferramenta para analisar os dados.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.