Ajustarea unei regresii liniare

Introducere în regresia cu statsmodels în Python

Maarten Van den Broeck

Content Developer at DataCamp

O linie dreaptă este definită de două elemente

Interceptare

Valoarea $y$ când $x$ este zero.

Pantă

Cantitatea cu care crește $y$ dacă $x$ crește cu o unitate.

Ecuație

$y = \text{interceptare} + \text{pantă} * x$

Introducere în regresia cu statsmodels în Python

Estimarea interceptării

Diagramă de dispersie a plății totale față de numărul de daune, cu o linie de tendință liniară. Plata crește liniar odată cu numărul de daune.

Introducere în regresia cu statsmodels în Python

Estimarea interceptării

Diagrama de dispersie a plății totale față de numărul de daune, adnotată cu punctul în care linia de tendință intersectează axa y.

Introducere în regresia cu statsmodels în Python

Estimarea interceptării

Diagrama de dispersie a plății totale față de numărul de daune, adnotată cu valoarea când numărul de daune este zero.

Introducere în regresia cu statsmodels în Python

Estimarea pantei

Diagrama de dispersie a plății totale față de numărul de daune, adnotată cu două puncte pe linia de tendință. Un punct este la 1500 coroane și 40 daune; altul la 3500 coroane și 100 daune.

Introducere în regresia cu statsmodels în Python

Estimarea pantei

Diagrama de dispersie a plății totale față de numărul de daune, adnotată cu diferența de plată dintre cele două puncte. 3500 coroane minus 1500 coroane este 2000 coroane.

Introducere în regresia cu statsmodels în Python

Estimarea pantei

Diagrama de dispersie a plății totale față de numărul de daune, adnotată cu diferența în numărul de daune dintre cele două puncte. 100 daune minus 40 daune este 60 daune.

Introducere în regresia cu statsmodels în Python

Estimarea pantei

Diagrama de dispersie a plății totale față de numărul de daune, adnotată cu raportul dintre diferența de plată și diferența în numărul de daune. 2000 împărțit la 60 este aproximativ 33.

Introducere în regresia cu statsmodels în Python

Rularea unui model

from statsmodels.formula.api import ols

mdl_payment_vs_claims = ols("total_payment_sek ~ n_claims", data=swedish_motor_insurance)
mdl_payment_vs_claims = mdl_payment_vs_claims.fit()
print(mdl_payment_vs_claims.params)
Intercept    19.994486
n_claims      3.413824
dtype: float64
Introducere în regresia cu statsmodels în Python

Interpretarea coeficienților modelului

Intercept    19.994486
n_claims      3.413824
dtype: float64

Ecuație

$\text{total_payment_sek} = 19.99 + 3.41 * \text{n_claims}$

Introducere în regresia cu statsmodels în Python

Să exersăm!

Introducere în regresia cu statsmodels în Python

Preparing Video For Download...