Cele mai mici pătrate cu `statsmodels`
Mai multe biblioteci Python oferă interfețe abstracte convenabile, astfel încât nu trebuie să gestionezi întotdeauna explicit mecanismele de optimizare a modelului.
Ca exemplu, în acest exercițiu vei folosi biblioteca statsmodels într-un flux de lucru mai general și de nivel înalt pentru construirea unui model prin optimizarea celor mai mici pătrate (minimizarea RSS).
Pentru a te ajuta să începi, am pre-încărcat datele din x_data, y_data = load_data() și le-am stocat într-un DataFrame pandas cu coloanele x_column și y_column, folosind df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))
Acest exercițiu face parte din cursul
Introducere în modelarea liniară în Python
Instrucțiuni pentru exercițiu
- Construiește un model
ols()cu formulaformula="y_column ~ x_column"și dateledata=df, apoi aplică.fit()pentru a-l ajusta pe date. - Folosește
model_fit.predict()pentru a obține valoriley_model. - Folosind funcția
plot_data_with_model()furnizată, suprapuney_datacuy_model. - Extrage valorile parametrilor modelului
a0șia1dinmodel_fit.params. - Folosește
compute_rss_and_plot_fit()pentru a confirma că aceste rezultate sunt consistente cu formulele analitice implementate cunumpy.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)