As diferentes formas de avaliar o erro de um modelo de previsão

Quem nunca começou a estudar ciência de dados e se deparou com várias siglas misteriosas em torno de modelos preditivos? MAE, RMSE, ACC, F1, ROC e R2 são apenas algumas das métricas de desempenho. A lista é bem maior!

Por haver muitas métricas de avaliação de desempenho de modelos preditivos, surgem dois principais problemas:

  • O que cada métrica significa, mensura e como interpretar?
  • Qual métrica escolher para o meu modelo?

Neste artigo vamos explorar estas e outras métricas fornecendo uma visão geral sobre o significado, o cálculo, a interpretação e a aplicabilidade das mesmas. A ideia é entender quais métricas são apropriadas para avaliar o desempenho de modelos preditivos nos casos de problemas de regressão e classificação.

Para aprender mais e ter acesso a códigos confira o curso de Modelagem e Previsão usando Python ou comece do zero em análise de dados com a formação Do Zero à Análise de Dados com Python.

Introdução

É importante avaliar o desempenho de modelos preditivos usando as previsões do modelo (um tanto quanto óbvio). O ajuste do modelo e, consequentemente, a grandeza dos resíduos na amostra de treino não são fontes confiáveis do tamanho dos erros do modelo para dados não observados. Devemos avaliar o desempenho do modelo com dados que o mesmo não “enxergou” ainda. Para fazer isso usamos amostras de treino e teste de dados (saiba mais sobre reamostragem neste link).

Ao avaliar a performance de modelos preditivos, alguns preceitos gerais devem ser observados:

  • Um modelo que se ajusta bem aos dados de treino não necessariamente é um bom modelo preditivo;
  • Um ajuste perfeito pode sempre ser obtido usando um modelo com parâmetros suficientes;
  • Sobreajustar um modelo é tão ruim quanto falhar em identificar qualquer padrão sistemático nos dados.

Em geral, as métricas de desempenho são estatísticas pontuais de avaliação de modelos. Isso significa que a maioria delas só avalia a previsão pontual do modelo, mesmo que ele gere como resultado, por exemplo, uma distribuição de probabilidade. Assumiremos, daqui em diante, que é neste contexto que o leitor pretende avaliar o desempenho de modelos e que o objetivo da modelagem seja performance preditiva.

Métricas de desempenho para regressão

O objetivo de avaliar o desempenho de modelos preditivos em problemas de regressão é identificar os modelos que entregam as previsões mais acuradas. Costuma-se comparar dois ou mais modelos e escolher o modelo ou uma combinação de modelos com a maior acurácia. Isso é o mesmo que escolher com base no menor erro.

A grande parte das métricas de desempenho se baseiam na distância entre valores observados e valores previstos. Essa distância é conhecida como erro de previsão e, usualmente, o ideal é que esse valor seja o mínimo possível.

Erro de Previsão (E)

  • Significado: o Erro de Previsão é a diferença entre o valor observado e o valor previsto pelo modelo.
  • Fórmula: \text{E} = y_i - \hat{y}_i
  • O termo y_{i} corresponde aos valores observados da variável de interesse que o modelo desconhece. Já o termo \hat{y}_{i} corresponde aos valores previstos pelo modelo. O índice _i corresponde ao i-ésimo ponto de previsão fora da amostra.
  • Interpretação: se o valor do Erro de Previsão for igual a zero, diz-se que o modelo prevê perfeitamente os dados; se valor for maior do que zero, o modelo possui viés positivo nas previsões; e se o valor for menor do que zero, o modelo possui viés negativo nas previsões.

Erro Médio (ME)

  • Significado: o Erro Médio é a diferença média entre os valores observados e os valores previstos pelo modelo.
  • Fórmula: \text{ME} = \text{média} (\text{E})
  • Interpretação: um valor positivo de ME indica superestimação; um valor negativo de ME indica subestimação; idealmente, o valor de ME deve ser zero ou próximo de zero.

Erro Absoluto Médio (MAE)

  • Significado: o Erro Absoluto Médio é a diferença absoluta média entre os valores observados e os valores previstos pelo modelo.
  • Fórmula: \text{MAE} = \text{média} (|\text{E}|)
  • Interpretação: quanto menor o valor do MAE, mais acuradas são as previsões do modelo.

Erro Quadrático Médio (MSE)

  • Significado: o Erro Quadrático Médio é a diferença quadrática média entre os valores observados e os valores previstos pelo modelo.
  • Fórmula: \text{MSE} = \text{média} (\text{E}^2)
  • Interpretação: quanto menor o valor do MSE, mais acuradas são as previsões do modelo; erros grandes são “penalizados” pela potenciação. Modelos que minimizam o MSE levam a previsões da mediana.

