Quarteto de Anscombe: por que gráficos são indispensáveis na Estatística?

Entenda o Quarteto de Anscombe e veja por que médias, variâncias, correlação e regressão podem contar a mesma história numérica, mas esconder gráficos completamente diferentes.


1. Quarteto de Anscombe: quatro gráficos, quase os mesmos números


O Quarteto de Anscombe é um dos exemplos mais famosos da Estatística porque mostra uma lição simples e poderosa:

estatísticas resumidas podem ser iguais, mas os gráficos podem contar histórias completamente diferentes.

Ele é formado por quatro conjuntos de dados. Cada conjunto possui pares de valores $(x, y)$. Quando calculamos média, variância, correlação de Pearson e reta de regressão, os resultados são praticamente os mesmos. Porém, quando fazemos os gráficos de dispersão, percebemos que os padrões são muito diferentes.

Pergunta central:
Se média, variância, correlação e reta de regressão são quase iguais, por que os gráficos são tão diferentes?

A resposta é que uma única estatística raramente consegue representar toda a estrutura dos dados. Ela resume. E todo resumo, por definição, perde informação.


2. O que é o Quarteto de Anscombe?


O Quarteto de Anscombe foi apresentado pelo estatístico Francis J. Anscombe no artigo Graphs in Statistical Analysis, publicado em 1973 na revista The American Statistician.

A ideia do exemplo é didática: mostrar que gráficos não são apenas enfeites em uma análise estatística. Eles são parte essencial da investigação dos dados.

O que os números sugerem?

Os quatro conjuntos parecem quase iguais quando observamos apenas estatísticas resumidas.

Média, variância, correlação e regressão apontam para uma relação parecida.

O que os gráficos revelam?

Os quatro conjuntos têm padrões visuais diferentes.

Há linearidade, curvatura, pontos influentes e concentração artificial de valores.

Em forma compacta:

\[\text{mesmos resumos estatísticos} \not\Rightarrow \text{mesma estrutura dos dados}\]
Ideia principal:
O Quarteto de Anscombe mostra que uma análise estatística responsável deve combinar resumos numéricos com visualização de dados.

3. Os dados do Quarteto de Anscombe


Cada conjunto possui 11 observações. Os três primeiros usam os mesmos valores de $x$. O quarto conjunto possui quase todos os valores de $x$ iguais a 8, com um ponto distante em $x = 19$.

Conjunto Característica visual O que pode enganar?
I Relação aproximadamente linear Este é o caso em que a reta resume razoavelmente bem o padrão
II Padrão curvo A correlação linear ignora a curvatura
III Quase linear, mas com um ponto discrepante Um único ponto altera a reta e a correlação
IV Quase todos os valores de $x$ são iguais Um ponto com $x$ distante domina a regressão

O ponto mais importante é que a tabela acima só fica clara depois que olhamos os gráficos.


4. O paradoxo didático: números parecidos, histórias diferentes


Os quatro conjuntos possuem aproximadamente:

$\bar{x} = 9$ média de x
$\bar{y} \approx 7{,}5$ média de y
$r \approx 0{,}816$ correlação de Pearson
$\hat{y} \approx 3 + 0{,}5x$ reta ajustada

Uma forma simples de resumir a situação é:

$$ \bar{x}_1 \approx \bar{x}_2 \approx \bar{x}_3 \approx \bar{x}_4 $$ $$ \bar{y}_1 \approx \bar{y}_2 \approx \bar{y}_3 \approx \bar{y}_4 $$ $$ r_1 \approx r_2 \approx r_3 \approx r_4 $$ $$ \hat{y}_1 \approx \hat{y}_2 \approx \hat{y}_3 \approx \hat{y}_4 $$

Mesmo assim, os gráficos são muito diferentes.

Cuidado:
Quando usamos apenas média, variância, correlação e regressão, podemos perder informações importantes sobre curvatura, assimetria, agrupamentos e pontos influentes.

5. Resumos estatísticos dos quatro conjuntos


Usando o código em Julia deste post, obtemos os seguintes resultados aproximados:

Conjunto $\bar{x}$ $\bar{y}$ $s_x^2$ $s_y^2$ $r$ Reta ajustada
I 9,0000 7,5009 11,0000 4,1273 0,8164 $\hat{y} = 3{,}0001 + 0{,}5001x$
II 9,0000 7,5009 11,0000 4,1276 0,8162 $\hat{y} = 3{,}0009 + 0{,}5000x$
III 9,0000 7,5000 11,0000 4,1226 0,8163 $\hat{y} = 3{,}0025 + 0{,}4997x$
IV 9,0000 7,5009 11,0000 4,1232 0,8165 $\hat{y} = 3{,}0017 + 0{,}4999x$

Observe como os números são parecidos. Se uma pessoa analisasse apenas essa tabela, talvez dissesse:

os quatro conjuntos apresentam uma relação linear positiva moderada a forte entre $x$ e $y$.

Mas essa interpretação seria incompleta.


6. Como cada gráfico muda a interpretação?


Conjunto I: relação aproximadamente linear

O primeiro conjunto é o mais comportado. A nuvem de pontos segue uma tendência aproximadamente linear. Nesse caso, a reta de regressão é uma descrição razoável do padrão geral.

Interpretação:
Aqui, a correlação e a reta de regressão contam uma história compatível com o gráfico.

Conjunto II: relação curva

O segundo conjunto tem uma estrutura curvilínea. A correlação de Pearson ainda aparece alta, mas ela mede associação linear. Portanto, ela não descreve bem a curvatura dos dados.

Interpretação:
A relação entre $x$ e $y$ existe, mas não parece linear. Uma reta pode ser uma simplificação ruim.

Conjunto III: ponto discrepante com grande influência

O terceiro conjunto parece ter uma tendência linear, mas um ponto muito alto em $y$ influencia o ajuste da reta.

Interpretação:
Um único ponto pode afetar fortemente a correlação e a regressão. Por isso, é importante investigar pontos influentes.

Conjunto IV: ponto de alavancagem

O quarto conjunto possui quase todos os valores de $x$ iguais a 8. A reta é praticamente determinada por um único ponto distante em $x$.

Interpretação:
Mesmo com correlação alta, o gráfico mostra que a relação depende demais de uma observação com alta alavancagem.
Resumo interpretativo:
O Quarteto de Anscombe ensina que correlação e regressão devem ser interpretadas junto com gráficos de dispersão, e não como substitutas da visualização.

7. Correlação de Pearson: o que ela mede e o que ela não mede


A correlação de Pearson mede a força e a direção de uma associação linear entre duas variáveis quantitativas.

A fórmula é:

$$ r = \frac{\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i - \bar{x})^2}\sqrt{\sum_{i=1}^{n}(y_i - \bar{y})^2}} $$

Quando $r$ está próximo de 1, existe uma associação linear positiva forte. Quando $r$ está próximo de -1, existe uma associação linear negativa forte. Quando $r$ está próximo de 0, não há forte associação linear.

Mas isso não significa que não exista relação alguma.

O que a correlação capta bem?

Associações aproximadamente lineares.

Direção geral da relação entre duas variáveis.

O que a correlação pode esconder?

Curvaturas, agrupamentos, pontos influentes e relações não lineares.

Ela também não prova causalidade.

Erro comum:
Ver uma correlação alta e concluir imediatamente que a relação é linear, estável e causal. O gráfico precisa ser analisado antes dessa conclusão.

8. Regressão linear: por que a mesma reta pode enganar?


A regressão linear simples ajusta uma reta do tipo:

$$ \hat{y} = \hat{\beta}_0 + \hat{\beta}_1x $$

No Quarteto de Anscombe, os quatro conjuntos produzem aproximadamente a mesma reta:

\[\hat{y} \approx 3 + 0{,}5x\]

A inclinação $0{,}5$ sugere que, para cada aumento de uma unidade em $x$, o valor previsto de $y$ aumenta, em média, cerca de meia unidade.

Mas essa interpretação só é segura quando o modelo linear é uma descrição razoável dos dados.

Regra prática:
Antes de confiar em uma regressão linear, observe o gráfico de dispersão e os resíduos. A reta pode existir matematicamente, mas não representar bem a estrutura real dos dados.

9. Código em Julia com CairoMakie


O código abaixo monta os dados do Quarteto de Anscombe, calcula as estatísticas principais, ajusta a reta de regressão, constrói intervalos de confiança pontuais e gera uma figura 2 × 2 com CairoMakie.

Para instalar os pacotes necessários, execute no REPL do Julia:

using Pkg
Pkg.add(["CairoMakie", "Distributions"])

Agora, o script completo:

# ============================================================
#  Quarteto de Anscombe em Julia — CairoMakie
#  Equivalente ao script R do vídeo (ggplot2 + stat_cor)
#  Pacotes: Statistics (stdlib), CairoMakie, Distributions
# ============================================================
#
#  Para instalar as dependências, execute no REPL:
#    using Pkg
#    Pkg.add(["CairoMakie", "Distributions"])
#
# ============================================================

using Statistics
using Distributions   # quantil t de Student
using CairoMakie

