1 Objetivo

2 Introdução

A escolha da técnica estatística pode não ser lá a decisão mais crucial para que um modelo preditivo seja bom, mas saber escolher entre uma técnica e outra pode trazer ganhos expressivos e até ser determinantes no sucesso das previsões. Cada técnica apresenta benefícios e limitações diferentes. No texto vou me ater a três tipos de técnica:

Entre esses três tipos de modelo, existem três principais recursos que devem ser considerados na hora de escolher qual usar:

Não pretendo exaurir todos os casos em que cada um se destaca dos demais, mas vou mostrar cenários comuns que deixam evidente a vantagem de usar cada um deles.

Detalhes técnicos

3 Imagem: Xadrez Colorido

A figura abaixo mostra a imagem na versão com as cores originais e na versão com apenas a cor azul isolada. A brincadeira daqui em diante vai ser recuperar a cor azul utilizando as cores vermelha (r), verde (g) e as coordenadas cartesianas dos pixels (x e y).

Antes, uma breve descrição dos dados.

4 Regressão linear

Regressão linear tem a vantagem de ter uma boa interpretabilidade ao mesmo tempo que consegue acomodar relações complexas entre a resposta e as explicativas, como curvas suaves e interações de diversas ordens. Mas uma desvantagem é que ela exige especificação explícita dessas relações.

Às vezes é difícil enxergar qual é a maneira com que a resposta se relaciona com cada explicativa (ou com um conjunto delas!) e se o número de explicativas disponível for muito grande essa investigação pode ser intratável.

Os três cenários que vamos criar aqui vão ser:

  1. Não conhecemos as interações importantes a priori e tentamos apenas os efeitos aditivos de x e y;
  2. Não conhecemos as interações importantes a priori, mas consideramos os efeitos de interação de primeira ordem entre todos os preditores (r, g, x, y);
  3. Conhecemos as interações entre x e y e criamos cuidadosamente versões categorizadas a fim de absorver os padrões quadriculados que encontramos na figura azul acima.
xadrezdf_1 %<>%
  mutate(x_cat = cut(x, breaks = c(-Inf, 73, 75+16.67, 100+8.33, 125,Inf)),
         y_cat = cut(y, breaks = c(-Inf, range(y) %>% diff %>% divide_by(9) * 1:9, Inf)))

# cenário I - regressão linear aditiva
modelo_I <- glm(b_backup ~ x + y + r + g, data = xadrezdf_1) %>% stepAIC(trace=FALSE)

# cenário II - regressão linear com interações de primeira ordem
modelo_II <- glm(b_backup ~ (x + y + r + g)^2, data = xadrezdf_1) %>% stepAIC(trace=FALSE)

# cenário III - regressão linear com interações de primeira ordem
modelo_III <- glm(b_backup ~ x + y + r + g + x_cat * y_cat, data = xadrezdf_1) %>% stepAIC(trace=FALSE)

Os cenários I e II que supomos não conhecer nenhuma interação a priori desempenharam muito mal. Já o cenário III que contou com uma minuciosa construção de categorias de x e y e com a interação entre elas conseguiu recuperar o padrão do azul original com muita fidelidade.

A conclusão até aqui é que modelos lineares podem ser bons, mas dependem muito do modelador. Agora vamos refazer as predições do azul usando árvores de decisão.

5 Árvore de decisão

Árvores de decisão são conhecidas pela sua simplicidade e interpretabilidade. Além disso, nunca será necessário especificar uma interação explícita ao algoritmo, pois, por construção, o jeito com que uma árvore ajusta seus parâmetros já incorpora interações. Por exemplo, primeiro se ramifica em x > 10 e x < 10.

Em seguida tenta ramificar x2 dentro do caso de x1 > 10 e da mesma maneira tenta ramificar x2 quando x < 10. Na regressão linear teríamos que passar explicitamente I(x1 > 10) * I(x2 > 5) para o preditor (depois de ter estudado profundamente para encontrar os números mágicos de corte 10 e 5!!).

Novo cenário:

  1. Árvore de decisão simples. Os preditores serão passados como vieram.
