• Roger Sampaio

Como o Google é um vendedor esperto: sabe exatamente os produtos que quero.

Atualizado: 17 de set. de 2021

Fala meus guerreiros. Você certamente já pensou em comprar algo pela internet e ao abrir o seu navegador lá estava o Google sugerindo exatamente o produto que você quer?. Acredito que boa parte de nós. Parece que o Google conhece muito bem você, suas preferências e gostos pessoais como um verdadeiro vendedor esperto. Um dia desses precisei comprar um monitor maior (cansei de codificar em telas pequenas kkkkk), e em um passe de mágica ao abrir o computador, estava o Google sugerindo monitores grandes das mais variadas marcas e também outros produtos que certamente compraria como, por exemplo, um teclado LED e não um quadro artístico. Isso é chamado de sistema de recomendação, ou seja, um conjunto de técnicas que visam selecionar itens personalizados com bases nos interesses dos usuários. Amazon, Netflix, redes sociais, lojas de varejo usam exaustivamente eles de modo que obtêm grandes vantagens competitivas. E no coração dos sistemas de recomendação, está a correlação. Apertem os cintos, vamos decolar e entender como funciona toda essa bagaça.


  1. O que é?

Se algumas pessoas pensam que o Google é mágico ao fazer as recomendações, então irei relevar o truque a vocês. O segredo do Mister M será relevado agora! O Google não me conhece, porém tem dados históricos de todas as pesquisas de produtos de informática que já fiz no passado. Usando essa informação, junto com outros usuários com perfis semelhantes ao meu (estilo geek: gosta de produtos de informática), o Google pode fazer previsões com boa probabilidade de acerto sobre minhas preferências. Segundo o autor Charles Wheelan, a correlação mede o grau em que dois fenômenos estão relacionados entre si. Um bom exemplo é: o peso e a idade de um pessoa. Quanto maior a idade, maior será o peso. O contrário também procede.

Passando a lupa meus guerreiros, os fenômenos são dados pelas variáveis, que são valores que assumem determinadas características dentro de uma pesquisa, podendo ser do tipo: qualitativas ou quantitativas. Variáveis qualitativas não podem ser expressadas de forma numéricas, porque representam categorias, classes. Para deixar mais divertida nossa conversa, vamos usar um exemplo do jogo pokémon. Note:

Altura, peso são exemplos de variáveis quantitativas. Já gênero, categoria e habilidades são exemplos de variáveis qualitativas.


2. O bendito do Coeficiente de Correlação.


Matematicamente, a correlação estudará duas variáveis através de uma razão e nos retornará um índice que varia entre -1 a 1. Enquanto mais próximo de -1, significa que a correlação será negativa. Já quanto mais próxima de 1, a correlação é positiva. Correlação de 0, significa neutra, ou seja, não há correlação. Eita que complicou agora, meu guerreiro? Hehe, Calma, papai aqui irá te explicar direitinho. Correlação negativa: uma variável cresce em sentido, a outra variável em outro. Suponha que queiramos responder a seguinte pergunta como Cientistas de Dados mui feras: será que existe uma correlação entre a demanda do arroz e seus respectivo preço? Em outras palavras, o que acontecerá se o preço do arroz subir, a demanda cai ou continuará crescendo? Leve em consideração os seguintes dados que foram coletados de uma pesquisa. Calculando a correlação (mais a diante explicarei como faremos), notaremos que o todas as vezes que o preço sobe, a demanda cai. Já quando o preço baixa, a demanda sobe. Note que uma variável tem o comportamento inverso da outra. Após calcular o índice nesse caso, temos o valor de -0,9, indicando forte correlação negativa. Veja:

Pegando ganho no exemplo anterior, agora vamos procurar responder a seguinte pergunta: Todas as vezes que o mercado Seu Zezinho lança uma campanha publicitária na televisão, o que acontece com a demanda do arroz? As pessoas tendem a consumir mais, menos ou não interfere? Levando em consideração os dados abaixo, tivermos os seguintes resultados. Observe o índice de correlação de 0,98, indica forte correlação positiva. Em outras palavras, significa que todas as vezes que o número de campanhas publicitárias na televisão sobe, a demanda sobe (as pessoas compram mais). Certamente Seu Zezinho deve investir mais nas campanhas, porque está sendo proveitoso concorda, meu guerreiro?

Vou dar mais um exemplo. O que acontece com o HP (pontos de saúde) de um pokémon quando evoluiu? Será que existe uma correlação entre essas variáveis? Vamos usar como referência o pokémon Charmander. Pesquisando na pokédex virtual temos as seguintes estatísticas abaixo. Observe atentamente o HP entre eles:



Observe que todas as vezes que o pokémon Chamander evoluiu, o HP também aumentou. Não calculei o coeficiente de correlação nesse exemplo, mas provavelmente estaria positivo próximo de 1, indicando uma correlação positiva. Bem, pelo menos para o Pokémon Chamander podemos comprovar a correlação entre evolução e HP. Agora se quiséssemos saber se aplicaria a todos os demais, deveríamos coletar os HPs, evoluções e calcular o coefiente de correlação.