# ----------------------------------------------------------
# 1. Dados — equivalente a datasets::anscombe do R
# ----------------------------------------------------------
anscombe = (
    x1 = [10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5],
    y1 = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68],

    x2 = [10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5],
    y2 = [9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74],

    x3 = [10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5],
    y3 = [7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73],

    x4 = [8, 8, 8, 8, 8, 8, 8, 19, 8, 8, 8],
    y4 = [6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 12.50, 5.56, 7.91, 6.89],
)

# ----------------------------------------------------------
# 2. Funções auxiliares
# ----------------------------------------------------------

"""Correlação de Pearson — equivalente a cor(..., method="pearson")"""
function pearson_r(x::AbstractVector, y::AbstractVector)
    mx, my = mean(x), mean(y)
    num = sum((x .- mx) .* (y .- my))
    den = sqrt(sum((x .- mx) .^ 2) * sum((y .- my) .^ 2))
    return num / den
end

"""Regressão linear simples — equivalente a lm(y ~ x)"""
function lin_reg(x::AbstractVector, y::AbstractVector)
    mx, my = mean(x), mean(y)
    slope     = sum((x .- mx) .* (y .- my)) / sum((x .- mx) .^ 2)
    intercept = my - slope * mx
    return slope, intercept
end

"""
Intervalo de confiança pontual da regressão — equivalente a geom_smooth(se=TRUE).

Retorna (y_hat, ci_lower, ci_upper) para cada ponto em x_new.
Fórmula:  ŷ ± t_{α/2, n-2} · σ̂ · √(1/n + (x_new - x̄)² / Σ(xᵢ - x̄)²)
"""
function reg_ci(x::AbstractVector, y::AbstractVector,
                x_new::AbstractVector; level::Float64 = 0.95)
    n          = length(x)
    slope, int = lin_reg(x, y)
    y_hat_obs  = slope .* x .+ int
    σ̂²         = sum((y .- y_hat_obs) .^ 2) / (n - 2)
    σ̂          = sqrt(σ̂²)
    mx         = mean(x)
    Sxx        = sum((x .- mx) .^ 2)
    t_crit     = quantile(TDist(n - 2), 1 - (1 - level) / 2)

    y_new  = slope .* x_new .+ int
    se_fit = σ̂ .* sqrt.(1/n .+ (x_new .- mx) .^ 2 ./ Sxx)
    return y_new, y_new .- t_crit .* se_fit, y_new .+ t_crit .* se_fit
end

"""Imprime estatísticas descritivas do par (x, y)"""
function print_stats(label::String, x::AbstractVector, y::AbstractVector)
    r          = pearson_r(x, y)
    slope, int = lin_reg(x, y)
    println("─── $label ───────────────────────────────")
    println("  mean(x)   = $(round(mean(x); digits=4))")
    println("  mean(y)   = $(round(mean(y); digits=4))")
    println("  var(x)    = $(round(var(x);  digits=4))")
    println("  var(y)    = $(round(var(y);  digits=4))")
    println("  r Pearson = $(round(r;       digits=4))")
    println("  y = $(round(slope; digits=4))x + $(round(int; digits=4))")
    println()
end

# ----------------------------------------------------------
# 3. Impressão das estatísticas
# ----------------------------------------------------------
println("\n=== Quarteto de Anscombe — Estatísticas Descritivas ===\n")

pares   = [(:x1,:y1), (:x2,:y2), (:x3,:y3), (:x4,:y4)]
titulos = ["Exemplo 1", "Exemplo 2", "Exemplo 3", "Exemplo 4"]

for (i, (xk, yk)) in enumerate(pares)
    x = getfield(anscombe, xk)
    y = getfield(anscombe, yk)
    print_stats(titulos[i], x, y)
end

# ----------------------------------------------------------
# 4. Gráficos com CairoMakie
# ----------------------------------------------------------

# Paleta de cores (uma por exemplo)
cores = [
    Makie.wong_colors()[1],   # azul
    Makie.wong_colors()[3],   # verde
    Makie.wong_colors()[2],   # laranja
    Makie.wong_colors()[6],   # roxo
]

# Figura com layout 2×2
fig = Figure(size = (860, 700), fontsize = 13)

Label(fig[0, 1:2],
    "Quarteto de Anscombe",
    fontsize = 16,
    font     = :bold,
    padding  = (0, 0, 4, 0),
)

positions = [(1,1), (1,2), (2,1), (2,2)]

