Comece agoraComece grátis

Mínimos quadrados com `statsmodels`

Várias bibliotecas em Python oferecem interfaces abstratas e práticas, para que você não precise lidar sempre de forma tão explícita com a parte mecânica da otimização do modelo.

Como exemplo, neste exercício, você vai usar a biblioteca statsmodels em um fluxo de trabalho mais de alto nível e generalizado para construir um modelo usando otimização por mínimos quadrados (minimização do RSS).

Para ajudar você a começar, nós já carregamos os dados com x_data, y_data = load_data() e armazenamos tudo em um pandas DataFrame com os nomes de colunas x_column e y_column usando df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))

Este exercicio faz parte do curso

Introdução à Modelagem Linear em Python

Ver curso

Instruções do exercicio

  • Construa um modelo com ols() usando a fórmula formula="y_column ~ x_column" e os dados data=df, e depois chame .fit() para ajustá-lo aos dados.
  • Use model_fit.predict() para obter os valores y_model.
  • Usando a função fornecida plot_data_with_model(), sobreponha os y_data com y_model.
  • Extraia os valores dos parâmetros do modelo a0 e a1 a partir de model_fit.params.
  • Use compute_rss_and_plot_fit() para confirmar que esses resultados são consistentes com as fórmulas analíticas implementadas com numpy.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# Pass data and `formula` into ols(), use and `.fit()` the model to the data
model_fit = ols(____="y_column ~ x_column", ____=df).____()

# Use .predict(df) to get y_model values, then over-plot y_data with y_model
y_model = model_fit.____(df)
fig = plot_data_with_model(x_data, ____, ____)

# Extract the a0, a1 values from model_fit.params
a0 = model_fit.____['Intercept']
a1 = model_fit.____['x_column']

# Visually verify that these parameters a0, a1 give the minimum RSS
fig, rss = compute_rss_and_plot_fit(a0, a1)
Editar e Executar Código