Ajustar una regresión lineal

Introducción a la regresión con statsmodels en Python

Maarten Van den Broeck

Content Developer at DataCamp

Las rectas se definen por dos cosas

Intercepto

El valor de $y$ cuando $x$ es cero.

Pendiente

Cuánto aumenta $y$ si aumentas $x$ en uno.

Ecuación

$y = \text{intercepto} + \text{pendiente} * x$

Introducción a la regresión con statsmodels en Python

Estimar el intercepto

Diagrama de dispersión de pago total frente a número de siniestros con línea de tendencia lineal. El pago aumenta linealmente al crecer los siniestros.

Introducción a la regresión con statsmodels en Python

Estimar el intercepto

Diagrama de dispersión de pago total frente a número de siniestros, con el punto donde la línea de tendencia cruza el eje y.

Introducción a la regresión con statsmodels en Python

Estimar el intercepto

Diagrama de dispersión de pago total frente a número de siniestros, con el valor cuando el número de siniestros es cero.

Introducción a la regresión con statsmodels en Python

Estimar la pendiente

Diagrama de dispersión de pago total frente a número de siniestros, con dos puntos en la línea de tendencia: uno en 1500 coronas y 40 siniestros; otro en 3500 coronas y 100 siniestros.

Introducción a la regresión con statsmodels en Python

Estimar la pendiente

Diagrama de dispersión de pago total frente a número de siniestros, con la diferencia de pago entre dos puntos: 3500 coronas menos 1500 coronas son 2000 coronas.

Introducción a la regresión con statsmodels en Python

Estimar la pendiente

Diagrama de dispersión de pago total frente a número de siniestros, con la diferencia en número de siniestros entre dos puntos: 100 menos 40 son 60.

Introducción a la regresión con statsmodels en Python

Estimar la pendiente

Diagrama de dispersión de pago total frente a número de siniestros, con el cociente entre la diferencia de pago y la diferencia en siniestros: 2000 dividido por 60 es ~33.

Introducción a la regresión con statsmodels en Python

Ejecutar un 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
Introducción a la regresión con statsmodels en Python

Interpretar los coeficientes del modelo

Intercept    19.994486
n_claims      3.413824
dtype: float64

Ecuación

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

Introducción a la regresión con statsmodels en Python

¡Vamos a practicar!

Introducción a la regresión con statsmodels en Python

Preparing Video For Download...