Multiple lineal regression (II) Improving the model
En este post empezamos a trabajar con linear regression, en esta segunda parte vamos a trabajar para mejorar la performance de nuestro modelo, principalmente agregando relaciones entre variables.
Mejorando el modelo
Vamos a agregar tres nuevas relaciones a traves de la creacion de tres nuevas variables en nuestro dataset:
- Cambio de la variable edad de una funcion lineal a una funcion cuadratica
- Crear un nuevo indicador para obesidad, esto es BMI > 30
- Sumar una nueva variable para aquellos casos que fuman y ademas tienen un BMI > 30
Todo esto, esperamos nos permita reflejar con mayor claridad como es nuestro modelo y las relaciones en el mismo de forma de poder predecir mayor cantidad de casos.
Conclusiones
Realizando nuevamente un analisis de la performance de este modelo encontramos que:
- El error maximo en este caso es 24.192 (vs. 29.981), lo cual representa una mejora del 20%
- En terminos generales Adjusted R-squared: 0.8668 (vs. 0.7509) del modelo anterior lo cual representa otra mejora:
nuestro modelo es capaz de explicar 87 de cada 100 casos. - Que paso con las nuevas variables que se crearon, bueno bien, eso es algo sumamente interesante: este nuevo modelo nos permite predecir que una persona que fume va a tener un gasto 13.421 mayor a una persona que no fume; y una persona que tenga un bmi > 30 y ademas fume va a tener un gasto 19.912 mayor a quienes no cumplan estas condiciones.
Implementacion tecnica
Mejoras
## Step 5: Improving the model
insurance$age2 <- insurance$age^2
insurance$bmi30 <- ifelse(insurance$bmi > 30, 1,0)
##bmi30*smokeryes is equal to bmi30 + smokeryes + bmi30*smokeryes
ins_model2 <- lm(charges ~ age + age2 + children + bmi + sex + bmi30*smoker +
region, data = insurance)
Analisis del modelo mejorado
## Step 6: Evaluation of the improved model
summary(ins_model2)
# Call:
# lm(formula = charges ~ age + age2 + children + bmi + sex + bmi30 *
# smoker + region, data = insurance)
#
# Residuals:
# Min 1Q Median 3Q Max
# -4260.3 -1644.6 -1272.7 -784.7 24192.7
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 69.2494 1353.2349 0.051 0.959195
# age -21.6786 59.4956 -0.364 0.715638
# age2 3.5978 0.7422 4.847 1.40e-06 ***
# children 661.5105 105.2784 6.283 4.48e-10 ***
# bmi 114.2920 34.0816 3.353 0.000821 ***
# sexmale -475.6760 242.9293 -1.958 0.050430 .
# bmi30 -938.5116 420.5807 -2.231 0.025817 *
# smokeryes 13421.6370 435.9158 30.790 < 2e-16 ***
# regionnorthwest -275.6659 347.2730 -0.794 0.427453
# regionsoutheast -826.1187 349.6181 -2.363 0.018275 *
# regionsouthwest -1164.8152 348.5123 -3.342 0.000854 ***
# bmi30:smokeryes 19912.6072 600.8493 33.141 < 2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 4419 on 1326 degrees of freedom
# Multiple R-squared: 0.8679, Adjusted R-squared: 0.8668
# F-statistic: 792.1 on 11 and 1326 DF, p-value: < 2.2e-16