Las Matemáticas del Machine Learning: Ejemplos Regresión Lineal (IV y último). Implementación en lenguaje R.

Fran Ramírez    24 julio, 2019
Lineal

Para finalizar la primera parte de nuestra serie de matemáticas en Machine Learning centrada en la Regresión Lineal, vamos a implementar el ejemplo que hemos utilizado en esta serie de artículos. Para ello implementaremos una solución en lenguaje de programación R. Antes de continuar recomendamos repasar los artículos anteriores sobre Regresión Lineal y el ejemplo utilizado:

Descriptiva númerica y gráfica

Estudiaremos la matriz de correlaciones y un diagrama dispersión múltiple de las 3 variables númericas:

dades = read_xlsx("Jandi.xlsx")
kable(round(cor(dades),3))
plot(dades,pch=16)

Se puede observar que la variable Recuento tiene una relación lineal positiva con Temperatura y Humedad (r=0.697, r= 0.86, respectivamente). Entre Temperatura y Humedad hay relación lineal positiva pero más débil (r=0.356).

Modelo de regresión lineal múltiple

my_model = lm(Recuento ~ Temperatura + Humedad,data=dades)
summary(my_model)
## Call:
## lm(formula = Recuento ~ Temperatura + Humedad, data = dades)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.8617 -2.0406 0.4319 2.9881 8.5047
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|
## (Intercept) 25.7115 14.3725 1.789 0.098876 .
## Temperatura 1.5818 0.3203 4.939 0.000343 ***
## Humedad 1.5424 0.1995 7.731 5.32e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.351 on 12 degrees of freedom
## Multiple R-squared: 0.914, Adjusted R-squared: 0.8996
## F-statistic: 63.75 on 2 and 12 DF, p-value: 4.051e-07

Se observa que:

Con estos resultados se puede interpretar que cuando la temperatura y la humedad son 0, el recuento estimado por el modelo es 25.7. También podemos observar que por cada unidad de Temperatura y Humedad, el modelo estima que el recuento aumenta 1.58 y 1.54 unidades respectivamente.

Respecto a los contrastes:

obtenemos los p-valores 0.098, 0.0003 y 5 * 10−6 respectivamente. Por lo tanto podemos deducir que:

Respecto al contraste H0 : No existe relación lineal vs H1 : Si existe relación lineal, obtenemos un estadístico de contraste de F = 63.75 con 2 y 12 grados en el numerador y denominador. Obteniendo un p-valor de 4 * 10−7 dando evidencia a rechazar la hipótesis nula.

Respecto al coeficiente de determinación, nos fijamos en el R2 ajustado, pues es una regresión lineal múltiple, obteniendo un valor de 0.89. Este valor indica que el modelo de regresión se ajusta muy bien a los datos, dado a que el valor final es cercano a 1.

Comprobación de los supuestos de Normalidad y homocedasticidad en los residuos

opar <- par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0))
plot(my_model, las = 1) # Residuals, Fitted, ...
par(opar)
bptest(my_model)
##
## studentized Breusch-Pagan test
##
## data: my_model
## BP = 0.40552, df = 2, p-value = 0.8165
##
## Shapiro-Wilk normality test
##
## data: my_model$residuals
## W = 0.96319, p-value = 0.7476

La gráfica “Residuals vs Fitted” (arriba izquierda, imagen anterior), sugiere una variabilidad constante de los residuos (eje Y),la línea roja horizontal lo indica, no es completamente paralela al eje X, pero los máximos y mínimos de la línea no se alejan demasiado del 0.

La gráfica “Normal Q-Q” (arriba derecha, imagen anterior), sugiere que los residuos siguen una distribución Normal, pues la mayoria de los puntos están sobre la línea discontinua, es decir los residuos coinciden con los quantiles teóricos de la distribución Normal, excepto los valores 9, 14 que están más alejados.

El test de Breusch-Pagan se basa en el contraste H0 : Existe homocedasticidad en los residuos vs H1 : No existe homocedasticidad en los residuos. Por otro lado, el test de Shapiro-Wilk se basa en el contraste H0 : Los residuos siguen una distribución Normal vs H1 : Los residuos NO siguen una distribución Normal. De los dos tests, obtenemos p-valores 0.81 y 0.74, por tanto podemos aceptar las hipótesis nulas y en consecuencia el modelo cumple los supuestos de Normalidad y homocedasticidad en los residuos (considerando  = 0.05).

Con este artículo damos por finalizada la parte de Regresión Lineal, pero no os perdáis los siguientes artículos de esta misma sección en la cual profundizaremos en las matemáticas del Machine Learning.

Escrito para LUCA por Fran Fenoll (@ffenoll16), Fran Ramírez (@cyberhadesblog y @cybercaronte) y Enrique Blanco (@eblanco_h) ambos del equipo de Ideas Locas CDO de Telefónica.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *