Statsmodels: análise estatística em Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução ao Statsmodels

Statsmodels é uma biblioteca Python poderosa, projetada para realizar análises estatísticas de dados. Ela oferece ferramentas para construir modelos de regressão, estimar parâmetros, testar hipóteses estatísticas e analisar séries temporais. O Statsmodels é amplamente utilizado em econometria, bioestatística e ciências sociais, fornecendo uma interpretação estatística aprofundada dos resultados.

Principais recursos da biblioteca Statsmodels

Análise de regressão

O Statsmodels oferece recursos abrangentes para análise de regressão, incluindo Mínimos Quadrados Ordinários (OLS), Modelos Lineares Generalizados (GLM), regressão robusta e modelos de dados em painel. A biblioteca suporta métodos de estimativa paramétricos e não paramétricos.

Análise de séries temporais

O módulo de séries temporais inclui modelos ARIMA, SARIMA, suavização exponencial, autorregressão vetorial (VAR) e muitos outros. Funções para testar estacionariedade, decompor séries e fazer previsões estão disponíveis.

Teste de hipóteses estatísticas

A biblioteca contém um amplo conjunto de testes estatísticos: testes t, testes F, testes de normalidade, testes de igualdade de variâncias, testes de autocorrelação e muitos outros.

Análise de variância

Modelos ANOVA de um e múltiplos fatores, ANCOVA, medidas repetidas e efeitos mistos são suportados.

Métodos não paramétricos

Inclui métodos de estimativa de densidade por kernel, regressão não paramétrica e testes baseados em postos.

Instalação e importação do Statsmodels

Instalação da biblioteca

A instalação da biblioteca é feita com o comando padrão:

pip install statsmodels

Para obter funcionalidades adicionais, você pode instalar com todas as dependências:

pip install statsmodels[complete]

Importação dos componentes necessários

import statsmodels.api as sm
import statsmodels.formula.api as smf
import statsmodels.tsa.api as tsa
import statsmodels.stats.api as sms

Estrutura da biblioteca e módulos principais

Principais interfaces de API

statsmodels.api — interface clássica com especificação direta de matrizes de dados

statsmodels.formula.api — interface baseada em fórmulas, semelhante ao R

statsmodels.tsa — módulo para análise de séries temporais

statsmodels.stats — testes estatísticos e diagnóstico

statsmodels.graphics — visualização de resultados

Trabalhando com dados e preparação

O Statsmodels funciona de forma otimizada com pandas.DataFrame:

import pandas as pd
import numpy as np

# Carregar dados
data = pd.read_csv("dataset.csv")

# Verificar valores ausentes
print(data.isnull().sum())

# Estatísticas básicas
print(data.describe())

Regressão Linear (OLS)

Interface clássica

import statsmodels.api as sm

# Preparação dos dados
X = data[["x1", "x2", "x3"]]
X = sm.add_constant(X)  # adicionar constante
y = data["y"]

# Construção do modelo
model = sm.OLS(y, X).fit()
print(model.summary())

# Extração dos coeficientes
print("Coeficientes:", model.params)
print("Valores-p:", model.pvalues)
print("R-quadrado:", model.rsquared)

Interface de fórmulas

import statsmodels.formula.api as smf

# Usando fórmulas
model = smf.ols("y ~ x1 + x2 + x3", data=data).fit()
print(model.summary())

# Interação entre variáveis
model_interaction = smf.ols("y ~ x1 * x2 + x3", data=data).fit()

# Variáveis categóricas
model_cat = smf.ols("y ~ C(category) + x1", data=data).fit()

Modelos Lineares Generalizados (GLM)

Recommendations