Correlação não é causa
Trilha Estatistica, dentro da Oficina de Dados.
Um dos erros mais comuns em análise de dados é confundir correlação com causalidade. Só porque duas variáveis se movem juntas não significa que uma causa a outra. Esse princípio é tão importante que virou mantra: "correlação não implica causalidade".
Existem três razões principais para uma correlação existir sem causalidade direta: (1) uma terceira variável escondida causa ambas (variável confundidora), (2) a relação é ao contrário do que pensamos (causalidade reversa), ou (3) é pura coincidência.
Um exemplo clássico: o consumo de sorvete e os afogamentos em piscina têm alta correlação. Isso não significa que sorvete causa afogamentos! A variável escondida é o calor do verão, que aumenta tanto o consumo de sorvete quanto o uso de piscinas.
Para inferir causalidade de verdade, precisamos de experimentos controlados (testes A/B) ou de técnicas estatísticas avançadas que controlam variáveis confundidoras. Apenas calcular correlação nunca é suficiente.
No dia a dia com dados, sua missão é encontrar correlações interessantes, mas ser crítico ao interpretar. Pergunte sempre: "Existe uma terceira variável que pode explicar isso?" e "Faz sentido que uma realmente cause a outra?".
Exemplo:
# Dados correlacionados que NÃO têm relação causal
vendas_sorvete = [200, 350, 500, 450, 300, 150]
afogamentos = [2, 5, 8, 7, 4, 1]
temperatura = [18, 25, 35, 32, 22, 15]
import math
def pearson(x, y):
mx = sum(x) / len(x)
my = sum(y) / len(y)
num = sum((a - mx) * (b - my) for a, b in zip(x, y))
dx = math.sqrt(sum((a - mx) ** 2 for a in x))
dy = math.sqrt(sum((b - my) ** 2 for b in y))
return round(num / (dx * dy), 4)
print("Sorvete vs afogamentos:", pearson(vendas_sorvete, afogamentos))
print("Temperatura vs sorvete:", pearson(temperatura, vendas_sorvete))
print("Temperatura vs afogamentos:", pearson(temperatura, afogamentos))
print("\nA temperatura é a variável confundidora!")Todas as correlações são altas, mas sorvete não causa afogamento. A temperatura (variável confundidora) causa ambos.
Desafio guiado
Analise três pares de variáveis e determine para cada um se a correlação provavelmente indica causa ou se existe uma variável confundidora. Calcule Pearson e justifique.
- Implemente a função `pearson(x, y)` para calcular a correlação.
- Calcule a correlação entre os três pares de variáveis dados.
- Para cada par, imprima a correlação e sua análise.
Saida esperada
Experiência vs salário: 0.9976
Idade vs salário: 0.9985
Experiência vs idade: 0.999
Idade e experiência são confundidoras entre si!Dica
Basta descomentar as linhas e executar. A função pearson já está implementada. Pense: idade causa salário ou experiência causa salário?
Pratique no navegador
Resumo da lição
Sempre que encontrar uma correlação forte, pergunte: existe uma variável escondida? Correlação mostra associação, não causa.