Raiz do Erro Quadrático Médio (RMSE)

  • Significado: a Raiz do Erro Quadrático Médio é a raiz quadrada da diferença quadrática média entre os valores observados e os valores previstos pelo modelo.
  • Fórmula: \text{RMSE} = \sqrt{\text{MSE}}
  • Interpretação: quanto menor o valor do RMSE, mais acuradas são as previsões do modelo; erros grandes são “penalizados” pela potenciação. Modelos que minimizam o RMSE levam a previsões da média.

Erro Percentual (PE)

  • Significado: o Erro Percentual é o percentual de erros de previsão em relação aos valores observados.
  • Fórmula: \text{PE} = 100 \text{E}_{i}/y_{i}
  • Interpretação: um PE igual a zero indica que o modelo prevê perfeitamente os dados; quanto maior o valor de PE, maior a discrepância entre os valores observados e previstos.

Erro Percentual Absoluto Médio (MAPE)

  • Significado: o Erro Percentual Absoluto Médio é a média do percentual absoluto de erros de previsão em relação aos valores observados.
  • Fórmula: \text{MAPE} = \text{média} (|\text{PE}|)
  • Interpretação: um MAPE igual a zero indica que o modelo prevê perfeitamente os dados; quanto maior o valor de MAPE, maior a discrepância entre os valores observados e previstos.

Note que estas métricas são todas bastante simples e derivadas de apenas uma medida. A parte mais difícil aqui são as siglas, pois os nomes já dizem do que se tratam as métricas.

Métricas de desempenho para classificação

O objetivo de avaliar o desempenho de modelos preditivos em problemas de classificação é identificar os modelos que entregam as classificações mais acuradas. Costuma-se comparar dois ou mais modelos e escolher o modelo ou uma combinação de modelos com a maior acurácia. Isso é o mesmo que escolher com base no menor erro.

A grande parte das métricas de desempenho se baseiam na contagem de classificações, comparando valores observados e valores classificados. Essa contagem é feita com base em classificações corretas e incorretas do modelo e, usualmente, o ideal é que as classificações incorretas sejam mínimas.

Definições

Partindo de um problema binário de classificação, dizemos que:

  • P (positivo): é o número de observações positivas (codificadas com 1) no conjunto de dados;
  • N (negativo): é o número de observações negativas (codificadas com 0) no conjunto de dados.

Com um modelo de classificação ajustado/treinado, a avaliação do desempenho pode ser realizada comparando as classificações observadas e as classificações previstas e atribuindo os seguintes rótulos:

  • VP (verdadeiro positivo): se a classificação prevista e a classificação observada forem iguais a 1;
  • FP (falso positivo): se a classificação prevista for igual a 1 e a classificação observada for igual a 0;
  • VN (verdadeiro negativo): se a classificação prevista e a classificação observada forem iguais a 0;
  • FN (falso negativo): se a classificação prevista for igual a 0 e a classificação observada for igual a 1.

A partir destas definições e rótulos derivamos as métricas de desempenho do modelo.

Sensibilidade, Revocação ou Taxa de Verdadeiro Positivo (TPR)

  • Significado: a TPR mede a proporção de observações positivas que foram corretamente classificadas pelo modelo
  • Fórmula: \text{TPR} = \frac{\text{VP}}{\text{P}}
  • Interpretação: um TPR alto indica que o modelo é bom em classificar observações positivas, enquanto que um TPR baixo indica que o modelo é errático em classificar observações positivas.

Especificidade, Seletividade ou Taxa de Verdadeiro Negativo (TNR)

  • Significado: a TNR mede a proporção de observações negativas que foram corretamente classificadas pelo modelo
  • Fórmula: \text{TNR} = \frac{\text{VN}}{\text{N}}
  • Interpretação: um TNR alto indica que o modelo é bom em classificar observações negativas, enquanto que um TNR baixo indica que o modelo é errático em classificar observações negativas.

Precisão ou Valor Preditivo Positivo (PPV)

  • Significado: a PPV mede a proporção de previsões positivas que foram corretamente classificadas pelo modelo.
  • Fórmula: \text{PPV} = \frac{\text{VP}}{\text{VP + FP}}
  • Interpretação: um PPV alto indica que as classificações positivas feitas pelo modelo são corretas, enquanto que um PPV baixo indica que muitas classificações positivas são incorretas.

