Trilha Estatistica
Correlação·Licao 12/24
Modulo 4

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.

  1. Implemente a função `pearson(x, y)` para calcular a correlação.
  2. Calcule a correlação entre os três pares de variáveis dados.
  3. 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

Carregando ambiente Python...

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.