Tarea - REGRESION LINEAL MULTIPLE - PARTE 2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 26

UNIVERSIDAD

TECNICA
ESTATAL DE
QUEVEDO

DOCENT : Nombre del


E docente

ASIGNATU : Nombre del


RA curso
ALUMN : Nombre del
O alumno
GRADO : Grado que cursas

2021
REGRESION LINEAL
MULTIPLIE
2da PARTE DE LA TAREA: REGRESIÓN LINEAL
MÚLTIPLE
CON LOS DATOS “BOSTON” ENCONTRAR EL MEJOR MODELO DE
REGRESIÓN LINEAL MÚLTIPLE, TOMANDO LA VARIABLE “MEDV”
como variable de respuesta Y (variable dependiente).
Para leer los datos en “R” utilice las siguientes funciones:
# primero se deben instalar los paquetes “MASS” e “ISLR”
library(MASS)
library(ISLR)
data("Boston")
str(Boston)

La variable MEDV significa “el valor de la vivienda” [la mediana


de los valores]
'data.frame': 506 obs. of 14 variables:
$ crim : num 0.00632 0.02731 0.02729 0.03237 0.06905 ...
$ zn : num 18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...
$ indus : num 2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...
$ chas : int 0 0 0 0 0 0 0 0 0 0 ...
$ nox : num 0.538 0.469 0.469 0.458 0.458 0.458 0.524 0.524 0.524
0.524 ...
$ rm : num 6.58 6.42 7.18 7 7.15 ...
$ age : num 65.2 78.9 61.1 45.8 54.2 58.7 66.6 96.1 100 85.9 ...
$ dis : num 4.09 4.97 4.97 6.06 6.06 ...
$ rad : int 1 2 2 3 3 3 5 5 5 5 ...
$ tax : num 296 242 242 222 222 222 311 311 311 311 ...
$ ptratio: num 15.3 17.8 17.8 18.7 18.7 18.7 15.2 15.2 15.2 15.2 ...
$ black : num 397 397 393 395 397 ...
$ lstat : num 4.98 9.14 4.03 2.94 5.33 ...
$ medv : num 24 21.6 34.7 33.4 36.2 28.7 22.9 27.1 16.5 18.9 ...
a) REALICE EL ANÁLISIS DESCRIPTIVO CORCENIENTE A
LA REGRESIÓN LINEAL, ESTO ES: CALCULAR TODAS LA
CORRELACIONES Y HACER LOS DIAGRAMAS DE
DISPERSIÓN DE LA VARIABLE “Y” COMPARADO CON
CADA UNA DE LAS VARIABLES “Xs”.
> datos <- as.data.frame(Boston)
> round(cor(x = datos, method = "pearson"), 4)
crim zn indus chas nox rm age dis rad tax ptratio black
lstat medv

medv -0.3883 0.3604 -0.4837 0.1753 -0.4273 0.6954 -0.3770 0.2499 -0.3816 -0.4685 -0.5078 0.3335
-0.7377 1.0000

#diagrama de dispersión de: Y vs. X1


> plot(Boston$medv,Boston$crim)

#diagrama de dispersión de: Y vs. X2


> plot(Boston$medv,Boston$zn)
#diagrama de dispersión de: Y vs. X3
> plot(Boston$medv,Boston$indus)

#diagrama de dispersión de: Y


> plot(Boston$medv,Boston$chas)

#diagrama de dispersión de: Y vs.


> plot(Boston$medv,Boston$nox)
#diagrama de dispersión de: Y vs. X6
> plot(Boston$medv,Boston$rm)

#diagrama de dispersión de: Y vs. X7


> plot(Boston$medv,Boston$age)

#diagrama de dispersión de: Y vs. X8


> plot(Boston$medv,Boston$dis)
#diagrama de dispersión de: Y vs. X9
> plot(Boston$medv,Boston$rad)

#diagrama de dispersión de: Y vs. X10


> plot(Boston$medv,Boston$tax)

#diagrama de dispersión de: Y vs. X11


> plot(Boston$medv,Boston$ptratio)
#diagrama de dispersión de: Y vs. X12
> plot(Boston$medv,Boston$black)

#diagrama de dispersión de: Y vs. X13


> plot(Boston$medv,Boston$lstat)
b) APLIQUE LOS MÉTODOS “FORWARD”, “BACKWARD” Y
“STEP” Y COMPARE LOS RESULTADOS PARA EL MEJOR
SUBCONJUNTO DE MODELOS DE REGRESIÓN SEGÚN LA
CANTIDAD DE VARIABLES.
Utilice los criterios de “R2 cuadrado ajustado”, “Suma de Residuales Cuadráticos” y
“AIC” para comparar los posibles modelos de regresión y proceder a seleccionar el
mejor modelo.

library(leaps)
> regresionForward<-regsubsets(as.matrix(Boston[,-14]),Boston[,14],
nbest = 1, nvmax = NULL,method='forward')
> summary(regresionForward)
Subset selection object
13 Variables (and intercept)
Forced in Forced out
crim FALSE FALSE
zn FALSE FALSE
indus FALSE FALSE
chas FALSE FALSE
nox FALSE FALSE
rm FALSE FALSE
age FALSE FALSE
dis FALSE FALSE
rad FALSE FALSE
tax FALSE FALSE
ptratio FALSE FALSE
black FALSE FALSE
lstat FALSE FALSE
1 subsets of each size up to 13
Selection Algorithm: forward
crim zn indus chas nox rm age dis rad tax ptratio black lstat
1 ( 1 ) " " " " " " " " " " " " " " " " " " " " " " " " "*"
2 ( 1 ) " " " " " " " " " " "*" " " " " " " " " " " " " "*"
3 ( 1 ) " " " " " " " " " " "*" " " " " " " " " "*" " " "*"
4 ( 1 ) " " " " " " " " " " "*" " " "*" " " " " "*" " " "*"
5 ( 1 ) " " " " " " " " "*" "*" " " "*" " " " " "*" " " "*"
6 ( 1 ) " " " " " " "*" "*" "*" " " "*" " " " " "*" " " "*"
7 ( 1 ) " " " " " " "*" "*" "*" " " "*" " " " " "*" "*" "*"
8 ( 1 ) " " "*" " " "*" "*" "*" " " "*" " " " " "*" "*" "*"
9 ( 1 ) "*" "*" " " "*" "*" "*" " " "*" " " " " "*" "*" "*"
10 ( 1 ) "*" "*" " " "*" "*" "*" " " "*" "*" " " "*" "*" "*"
11 ( 1 ) "*" "*" " " "*" "*" "*" " " "*" "*" "*" "*" "*" "*"
12 ( 1 ) "*" "*" "*" "*" "*" "*" " " "*" "*" "*" "*" "*" "*"
13 ( 1 ) "*" "*" "*" "*" "*" "*" "*" "*" "*" "*" "*" "*" "*"

MEJOR Modelo de Regresión con 1 variable: Y = β0 + β 1∗¿ lstat

MEJOR Modelo de Regresión con 2 variables: Y = β0 + β 1∗lstat + β 2∗rm

MEJOR Modelo de Regresión con 3 variables: Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio


MEJOR Modelo de Regresión con 4 variables:
Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis

Modelo de Regresión con 5 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox

MEJOR Modelo de Regresión con 6 variable:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio+ β 4∗dis+ β 5∗nox + β 6∗chas

MEJOR Modelo de Regresión con 7 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio+ β 4∗dis+ β 5∗nox + β 6∗chas+ β 7∗¿

MEJOR Modelo de Regresión con 8 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗chas+ β 7∗¿+ β 8∗zn

MEJOR Modelo de Regresión con 9 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗chas+ β 7∗¿+ β 8∗zn+ β 9∗crim

MEJOR de Regresión con 10 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗chas+ β 7∗¿+ β 8∗zn+ β 9∗crim+ β 10∗rad
MEJOR Modelo de Regresión con 11 variables:
Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗chas+ β 7∗¿+ β 8∗zn+ β 9∗crim+ β 10∗rad + β 11∗tax

MEJOR Modelo de Regresión con 12 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗chas+ β 7∗¿+ β 8∗zn+ β 9∗crim+ β 10∗rad + β 11∗tax

Modelo de Regresión con 13 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗chas+ β 7∗¿+ β 8∗zn+ β 9∗crim+ β 10∗rad + β 11∗tax

Para poder obtener el valor del R-cuadrado ajustado usamos “$adjr2”


> summary(regresionForward)$adjr2
[1] 0.5432418 0.6371245 0.6767036 0.6878351 0.7051702
0.7123567 0.7182560 0.7222072
[9] 0.7239046 0.7288066 0.7348058 0.7343282 0.7337897
Se comparan los valores y se escoge el modelo de regresión que contiene a las 11
variables porque representa el valor más alto del R-cuadrado ajustado (73.48 %)

Y = β0 + β 1 0.7337897∗lstat + β 2 0.7123567∗rm+ β 3 0.7348058∗ptratio+ β 4 0.7222072∗dis+ β 5 0.7051702∗

Para poder obtener el valor del “suma de residuales cuadráticos”


usamos “$rss”
> summary(regresionForward)$rss
[1] 19472.38 15439.31 13727.99 13228.91 12469.34 12141.07
11868.24 11678.30 11583.59
[10] 11354.98 11081.36 11078.85 11078.78l
Se comparan los valores $rss y se escoge el modelo de regresión que contiene a las
13 variables porque representa el valor MÁS BAJO de la suma de residuales
cuadráticos (11078.78)
Y = β0 + β 1 11078.78∗lstat + β 2 12141.07∗rm+ β 3 11081.36∗ptratio + β 4 11678.30∗dis+ β 5 12469.34∗nox + β

> regresionBackward<-regsubsets(as.matrix(Boston[,-14]),Boston[,14],
nbest = 1, nvmax = NULL, method='backward')
> summary(regresionBackward)
Subset selection object
13 Variables (and intercept)
Forced in Forced out
crim FALSE FALSE
zn FALSE FALSE
indus FALSE FALSE
chas FALSE FALSE
nox FALSE FALSE
rm FALSE FALSE
age FALSE FALSE
dis FALSE FALSE
rad FALSE FALSE
tax FALSE FALSE
ptratio FALSE FALSE
black FALSE FALSE
lstat FALSE FALSE
1 subsets of each size up to 13

Selection Algorithm: backward


crim zn indus chas nox rm age dis rad tax ptratio black lstat
1 ( 1 ) " " " " " " " " " " " " " " " " " " " " " " " " "*"
2 ( 1 ) " " " " " " " " " " "*" " " " " " " " " " " " " "*"
3 ( 1 ) " " " " " " " " " " "*" " " " " " " " " "*" " " "*"
4 ( 1 ) " " " " " " " " " " "*" " " "*" " " " " "*" " " "*"
5 ( 1 ) " " " " " " " " "*" "*" " " "*" " " " " "*" " " "*"
6 ( 1 ) " " " " " " " " "*" "*" " " "*" " " " " "*" "*" "*"
7 ( 1 ) " " " " " " " " "*" "*" " " "*" "*" " " "*" "*" "*"
8 ( 1 ) "*" " " " " " " "*" "*" " " "*" "*" " " "*" "*" "*"
9 ( 1 ) "*" " " " " " " "*" "*" " " "*" "*" "*" "*" "*" "*"
10 ( 1 ) "*" "*" " " " " "*" "*" " " "*" "*" "*" "*" "*" "*"
11 ( 1 ) "*" "*" " " "*" "*" "*" " " "*" "*" "*" "*" "*" "*"
12 ( 1 ) "*" "*" "*" "*" "*" "*" " " "*" "*" "*" "*" "*" "*"
13 ( 1 ) "*" "*" "*" "*" "*" "*" "*" "*" "*" "*" "*" "*" "*"

MEJOR Modelo de Regresión con 1 variable: Y = β0 + β 1∗lstat

MEJOR Modelo de Regresión con 2 variables: Y = β0 + β 1∗lstat + β 2∗rm

MEJOR Modelo de Regresión con 3 variables: Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio

MEJOR Modelo de Regresión con 4 variables: Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis

Modelo de Regresión con 5 variables: Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox


MEJOR Modelo de Regresión con 6 variable:
Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗¿

MEJOR Modelo de Regresión con 7 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗¿+ β7∗rad

MEJOR Modelo de Regresión con 8 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗¿+ β7∗rad + β 8∗crim

MEJOR Modelo de Regresión con 9 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗¿+ β7∗rad + β 8∗crim + β 9∗tax

MEJOR de Regresión con 10 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗¿+ β7∗rad + β 8∗crim + β 9∗tax+ β 10∗zn

