Você já analisou um conjunto de dados e se perguntou: "Qual o tamanho de amostra suficiente para eu confiar na minha média?"
Para responder a isso, peguei o famoso dataset de idades Titanic Passenger Dataset de passageiros e fiz um experimento simples em Python. O resultado prova o poder de um dos pilares mais importantes da estatística: O Teorema do Limite Central (TLC).
O Caos do Dado Original
Olhando para a distribuição original de idades de todos os passageiros, os dados não formam uma curva perfeita. Há picos em crianças, uma grande concentração de jovens e uma queda brusca para idosos.
Se pegássemos apenas 1 pessoa ao acaso, a chance de pegar um valor extremo (como um bebê de 1 ano ou um idoso de 80) seria considerável.
💡 Nota rápida: Neste meu teste usando o dataset do Titanic, a média das idades
df['age'].mean()é de aproximadamente 35,7 anos!
O que é o Teorema do Limite Central (TLC)?
Se a estatística tivesse uma "fórmula mágica", ela seria o Teorema do Limite Central.
Em termos simples, o TLC afirma que:
Não importa qual seja a forma dos seus dados originais (tortos, assimétricos ou bimodais), se você tirar várias amostras e calcular a média de cada uma, a distribuição dessas médias SEMPRE seguirá uma Curva Normal (formato de sino).
O Experimento: Amostragens Repetidas
Criei uma função em Python para simular um cenário real: coletar X amostras aleatórias de tamanho N, calcular a média de cada uma e plotar os resultados num histograma.
Veja o que acontece com a distribuição das médias à medida que aumentamos o tamanho de cada amostra. O formato de sino vai existir em ambos! A diferença real que o TLC promove com o aumento da amostra não é a "formação" do sino, mas a LARGURA do sino:
- Em n = 1: O sino é largo e achatado. As médias flutuam bastante (ex: de 0 a 60 anos).
- Em n = 10: O sino é estreito e pontudo. As médias ficam presas em um intervalo minúsculo ( ex: de 20 a 40 anos).
2 Lições Práticas para seu dia a dia em Dados
A forma original não importa: Não importa o quão "tortos" ou assimétricos sejam seus dados originais — a distribuição das médias amostrais sempre tenderá a uma Normal se a amostra for grande o suficiente.
Mais dados = Menos ruído: Amostras maiores reduzem o Erro Padrão. Se você toma decisões de negócio com base em amostras minúsculas, está apenas reagindo ao acaso.
💬 E você? Já viu alguma decisão de produto ou negócio ser tomada com base em uma amostra pequena demais? Conta aqui nos comentários!
💻 O Código em Python (Simples e Direto)
import seaborn as sns
import matplotlib.pyplot as plt
# Carrega os dados
idades = df['Age'].dropna()
idades = idades[(idades % 1 == 0)]
def tlc(tamanho_da_amostra, quantidade_de_amostras):
media = [idades.sample(tamanho_da_amostra, replace=True).mean() for _ in range(int(quantidade_de_amostras))]
return media
# Plotando os gráficos comparativos
fig, axes = plt.subplots(1, 2, figsize=(10, 4),sharex=True, sharey=True)
# Grafico 1
medias_idades_amostrais = tlc(1, 1000)
p = sns.histplot(data=medias_idades_amostrais, ax=axes[0], bins=50, kde=True)
y_max = max([patch.get_height() for patch in p.patches])
axes[0].set_title(f'Tamanho da Amostra (n = 1)')
axes[0].set_xlabel('Média das Idades')
axes[0].set_ylabel('Frequência')
axes[0].vlines(np.mean(medias_idades_amostrais), 0, y_max * 1.1, linestyles='dashed', colors='red')
# Grafico 1
medias_idades_amostrais = tlc(10, 1000)
p = sns.histplot(data=medias_idades_amostrais, ax=axes[1], bins=50, kde=True)
y_max = max([patch.get_height() for patch in p.patches])
axes[1].set_title(f'Tamanho da Amostra (n = 10)')
axes[1].set_xlabel('Média das Idades')
axes[1].set_ylabel('Frequência')
axes[1].vlines(np.mean(medias_idades_amostrais), 0, y_max * 1.1, linestyles='dashed', colors='red')
plt.tight_layout()
plt.show()


Top comments (0)