for (i, (xk, yk)) in enumerate(pares)
    x = Float64.(getfield(anscombe, xk))
    y = Float64.(getfield(anscombe, yk))

    r              = pearson_r(x, y)
    slope, intcept = lin_reg(x, y)

    x_seq = collect(range(minimum(x) - 1, maximum(x) + 1; length = 200))
    y_seq, ci_lo, ci_hi = reg_ci(x, y, x_seq)

    row, col = positions[i]
    ax = Axis(fig[row, col];
        title       = "$(titulos[i])   r = $(round(r; digits=3))",
        titlesize   = 13,
        titlefont   = :bold,
        xlabel      = "x",
        ylabel      = "y",
        xgridcolor  = (:black, 0.08),
        ygridcolor  = (:black, 0.08),
        spinewidth  = 0.8,
    )

    # Sombreamento do IC 95% — equivalente a geom_smooth(se = TRUE)
    band!(ax, x_seq, ci_lo, ci_hi;
        color = (cores[i], 0.18),
    )

    # Linha de regressão — equivalente a geom_smooth(method = "lm")
    lines!(ax, x_seq, y_seq;
        color     = (:gray40, 0.85),
        linewidth = 1.8,
        linestyle = :dash,
    )

    # Pontos — equivalente a geom_point
    scatter!(ax, x, y;
        color        = (cores[i], 0.85),
        strokecolor  = :white,
        strokewidth  = 0.8,
        markersize   = 11,
    )

    # Anotação com r e p-valor (equivalente a stat_cor do ggpubr)
    # p-valor bilateral via distribuição t com n-2 graus de liberdade
    n    = length(x)
    t_stat = r * sqrt(n - 2) / sqrt(1 - r^2)
    pval   = 2 * (1 - cdf(TDist(n - 2), abs(t_stat)))
    pstr   = pval < 0.001 ? "p < 0.001" : "p = $(round(pval; digits=3))"

    text!(ax,
        minimum(x) - 0.2, maximum(y) + 0.1;
        text     = "r = $(round(r; digits=3)),  $pstr",
        fontsize = 11,
        color    = :gray30,
        align    = (:left, :bottom),
    )
end

# Ajuste de espaçamento entre subplots
colgap!(fig.layout, 18)
rowgap!(fig.layout, 14)

# ----------------------------------------------------------
# 5. Salvar a figura
# ----------------------------------------------------------
mkpath("assets/images")
save("assets/images/quarteto_anscombe_cairomakie.png", fig; px_per_unit = 2)   # resolução 2×
println("Figura salva em: assets/images/quarteto_anscombe_cairomakie.png")

# Para visualizar interativamente no REPL:
#   display(fig)

Saída esperada no terminal

=== Quarteto de Anscombe — Estatísticas Descritivas ===

─── Exemplo 1 ───────────────────────────────
  mean(x)   = 9.0
  mean(y)   = 7.5009
  var(x)    = 11.0
  var(y)    = 4.1273
  r Pearson = 0.8164
  y = 0.5001x + 3.0001

─── Exemplo 2 ───────────────────────────────
  mean(x)   = 9.0
  mean(y)   = 7.5009
  var(x)    = 11.0
  var(y)    = 4.1276
  r Pearson = 0.8162
  y = 0.5x + 3.0009

─── Exemplo 3 ───────────────────────────────
  mean(x)   = 9.0
  mean(y)   = 7.5
  var(x)    = 11.0
  var(y)    = 4.1226
  r Pearson = 0.8163
  y = 0.4997x + 3.0025

─── Exemplo 4 ───────────────────────────────
  mean(x)   = 9.0
  mean(y)   = 7.5009
  var(x)    = 11.0
  var(y)    = 4.1232
  r Pearson = 0.8165
  y = 0.4999x + 3.0017

Figura salva em: assets/images/quarteto_anscombe_cairomakie.png

O arquivo gerado pelo script será:

assets/images/quarteto_anscombe_cairomakie.png
Gráfico do Quarteto de Anscombe gerado com CairoMakie em Julia
Figura gerada pelo código em Julia com CairoMakie: os quatro conjuntos do Quarteto de Anscombe.

10. Como ler o gráfico gerado pelo código?


Quando a figura 2 × 2 é gerada, cada painel mostra:

Elemento visual Significado
Pontos Observações reais de cada conjunto
Linha tracejada Reta de regressão linear ajustada
Faixa sombreada Intervalo de confiança pontual da regressão
Anotação $r$ Correlação de Pearson calculada para o conjunto
Anotação do valor-p Teste bilateral para correlação linear diferente de zero

A parte mais interessante é comparar a linha tracejada com a nuvem de pontos.

No primeiro conjunto, a linha parece coerente.

No segundo, a linha ignora a curvatura.