# método: árvore de decisão
library(tree)
modelo_IV_sem_cv <- tree(b_backup ~ r + x + y + g, data = xadrezdf_1)
modelo_IV_com_cv <- cv.tree(modelo_IV_sem_cv)
modelo_IV <- prune.tree(modelo_IV_sem_cv, best = modelo_IV_com_cv$size[which.min(modelo_IV_com_cv$dev)])

Esse cenário sugere que árvores conseguem performar com maestria sem depender de qualquer especificação explícita da relação entre as variáveis. Claro que parece bom demais pra ser verdade e de fato é. O trunfo da árvore de decisão foi devido à natureza dos dados, cuja relação entre resposta e explicativas é claramente traduzível em termos de “regras”. Em outras palavras, a cor azul se relaciona com as explicativas por meio de “curvas” em formato de escada.

Como disse no começo, a natureza dos dados é um dos recursos a ser considerado na hora de escolher a técnica ideal e no caso do desenho xadrez a árvore parece ser a escolha certa.

6 Outra imagem: Purple Wave

Agora seria a vez do Random Forest, mas antes disso vou mostrar os nossos modelos anteriores sendo usados pra prever a cor azul em uma outra imagem. O que estou fazendo aqui é alterando a “natureza dos dados”. Segue a nova imagem:

Atenção à forte correlação entre o azul e o vermelho!

Para os mesmos modelos, mudando apenas a natureza dos dados, temos resultados opostos do que o observado na figura do xaxrez colorido. Antes a árvore de decisão tinha alcançado a excelência sem o menor esforço enquanto que a regressão linear exigiu conhecimentos específicos sobre o fenômeno.

Agora, no quadro do “Cenário IV - Purple Wave”, vemos que o azul não vai se esvaescendo com suavidade como acontece na versão original. Já os outros três cenários mostraram igual performance e parecem ter absorvido bem a transição suave do preto para o azul.

Daqui tiramos que a mudança de natureza dos dados nos aponta para técnicas diferentes. Claramente, a regressão linear seria a escolha óbvia por critério de desempenho + simplicidade.

Mas estamos no século XXI! Será que não ainda não inventaram uma técnica que pudesse identificar padrões, independente da natureza da relação entre resposta e explicativas?

7 Random Forest

Não vou entrar em detalhes, mas como o nome sugere, Random Forest não é uma, mas um monte de árvores de decisão. Então é de se imaginar que ela goza das mesmas vantagens de uma árvore de decisão. Só que o mais legal é que ela traz outras vantagens adicionais.

Random Forest propõe criar várias pequenas árvores de decisão, todas com um desempenho inferior a uma única árvorezona, mas que unidas fazem a força! São 200, 500, ou X árvores palpitando sobre o valor predito. Daí a previsão final é um resumo desses palpites, geralmente a média entre elas.

O interessante dessa abordagem é que agora conseguimos uma gama maior de predições, mesmo que cada árvore nos devolva poucas opções de predições. Assim, se uma variável contribuir continuamente com a resposta, poderemos retornar valores igualmente sensíveis a essas pequenas variações de uma dada variável preditora, ao mesmo tempo que estaremos considerando casos condicionais entre outras variáveis, criados pelos ramos das árvores (interações complexas!).

Último cenário:

  1. Random Forest.
# cenário V para Xadrez colorido
modelo_V <- randomForest(xadrezdf_1 %>% select(x, y, r, g),
                         xadrezdf_1 %$% b_backup)

# cenário V para Purple Wave
modelo_V_2 <- randomForest(purple_wavedf_1 %>% select(x, y, r, g),
                           purple_wavedf_1 %$% b_backup)

A figura acima mostra que o Random Forest performou bem nas duas figuras, independente de configurações ou conhecimentos a priori. O custo disso? Computacional. Se o banco for grande e com muitas variáveis você irá precisar de um computador bem potente! Se esse for o caso, talvez seja interessante procurar técnicas menos intensivas computacionalmente, como regressão e árvore de decisão.

8 Conclusão

A escolha de uma técnica não é óbvia e muito menos supérflua. Um acerto nesse aspecto pode trazer ganhos tanto de qualidade quanto de tempo, que é o que importa!