Valor Preditivo Negativo (VPN)

  • Significado: a VPN mede a proporção de previsões negativas que foram corretamente classificadas pelo modelo.
  • Fórmula: \text{VPN} = \frac{\text{VN}}{\text{VN + FN}}
  • Interpretação: um VPN alto indica que as classificações negativas feitas pelo modelo são corretas, enquanto que um VPN baixo indica que muitas classificações negativas são incorretas.

Taxa de Falso Negativo (FNR)

  • Significado: a FNR mede a proporção de observações positivas que foram incorretamente classificadas pelo modelo como negativas.
  • Fórmula: \text{FNR} = \frac{\text{FN}}{\text{P}}
  • Interpretação: um FNR alto indica que o modelo é errático em classificar observações positivas.

Taxa de Falso Positivo (FPR)

  • Significado: a FPR mede a proporção de observações negativas que foram incorretamente classificadas pelo modelo como positivas.
  • Fórmula: \text{FPR} = \frac{\text{FP}}{\text{N}}
  • Interpretação: um FPR alto indica que o modelo é errático em classificar observações negativas.

Taxa de Descoberta Falsa (FDR)

  • Significado: a FDR mede a proporção de previsões positivas classificadas pelo modelo que são incorretas.
  • Fórmula: \text{FDR} = \frac{\text{FP}}{\text{FP + VP}}
  • Interpretação: um FDR alto indica que um grande número de classificações positivas feitas pelo modelo são incorretas.

Taxa de Omissão Falsa (FOR)

  • Significado: a FOR mede a proporção de previsões negativas classificadas pelo modelo que são incorretas.
  • Fórmula: \text{FOR} = \frac{\text{FN}}{\text{FN + VN}}
  • Interpretação: um FOR alto indica que um grande número de classificações negativas feitas pelo modelo são incorretas.

Razão de Verossimilhança Positiva (LR+)

  • Significado: a LR+ mede o quanto mais prováveis são as previsões positivas quando o modelo está correto em comparação com quando está incorreto.
  • Fórmula: \text{LR+} = \frac{\text{TPR}}{\text{FPR}}
  • Interpretação: um LR+ alto indica melhor discriminação entre casos positivos e negativos.

Razão de Verossimilhança Negativa (LR-)

  • Significado: a LR- mede o quanto mais prováveis são as previsões negativas quando o modelo está correto em comparação com quando está incorreto.
  • Fórmula: \text{LR-} = \frac{\text{FNR}}{\text{TNR}}
  • Interpretação: um LR- baixo indica melhor discriminação entre casos positivos e negativos.

Prevalência (P)

  • Significado: P é a proporção de observações positivas no conjunto de dados.
  • Fórmula: \text{P} = \frac{\text{P}}{\text{P + N}}
  • Interpretação: representa a probabilidade de uma observação selecionada aleatoriamente ser positiva.

Acurácia (ACC)

  • Significado: a ACC mede a proporção de classificações corretas feitas pelo modelo.
  • Fórmula: \text{ACC} = \frac{\text{VP + VN}}{\text{P + N}}
  • Interpretação: ACC é uma medida geral do desempenho do modelo, mas pode não ser adequada quando as classes estão desequilibradas.

Pontuação F1 (F1)

  • Significado: a pontuação F1 é a média harmônica de precisão e sensibilidade.
  • Fórmula: \text{F1} = 2 \times \frac{\text{PPV} \times \text{TPR}}{\text{PPV} + \text{TPR}}
  • Interpretação: a pontuação F1 é útil quando o objetivo é equilibrar precisão e sensibilidade.

Coeficiente de Correlação de Matthews (MCC)

  • Significado: o MCC é uma medida da qualidade das classificações que leva em consideração verdadeiros e falsos positivos e negativos, constituindo um coeficiente de correlação entre classificações observadas e previstas.
  • Fórmula: \text{MCC} = \frac{\text{VP} \times \text{VN} - \text{FP} \times \text{FN}}{\sqrt{(\text{VP}+\text{FP})(\text{VP}+\text{FN})(\text{VN}+\text{FP})(\text{VN}+\text{FN})}}
  • Interpretação: um MCC de +1 representa uma previsão perfeita; 0 indica que o modelo não é melhor que uma previsão aleatória; e -1 indica discordância total entre a previsão e a observação.

Note que estas métricas são todas bastante simples e derivadas de poucas medidas/definições. A parte mais difícil aqui são as siglas.

Exemplo aplicado com dados

Agora vamos praticar estes dois casos utilizando dados reais. A ideia aqui é desenvolver um modelo de regressão e um modelo de classificação já abordados em outras oportunidades e calcular algumas destas métricas de desempenho a partir das previsões dos modelos. Não iremos calcular todas para não poluir este material, mas são todas bem simples e grande parte já possui funções prontas nas linguagens de programação.