No terceiro, a linha é afetada por um ponto atípico.

No quarto, a linha depende de um ponto com alta alavancagem.

Leitura estatística:
A regressão linear não deve ser avaliada apenas pelos coeficientes. Ela precisa ser avaliada visualmente e também por diagnósticos do modelo.

11. O que esse exemplo ensina para projetos reais?


O Quarteto de Anscombe é pequeno, mas a lição vale para bases de dados reais.

Em pesquisas, relatórios, dashboards, artigos e análises operacionais, é comum resumir tudo com médias, desvios padrão, correlações e coeficientes de regressão.

Essas medidas são úteis, mas não substituem a inspeção visual.

Antes de concluir

Faça gráficos de dispersão.

Observe padrões não lineares.

Procure pontos discrepantes.

Verifique agrupamentos.

Antes de modelar

Cheque se a relação parece linear.

Investigue observações influentes.

Analise resíduos.

Não trate correlação como causalidade.

Uma análise estatística madura geralmente alterna entre dois movimentos:

\[\text{resumir numericamente} \quad \longleftrightarrow \quad \text{visualizar graficamente}\]
Boa prática:
Use tabelas para resumir. Use gráficos para investigar. Use modelos para formalizar. Nenhuma dessas etapas substitui totalmente as outras.

12. Erros comuns ao interpretar o Quarteto de Anscombe


Erro 1: achar que correlação alta significa relação linear bem comportada

A correlação de Pearson mede associação linear, mas pode ser alta em situações onde há curvatura, ponto influente ou estrutura artificial nos dados.


Erro 2: confiar na reta sem olhar os pontos

Uma reta de regressão sempre pode ser ajustada quando há variação em $x$, mas isso não significa que ela seja uma boa descrição da relação.


Erro 3: ignorar pontos influentes

Um único ponto pode alterar muito a inclinação, o intercepto e a correlação.


Erro 4: usar apenas tabelas em relatórios analíticos

Tabelas são úteis, mas podem esconder padrões que aparecem imediatamente em gráficos.

Resumo do alerta:
Quando uma análise depende de relações entre variáveis, gráficos de dispersão não são opcionais. Eles são parte do diagnóstico estatístico.

13. Conclusão


O Quarteto de Anscombe é um exemplo clássico porque desmonta uma ilusão comum: a ideia de que bons resumos numéricos bastam para entender os dados.

Os quatro conjuntos têm médias, variâncias, correlações e retas de regressão praticamente iguais.

Ainda assim, cada gráfico revela uma história diferente.

Isso mostra que a Estatística não deve ser feita apenas com fórmulas ou tabelas. Ela também precisa de visualização, contexto e julgamento crítico.

Resumo em uma frase:
O Quarteto de Anscombe mostra que estatísticas resumidas podem parecer iguais, mesmo quando a estrutura real dos dados é completamente diferente.

Referências


As explicações deste post foram organizadas a partir do artigo original de Anscombe, de materiais sobre visualização estatística e da documentação oficial dos pacotes Julia usados no código.

  • Anscombe, F. J. — Graphs in Statistical Analysis. The American Statistician, 27(1), 17–21, 1973. DOI: 10.1080/00031305.1973.10478966.
    https://www.tandfonline.com/doi/abs/10.1080/00031305.1973.10478966

  • JSTOR — Registro do artigo Graphs in Statistical Analysis, com DOI 10.2307/2682899.
    https://www.jstor.org/stable/i326377

  • Matejka, J.; Fitzmaurice, G. — Same Stats, Different Graphs: Generating Datasets with Varied Appearance and Identical Statistics through Simulated Annealing. CHI 2017.
    https://dl.acm.org/doi/10.1145/3025453.3025912

  • Autodesk Research — Same Stats, Different Graphs.
    https://www.research.autodesk.com/publications/same-stats-different-graphs/

  • Julia — Statistics Standard Library: documentação oficial de funções como mean, var, std e outras funções estatísticas básicas.
    https://docs.julialang.org/en/v1/stdlib/Statistics/

  • Makie.jl — CairoMakie: documentação oficial do backend usado para gerar gráficos estáticos em Julia.
    https://docs.makie.org/stable/documentation/backends/cairomakie/

  • Distributions.jl — documentação oficial do pacote usado no código para trabalhar com distribuições, incluindo a distribuição t de Student.
    https://juliastats.org/Distributions.jl/


Compartilhe este artigo

Escrito em 30/05/2026

Comentários

MorrisonKühlsen

Estatística descomplicada.

Artigos, fórmulas e tabelas
para estudantes e
profissionais.

morrisonkuhlsen.com