Tutorial Completo de Estatística com Python
Neste artigo, vamos explorar os principais tópicos de um livro de estatística básico, ilustrados com exemplos práticos utilizando Python. Usaremos bibliotecas como NumPy, pandas, SciPy e matplotlib para realizar operações estatísticas e visualizações de dados.
1. Introdução à Estatística e Python
A estatística é a ciência que envolve a coleta, organização, análise e interpretação de dados. Em Python, temos várias bibliotecas que facilitam a implementação de métodos estatísticos.
Para começar, instale as bibliotecas necessárias:
pip install numpy pandas scipy matplotlib seaborn
2. Medidas Descritivas
2.1 Média
A média aritmética é uma das medidas mais comuns de tendência central. Em Python, podemos calcular a média de um conjunto de dados com numpy.
Exemplo:
import numpy as np
dados = [10, 20, 30, 40, 50]
media = np.mean(dados)
print(f"Média: {media}")
2.2 Mediana
A mediana é o valor central em um conjunto de dados ordenados.
Exemplo:
mediana = np.median(dados)
print(f"Mediana: {mediana}")
2.3 Moda
A moda é o valor que mais aparece em um conjunto de dados. Usamos scipy para calcular a moda.
Exemplo:
from scipy import stats
moda = stats.mode(dados)
print(f"Moda: {moda.mode[0]}")
3. Medidas de Dispersão
3.1 Variância
A variância mede a dispersão dos dados em relação à média.
Exemplo:
variancia = np.var(dados)
print(f"Variância: {variancia}")
3.2 Desvio Padrão
O desvio padrão é a raiz quadrada da variância e mostra o quanto os dados estão dispersos da média.
Exemplo:
desvio_padrao = np.std(dados)
print(f"Desvio Padrão: {desvio_padrao}")
4. Distribuições de Probabilidade
4.1 Distribuição Normal
A distribuição normal é a mais comum e tem a forma de um “sino”. Vamos gerar e visualizar uma distribuição normal com Python.
Exemplo:
import matplotlib.pyplot as plt
dados_normal = np.random.normal(loc=0, scale=1, size=1000)
plt.hist(dados_normal, bins=30, density=True)
plt.title("Distribuição Normal")
plt.show()
4.2 Distribuição Binomial
A distribuição binomial descreve o número de sucessos em uma sequência de tentativas independentes de um experimento.
Exemplo:
dados_binomial = np.random.binomial(n=10, p=0.5, size=1000)
plt.hist(dados_binomial, bins=30, density=True)
plt.title("Distribuição Binomial")
plt.show()
5. Inferência Estatística
5.1 Teste t de Student
O teste t é usado para comparar as médias de dois grupos.
Exemplo:
grupo1 = np.random.normal(loc=5, scale=1, size=100)
grupo2 = np.random.normal(loc=5.5, scale=1, size=100)
t_stat, p_value = stats.ttest_ind(grupo1, grupo2)
print(f"Estatística t: {t_stat}, Valor p: {p_value}")
5.2 Intervalo de Confiança
O intervalo de confiança estima o intervalo dentro do qual o verdadeiro parâmetro populacional se encontra.
Exemplo:
import statsmodels.api as sm
ic = sm.stats.DescrStatsW(grupo1).tconfint_mean()
print(f"Intervalo de confiança: {ic}")
6. Regressão Linear
A regressão linear é uma técnica usada para prever o valor de uma variável com base em outra.
Exemplo:
from sklearn.linear_model import LinearRegression
# Dados de exemplo
x = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y = np.array([2, 4, 5, 4, 5])
# Criar e ajustar o modelo
modelo = LinearRegression()
modelo.fit(x, y)
# Fazer previsões
y_pred = modelo.predict(x)
# Plotar a linha de regressão
plt.scatter(x, y, color='blue')
plt.plot(x, y_pred, color='red')
plt.title("Regressão Linear Simples")
plt.show()
7. Visualização de Dados
A visualização de dados é crucial para entender padrões e tendências.
7.1 Gráficos de Dispersão
Exemplo:
plt.scatter(x, y)
plt.title("Gráfico de Dispersão")
plt.show()
7.2 Gráficos de Barras
Exemplo:
categorias = ['A', 'B', 'C', 'D']
valores = [3, 7, 2, 5]
plt.bar(categorias, valores)
plt.title("Gráfico de Barras")
plt.show()
8. Correlação
A correlação mede a relação entre duas variáveis.
Exemplo:
correlacao = np.corrcoef(x.ravel(), y)
print(f"Correlação: {correlacao[0, 1]}")
9. Análise de Variância (ANOVA)
A ANOVA é usada para comparar as médias de três ou mais grupos.
Exemplo:
grupo_a = np.random.normal(5, 1, 100)
grupo_b = np.random.normal(6, 1, 100)
grupo_c = np.random.normal(7, 1, 100)
anova_result = stats.f_oneway(grupo_a, grupo_b, grupo_c)
print(f"Estatística F: {anova_result.statistic}, Valor p: {anova_result.pvalue}")
Conclusão
Neste tutorial, cobrimos os principais tópicos de estatística básica utilizando Python, desde medidas descritivas até a inferência estatística e regressão. Essas ferramentas são essenciais para a análise de dados e podem ser aplicadas em diversas áreas.
Saiba Mais
Vídeos Úteis
- Python Statistics for Beginners (45 minutos)
- Complete Statistics in Python (1 hora)

Leave a comment