Métricas para regressão

Para exemplificar os cálculos das métricas de desempenho para problemas de regressão, vamos resgatar o modelo SARIMA para previsão do IPCA. Abaixo o código para estimar o modelo e produzir previsões:

Código disponível para membros do Clube AM.

Agora utilizamos a amostra de teste e as previsões para calcular as métricas de desempenho do modelo:

ME: -0.0418213822227815

RMSE: 0.22413527391019028

MAPE: 1.1007391275782032

A variação mensal do IPCA é subestimada pelo modelo em 0.0419 em média (ME), o que corresponde a um erro de 0.224 em termos absolutos (MAE). Em termos percentuais, o modelo erra 110% em média (MAPE) das observações absolutas de teste.Note que nas observações de treino há observação igual a zero, o que impossibilita o cálculo de métricas percentuais. Note também que, dependendo do caso, métricas percentuais podem não fazer sentido para o propósito da modelagem. No caso deste modelo, o objetivo poderia ser uma previsão próxima do valor verdadeiro, ao invés de uma previsão exata, o que é extremamente difícil.Conforme as métricas, este seria o melhor modelo para prever o IPCA? A própria pergunta já é parte da resposta. Para haver um melhor modelo é necessário comparar dois ou mais modelos. Neste breve exercício só há um modelo, portanto é necessário testar mais modelos para qualquer decisão. Isso fica como exercício para os interessados.

Métricas para classificação

Para exemplificar os cálculos das métricas de desempenho para problemas de classificação, vamos resgatar o modelo SVM para classificação de pontuação de crédito. Abaixo o código para estimar o modelo e produzir classificações:

Código disponível para membros do Clube AM.

Agora utilizamos a amostra de teste e as classificações para calcular as métricas de desempenho do modelo:

0.7458745874587459
[[  0 308]
 [  0 904]]
              precision    recall  f1-score   support

           0       0.00      0.00      0.00       308
           1       0.75      1.00      0.85       904

    accuracy                           0.75      1212
   macro avg       0.37      0.50      0.43      1212
weighted avg       0.56      0.75      0.64      1212

0.0

Os clientes com empréstimo positivo (good) ou negativo (bad) são corretamente classificados pelo modelo em 74% dos casos (ACC). No total, 308 empréstimos foram incorretamente classificados como positivos (FP) e 0 foram incorretamente classificados como negativos (FN). Isso significa que o modelo classifica corretamente empréstimos positivos em 100% (TPR) dos casos positivos e empréstimos negativos em 0% (TNR) dos casos negativos. O coeficiente de correlação positivo de 0 (MCC) indica que o modelo não é melhor que uma previsão aleatória.

Conforme as métricas, este seria o melhor modelo para classificar a pontuação de crédito? A própria pergunta já é parte da resposta. Para haver um melhor modelo é necessário comparar dois ou mais modelos. Neste breve exercício só há um modelo, portanto é necessário testar mais modelos para qualquer decisão. Isso fica como exercício para os interessados.

Conclusão

Existem tantas siglas para métricas de desempenho de modelos preditivos que é fácil se perder na sopa de letrinhas. Neste artigo, fornecemos uma visão geral das principais métricas para avaliar e comparar modelos de regressão e classificação, usando exemplos com dados em Python.

Tenha acesso ao código e suporte desse e de mais 500 exercícios no Clube AM!

Quer o código desse e de mais de 500 exercícios de análise de dados com ideias validadas por nossos especialistas em problemas reais de análise de dados do seu dia a dia? Além de acesso a vídeos, materiais extras e todo o suporte necessário para você reproduzir esses exercícios? Então, fale com a gente no Whatsapp e veja como fazer parte do Clube AM, clicando aqui.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Coletando dados regionais do CAGED no Python

Os dados regionais do CAGED permitem analisar o mercado de trabalho de forma detalhada, em termos de setores, educação, rendimento e características pessoais dos trabalhadores brasileiros. Neste exercício mostramos como acessar estas informações online via Python.

Coletando dados de Setores Censitários do Censo 2022 no Python

Dados sobre a demografia e o território são primordiais para definir e implementar políticas públicas, áreas de atuação comercial e/ou estratégias de marketing. Sendo assim, saber usar os dados do Censo 2022 pode trazer vantagens competitivas. Neste exercício mostramos como obter os dados da Malha de Setores Censitários no formato vetorial (GeoJson) usando o Python.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de 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.