MEJOR Modelo de Regresión con 11 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗¿+ β7∗rad + β 8∗crim + β 9∗tax+ β 10∗zn + β 11∗chas

MEJOR Modelo de Regresión con 12 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗¿+ β7∗rad + β 8∗crim + β 9∗tax+ β 10∗zn + β 11∗chas+

Modelo de Regresión con 13 variables:


Y = β0 + β 1∗lstat + β 2∗rm+ β 3∗ptratio + β 4∗dis+ β 5∗nox + β 6∗¿+ β7∗rad + β 8∗crim + β 9∗tax+ β 10∗zn + β 11∗chas+

Para poder obtener el valor del R-cuadrado ajustado


> summary(regresionBackward)$adjr2
[1] 0.5432418 0.6371245 0.6767036 0.6878351 0.7051702
0.7119672 0.7147861 0.7195336
[9] 0.7243416 0.7299149 0.7348058 0.7343282 0.7337897
0.7348058 es el R CUADRADO AJUSTADO para el modelo de regresión con 11
variables independientes
0.7343282 es el R CUADRADO AJUSTADO para el modelo de regresión con 12
variables independientes
73.48 %
=1.0006 este valor lo multiplico al 100% y da resultado: 0.06 %
73.43 %
El valor obtenido con 12 variables es ligeramente mayor al del modelo con 11
variables. Por lo tanto, al agregar la variable 12 no hubo una mejora significativa
en el modelo de regresión.
Y = β0 + β 1 0.7337897∗lstat + β 2 0.7119672∗rm+ β 3 0.7348058∗ptratio+ β 4 0.7195336∗dis+ β5 0.7051702∗n

Para poder obtener el valor del “suma de residuales cuadráticos”


> summary(regresionBackward)$rss
[1] 19472.38 15439.31 13727.99 13228.91 12469.34 12157.51
12014.40 11790.70 11565.25
[10] 11308.58 11081.36 11078.85 11078.78
Decisión: escogemos como mejor modelo el que es de 13 variables:
Y = β0 + β 1 11078.78∗lstat + β 2 12141.07∗rm+ β 3 11081.36∗ptratio + β 4 11678.30∗dis+ β 5 12469.34∗nox + β 6∗13

MÉTODOS DE CONSTRUCCIÓN DE LA ECUACIÓN DE REGRESIÓN: STEP


> library(dplyr)
> datos <- as.data.frame(Boston)
> round(cor(x = datos, method = "pearson"), 4)
crim zn indus chas nox rm age dis rad
crim 1.0000 -0.2005 0.4066 -0.0559 0.4210 -0.2192 0.3527 -0.3797 0.6255
zn -0.2005 1.0000 -0.5338 -0.0427 -0.5166 0.3120 -0.5695 0.6644 -0.3119
indus 0.4066 -0.5338 1.0000 0.0629 0.7637 -0.3917 0.6448 -0.7080 0.5951
chas -0.0559 -0.0427 0.0629 1.0000 0.0912 0.0913 0.0865 -0.0992 -0.0074
nox 0.4210 -0.5166 0.7637 0.0912 1.0000 -0.3022 0.7315 -0.7692 0.6114
rm -0.2192 0.3120 -0.3917 0.0913 -0.3022 1.0000 -0.2403 0.2052 -0.2098
age 0.3527 -0.5695 0.6448 0.0865 0.7315 -0.2403 1.0000 -0.7479 0.4560
dis -0.3797 0.6644 -0.7080 -0.0992 -0.7692 0.2052 -0.7479 1.0000 -0.4946
rad 0.6255 -0.3119 0.5951 -0.0074 0.6114 -0.2098 0.4560 -0.4946 1.0000
tax 0.5828 -0.3146 0.7208 -0.0356 0.6680 -0.2920 0.5065 -0.5344 0.9102
ptratio 0.2899 -0.3917 0.3832 -0.1215 0.1889 -0.3555 0.2615 -0.2325 0.4647
black -0.3851 0.1755 -0.3570 0.0488 -0.3801 0.1281 -0.2735 0.2915 -0.4444
lstat 0.4556 -0.4130 0.6038 -0.0539 0.5909 -0.6138 0.6023 -0.4970 0.4887
medv -0.3883 0.3604 -0.4837 0.1753 -0.4273 0.6954 -0.3770 0.2499 -0.3816
tax ptratio black lstat medv
crim 0.5828 0.2899 -0.3851 0.4556 -0.3883
zn -0.3146 -0.3917 0.1755 -0.4130 0.3604
indus 0.7208 0.3832 -0.3570 0.6038 -0.4837
chas -0.0356 -0.1215 0.0488 -0.0539 0.1753
nox 0.6680 0.1889 -0.3801 0.5909 -0.4273
rm -0.2920 -0.3555 0.1281 -0.6138 0.6954
age 0.5065 0.2615 -0.2735 0.6023 -0.3770
dis -0.5344 -0.2325 0.2915 -0.4970 0.2499
rad 0.9102 0.4647 -0.4444 0.4887 -0.3816
tax 1.0000 0.4609 -0.4418 0.5440 -0.4685
ptratio 0.4609 1.0000 -0.1774 0.3740 -0.5078
black -0.4418 -0.1774 1.0000 -0.3661 0.3335
lstat 0.5440 0.3740 -0.3661 1.0000 -0.7377
medv -0.4685 -0.5078 0.3335 -0.7377 1.0000

# ELABORACIÓN DE UN GRÁFICO QUE MUESTRAS LOS


DIAGRAMAS DE DISPERSIÓN Y CORRELACIONES
> install.packages ("ggplot2")
> library(ggplot2)
> install.packages ("GGally")
> library(GGally)
> ggpairs(datos, lower = list(continuous = "smooth"),+ diag =
list(continuous = "barDiag"), axisLabels = "none")
MÉTODO STEP: PARA CONSTRUIR LA ECUACIÓN DE
REGRESIÓN
# Es el 3er método para construir ecuaciones de regresión lineal múltiple
> modelo <- lm ( medv ~ crim + zn + indus + chas + nox + rm
+ age + dis + rad + tax + ptratio + black +
lstat,data=datos)
> summary(modelo)
Call:
lm(formula = medv ~ crim + zn + indus + chas + nox + rm +
age + dis + rad + tax + ptratio + black + lstat, data =
datos)

Residuals:
Min 1Q Median 3Q Max
-15.595 -2.730 -0.518 1.777 26.199

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.646e+01 5.103e+00 7.144 3.28e-12 ***
crim -1.080e-01 3.286e-02 -3.287 0.001087 **
zn 4.642e-02 1.373e-02 3.382 0.000778 ***
indus 2.056e-02 6.150e-02 0.334 0.738288
chas 2.687e+00 8.616e-01 3.118 0.001925 **
nox -1.777e+01 3.820e+00 -4.651 4.25e-06 ***
rm 3.810e+00 4.179e-01 9.116 < 2e-16 ***
age 6.922e-04 1.321e-02 0.052 0.958229
dis -1.476e+00 1.995e-01 -7.398 6.01e-13 ***
rad 3.060e-01 6.635e-02 4.613 5.07e-06 ***
tax -1.233e-02 3.760e-03 -3.280 0.001112 **
ptratio -9.527e-01 1.308e-01 -7.283 1.31e-12 ***
black 9.312e-03 2.686e-03 3.467 0.000573 ***
lstat -5.248e-01 5.072e-02 -10.347 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.745 on 492 degrees of freedom


Multiple R-squared: 0.7406, Adjusted R-squared: 0.7338
F-statistic: 108.1 on 13 and 492 DF, p-value: < 2.2e-16
p−valor=2.2 ×10−16 es menor que 0,05

Como el p-valor es menor a 0,05 entonces se rechaza la hipótesis de que no hay modelo
de regresión, esto quiere decir que SI es válida la ecuación de regresión planteada.

R cuadrado ajustado=73.38 %

Dicho valor es suficientemente alto, el “R cuadrado ajustado” es una medida que indica
el porcentaje de variabilidad de la variable Y (Medv) que se puede explicar según la
variabilidad de todas las variables independientes.

> step(object = modelo, direction = "both", trace = 1)


Start: AIC=1589.64
medv ~ crim + zn + indus + chas + nox + rm + age + dis +
rad + tax + ptratio + black + lstat

Df Sum of Sq RSS AIC


- age 1 0.06 11079 1587.7
- indus 1 2.52 11081 1587.8
<none> 11079 1589.6
- chas 1 218.97 11298 1597.5
- tax 1 242.26 11321 1598.6
- crim 1 243.22 11322 1598.6
- zn 1 257.49 11336 1599.3
- black 1 270.63 11349 1599.8
- rad 1 479.15 11558 1609.1
- nox 1 487.16 11566 1609.4
- ptratio 1 1194.23 12273 1639.4
- dis 1 1232.41 12311 1641.0
- rm 1 1871.32 12950 1666.6
- lstat 1 2410.84 13490 1687.3

Step: AIC=1587.65
medv ~ crim + zn + indus + chas + nox + rm + dis + rad +
tax + ptratio + black + lstat

Df Sum of Sq RSS AIC


- indus 1 2.52 11081 1585.8
<none> 11079 1587.7
+ age 1 0.06 11079 1589.6
- chas 1 219.91 11299 1595.6
- tax 1 242.24 11321 1596.6
- crim 1 243.20 11322 1596.6
- zn 1 260.32 11339 1597.4
- black 1 272.26 11351 1597.9
- rad 1 481.09 11560 1607.2
- nox 1 520.87 11600 1608.9
- ptratio 1 1200.23 12279 1637.7
- dis 1 1352.26 12431 1643.9
- rm 1 1959.55 13038 1668.0
- lstat 1 2718.88 13798 1696.7
Step: AIC=1585.76
medv ~ crim + zn + chas + nox + rm + dis + rad + tax +
ptratio + black + lstat

Df Sum of Sq RSS AIC


<none> 11081 1585.8
+ indus 1 2.52 11079 1587.7
+ age 1 0.06 11081 1587.8
- chas 1 227.21 11309 1594.0
- crim 1 245.37 11327 1594.8
- zn 1 257.82 11339 1595.4
- black 1 270.82 11352 1596.0
- tax 1 273.62 11355 1596.1
- rad 1 500.92 11582 1606.1
- nox 1 541.91 11623 1607.9
- ptratio 1 1206.45 12288 1636.0
- dis 1 1448.94 12530 1645.9
- rm 1 1963.66 13045 1666.3
- lstat 1 2723.48 13805 1695.0

Call:
lm(formula = medv ~ crim + zn + chas + nox + rm + dis + rad
+ tax + ptratio + black + lstat, data = datos)

Coefficients:
(Intercept) crim zn chas nox rm dis
36.341145 -0.108413 0.045845 2.718716 -17.376023 3.801579 -1.492711
rad tax ptratio black lstat
0.299608 -0.011778 -0.946525 0.009291 -0.522553

El mejor modelo seleccionado con el método “STEP” y el criterio “AIC” contiene once
(11) variables, entonces la ecuación de regresión es la siguiente:
Y medv =36.341145−0.108413∗crim+ 0.045845∗zn+ 2.718716∗chas−17.376023∗nox +3.801579∗rm−1.4

c) Elaborar el diagrama de residuales de cada variable incluida en


cada una de las ecuaciones de regresión del apartado (b)
Criterio adicional (revisión del modelo de regresión seleccionado): ANÁLISIS
GRÁFICOS DE LOS RESIDUALES

> library(ggplot2)
> library(gridExtra)
> plot11 <- ggplot(data = datos, aes(crim, modelo$residuals)) + geom_point()
> plot21 <- ggplot(data = datos, aes(zn, modelo$residuals)) + geom_point()
> plot31 <- ggplot(data = datos, aes(chas, modelo$residuals)) + geom_point()
> plot41 <- ggplot(data = datos, aes(nox, modelo$residuals)) + geom_point()
> plot51 <- ggplot(data = datos, aes(rm, modelo$residuals)) + geom_point()
> plot61 <- ggplot(data = datos, aes(dis, modelo$residuals)) + geom_point()
> plot71 <- ggplot(data = datos, aes(rad, modelo$residuals)) + geom_point()
> plot81 <- ggplot(data = datos, aes(tax, modelo$residuals)) + geom_point()
> plot91 <- ggplot(data = datos, aes(ptratio, modelo$residuals)) +
geom_point()
> plot101 <- ggplot(data = datos, aes(black, modelo$residuals)) +
geom_point()
> plot111 <- ggplot(data = datos, aes(lstat, modelo$residuals)) +
geom_point()
> grid.arrange(plot11, plot21, plot31, plot41, plot51, plot61, plot71,
plot81, plot91, plot101, plot111)

Se analiza el comportamiento gráfico de los residuales (errores) para ver que tan
bueno es el modelo, seleccionado, se revisan los residuales de cada variable por
separado. Los residuales deben estar centrados en el cero, habrán valores mayores
que cero y valores menores que cero, sin patrones ni tendencias
# en términos estadísticos se dice que los residuales deben comportarse como “ruido
blanco”
ELABORACIÓN DEL Q-Q PLOT
Elaboración del gráfico Q-Q Plot, este gráfico es otra manera (criterio) para analizar la
calidad del modelo de regresión
> Modelo1= lm ( medv ~ lstat + rm + ptratio + dis + nox +
chas + black + zn + crim + rad + tax, data=datos)
> qqnorm(Modelo1$residuals)
> qqline(Modelo1$residuals)
> Modelo2= lm ( medv ~ lstat + rm + ptratio + dis + nox +
chas + black + zn + crim + rad + tax + indus + age,
data=datos)
> qqnorm(Modelo2$residuals)
> qqline(Modelo2$residuals)

> Modelo3= lm ( medv ~ lstat + rm + ptratio + dis + nox +


chas + black + zn + crim + rad + tax, data=datos)
> qqnorm(Modelo3$residuals)
> qqline(Modelo3$residuals)
> Modelo4= lm ( medv ~ lstat + rm + ptratio + dis + nox +
chas + black + zn + crim + rad + tax + indus + age,
data=datos)
> qqnorm(Modelo4$residuals)
> qqline(Modelo4$residuals)

> Modelo5= lm ( medv ~ crim + zn + chas + nox + rm + dis +


rad + tax + ptratio + black + lstat, data=datos)
> qqnorm(Modelo5$residuals)
> qqline(Modelo5$residuals)

e) INVESTIGAR Y APLICAR UN CRITERIO ADICIONAL DE


ANÁLISIS [VALIDACIÓN] DEL MODELO DE REGRESIÓN
LINEAL USANDO LOS VALORES RESIDUALES. ES
COMÚN EN LA ESTADÍSTICA ENCONTRAR ALGÚN
“TEST” O “ESTADÍSTICO” QUE SE UTILICE PARA
COMPARAR LA CALIDAD DE LOS MODELOS DE
REGRESIÓN LINEAL UTILIZANDO LOS RESIDUALES.
Test Shapiro-Wilk
> Modelo1= lm ( medv ~ lstat + rm + ptratio + dis +
nox + chas + black + zn + crim + rad + tax, data=datos)
> shapiro.test(Modelo1$residuals)
Shapiro-Wilk normality test

data: Modelo1$residuals
W = 0.90131, p-value < 2.2e-16

Mediante el test aplicado para el modelo 1 el p- valor < 2.2e-16 está muy por
debajo del 0.05 lo que nos permite rechazar la hipótesis nula y se determina que no
hay normalidad en la distribución de los datos.

CONTINUA…
> Modelo2= lm ( medv ~ lstat + rm + ptratio + dis + nox +
chas + black + zn + crim + rad + tax + indus + age,
data=datos)
> shapiro.test(Modelo2$residuals)

Shapiro-Wilk normality test

data: Modelo2$residuals
W = 0.90138, p-value < 2.2e-16

> Modelo3= lm ( medv ~ lstat + rm + ptratio + dis + nox +


chas + black + zn + crim + rad + tax, data=datos)
> shapiro.test(Modelo3$residuals)

Shapiro-Wilk normality test

data: Modelo3$residuals
W = 0.90131, p-value < 2.2e-16

> Modelo4= lm ( medv ~ lstat + rm + ptratio + dis + nox +


chas + black + zn + crim + rad + tax + indus + age,
data=datos)
> shapiro.test(Modelo4$residuals)
Shapiro-Wilk normality test

data: Modelo4$residuals
W = 0.90138, p-value < 2.2e-16

> Modelo5= lm ( medv ~ crim + zn + chas + nox + rm + dis +


rad + tax + ptratio + black + lstat, data=datos)
> shapiro.test(Modelo5$residuals)

Shapiro-Wilk normality test

data: Modelo5$residuals
W = 0.90131, p-value < 2.2e-16

También podría gustarte