Explorando mais em detalhes o valor do coeficiente, podemos ter as seguintes variações segundo Rodrigo Salles:

  • 0.9 a 1 positivo ou negativo indica uma correlação muito forte.

  • 0.7 a 0.9 positivo ou negativo indica uma correlação forte.

  • 0.5 a 0.7 positivo ou negativo indica uma correlação moderada.

  • 0.3 a 0.5 positivo ou negativo indica uma correlação fraca.

  • 0 a 0.3 positivo ou negativo indica uma correlação desprezível.

3. Características da Correlação.


O legal é que podemos utilizar o coefiente independentemente das unidades de medidas entre as variáveis avaliadas. No exemplo anterior do mercado Seu Zezinho, o preço do arroz estava em reais, enquanto a demanda em valores inteiros.

Mas nem tudo são flores, meu guerreiro. Correlação não implica em causalidade. Vou repetir novamente: correlação não implica obrigatoriamente causalidade. Notamos que realmente a demanda do arroz aumenta todas as vezes que preço cai, porém não podemos afirmar que isso ocorre exclusivamente apenas por esse motivo. Outros fatores podem estar influenciando como, por exemplo, preço de outros bens complementares caírem, aumento do salários dos brasileiros entre outros. Em outras palavras, se o preço do feijão cai (os brasileiros comem em geral arroz com feijão), então terá um consumo maior também de arroz. Um estudo mais aprofundado e investigativo deve ser feito para comprovar a casualidade, a correlação indica apenas um indício e não o indício.


4. Mãos na Massa: Calculando a Correlação.


Guerreiro, agora que já entendeu todo bláblábláblá da correlação e sei que é tarado em programar, vamos para a prática utilizando a linguagem Python. Graças aos bons desenvolvedores da comunidade open-source não precisamos criar explicitamente a formula matemática da correlação e reinventar a roda, ao contrário: ela já está pronta, disponíveis nos frameworks bastando apenas acioná-la. A formula matemática não tem uma carinha bonitinha para a maioria das pessoas, mas acredite: não é tão difícil de interpretá-la, porque se trata de operações aritméticas básicas. Veja:

Retornando a nossa pokédex, vamos trabalhar em algumas análises interessantes. A nossa base de dados contém 721 pokémons incluindo nome, número, tipo 1 e 2 (venenoso, elétrico, fogo, ...) e estatísticas básicas: HP, ataque, defesa, ataque especial, defesa especial e velocidade. Após carregar a base de dados, vamos passar brevemente a lupa em alguns registros:

# Importação de pacotes
import pandas as pd
import seaborn as sns

# Carregando a base
pokemons = pd.read_csv('bases/Pokemon.csv')

# Visualizando alguns registros
pokemons.head(5)

# Contando a quantidade de linhas e colunas
pokemons.shape

Resultados:


Agora pergunto a vocês. Como faço para calcular a correlação entre todas as variáveis? Em Python é tão difícil que você utilizará apenas uma única função, chamada 'corr'. Mamão como açúcar, concorda? Hehe.

# Sintaxe: nomeDataFrame.corr()
pokemons.corr()

Interpretando brevemente alguns resultados, observe a correlação, por exemplo, entre Ataque e Total, que está com o valor 0.73. O que isso significa? Correlação positiva forte. Quanto maior poder de ataque, maior será o total (considere total como a soma de todas as variáveis estatísticas como, por exemplo, HP, Ataque, Defesa, ...). Para não ficar mui informação podemos, por exemplo, imprimi-los apenas os dois utilizando filtros:

# Correlação de apenas algumas.
pokemons.loc[:,['Attack','Total']].corr()

Podemos ainda construir um gráfico de calor de modo a enfatizar correlações fracas ou fortes com a biblioteca Seaborn.

# Gráfico de calor para visualizar melhor
corr = pokemons.corr()
sns.heatmap(corr, 
        xticklabels=corr.columns,
        yticklabels=corr.columns)

5. E no Final das Contas


A correlação, uma ferramenta poderosa da Estatística, nos ajudar a compreender como dois fenômenos estão relacionados entre si, o que pode ser útil em diversas situações do mundo real. Podemos, por exemplo, responder a seguinte pergunta: será que o consumo de vinho rejuvelhece as pessoas (tarda mais para falecer). Caso haja correlação positiva, podemos utilizar essa informação para campanha publicitária de venda de vinhos. A linguagem Python é uma mão na roda para realizar esse estudo porque nos oferece funções para carregar, explorar os dados e calcular a correlação de maneira simples e rápida. O código fonte (incluindo as bases de dados e planilhas utilizadas) se encontra no github. Abraços e até a próxima.












99 visualizações0 comentário