Ajustando uma regressão linear

Introdução à Regressão com statsmodels em Python

Maarten Van den Broeck

Content Developer at DataCamp

Retas são definidas por duas coisas

Intercepto

O valor de $y$ quando $x$ é zero.

Inclinação

Quanto $y$ aumenta ao aumentar $x$ em um.

Equação

$y = \text{intercepto} + \text{inclinação} * x$

Introdução à Regressão com statsmodels em Python

Estimando o intercepto

Dispersão de pagamento total vs. número de sinistros com linha de tendência linear. O pagamento aumenta linearmente conforme os sinistros aumentam.

Introdução à Regressão com statsmodels em Python

Estimando o intercepto

Dispersão de pagamento total vs. número de sinistros, com o ponto onde a linha de tendência cruza o eixo y.

Introdução à Regressão com statsmodels em Python

Estimando o intercepto

Dispersão de pagamento total vs. número de sinistros, anotada com o valor quando o número de sinistros é zero.

Introdução à Regressão com statsmodels em Python

Estimando a inclinação

Dispersão de pagamento total vs. número de sinistros, com dois pontos na linha de tendência. Um ponto em 1500 coroas e 40 sinistros; outro em 3500 coroas e 100 sinistros.

Introdução à Regressão com statsmodels em Python

Estimando a inclinação

Dispersão de pagamento total vs. número de sinistros, com a diferença entre os dois pontos anotada. 3500 coroas menos 1500 coroas é 2000 coroas.

Introdução à Regressão com statsmodels em Python

Estimando a inclinação

Dispersão de pagamento total vs. número de sinistros, com a diferença no número de sinistros entre os dois pontos. 100 sinistros menos 40 sinistros é 60.

Introdução à Regressão com statsmodels em Python

Estimando a inclinação

Dispersão de pagamento total vs. número de sinistros, com a razão entre a diferença no pagamento e a diferença em número de sinistros anotada. 2000 dividido por 60 dá cerca de 33.

Introdução à Regressão com statsmodels em Python

Executando um modelo

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
Introdução à Regressão com statsmodels em Python

Interpretando os coeficientes do modelo

Intercept    19.994486
n_claims      3.413824
dtype: float64

Equação

$\text{total\_payment\_sek} = 19{,}99 + 3{,}41 * \text{n\_claims}$

Introdução à Regressão com statsmodels em Python

Vamos praticar!

Introdução à Regressão com statsmodels em Python

Preparing Video For Download...