Anpassa en linjär regression

Introduktion till regression med statsmodels i Python

Maarten Van den Broeck

Content Developer at DataCamp

En rät linje definieras av två saker

Skärningspunkt

Värdet på $y$ när $x$ är noll.

Lutning

Hur mycket $y$ ökar när $x$ ökar med ett.

Ekvation

$y = \text{intercept} + \text{slope} * x$

Introduktion till regression med statsmodels i Python

Skatta skärningspunkten

Ett spridningsdiagram över total utbetalning mot antal skador med en linjär trendlinje. Utbetalningen ökar linjärt med antalet skador.

Introduktion till regression med statsmodels i Python

Skatta skärningspunkten

Spridningsdiagrammet över total utbetalning mot antal skador, med markering där trendlinjen skär y-axeln.

Introduktion till regression med statsmodels i Python

Skatta skärningspunkten

Spridningsdiagrammet över total utbetalning mot antal skador, med markering av värdet när antalet skador är noll.

Introduktion till regression med statsmodels i Python

Skatta lutningen

Spridningsdiagrammet över total utbetalning mot antal skador, med två markerade punkter på trendlinjen. En punkt vid 1 500 kronor och 40 skador, en annan vid 3 500 kronor och 100 skador.

Introduktion till regression med statsmodels i Python

Skatta lutningen

Spridningsdiagrammet över total utbetalning mot antal skador, med markering av skillnaden i utbetalning mellan de två punkterna. 3 500 kronor minus 1 500 kronor är 2 000 kronor.

Introduktion till regression med statsmodels i Python

Skatta lutningen

Spridningsdiagrammet över total utbetalning mot antal skador, med markering av skillnaden i antal skador mellan de två punkterna. 100 skador minus 40 skador är 60 skador.

Introduktion till regression med statsmodels i Python

Skatta lutningen

Spridningsdiagrammet över total utbetalning mot antal skador, med kvoten av skillnaden i utbetalning och skillnaden i antal skador. 2 000 dividerat med 60 är ungefär 33.

Introduktion till regression med statsmodels i Python

Köra en modell

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
Introduktion till regression med statsmodels i Python

Tolka modellkoefficienterna

Intercept    19.994486
n_claims      3.413824
dtype: float64

Ekvation

$\text{total\_payment\_sek} = 19.99 + 3.41 * \text{n\_claims}$

Introduktion till regression med statsmodels i Python

Nu kör vi en övning!

Introduktion till regression med statsmodels i Python

Preparing Video For Download...