Kom igångKom igång gratis

Minsta kvadratmetoden med `statsmodels`

Flera Python-bibliotek erbjuder bekväma abstraktioner så att du inte alltid behöver hantera optimeringsmekaniken explicit.

I den här övningen använder du biblioteket statsmodels i ett mer övergripande och generaliserat arbetsflöde för att bygga en modell med minsta kvadratmetoden (minimering av RSS).

För att hjälpa dig komma igång har vi förladdat data med x_data, y_data = load_data() och sparat det i en pandas DataFrame med kolumnnamnen x_column och y_column via df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))

Den här övningen är en del av kursen

Introduktion till linjär modellering i Python

Visa kurs

Övningsinstruktioner

  • Konstruera en modell med ols() och formel formula="y_column ~ x_column" och data data=df, och anpassa den sedan till data med .fit().
  • Använd model_fit.predict() för att beräkna y_model-värden.
  • Använd den tillhandahållna funktionen plot_data_with_model() för att plotta y_data tillsammans med y_model.
  • Extrahera modellparametrarna a0 och a1 från model_fit.params.
  • Använd compute_rss_and_plot_fit() för att bekräfta att resultaten stämmer överens med de analytiska formlerna implementerade med numpy.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod