Está en la página 1de 27

UNIVERSIDAD TÉCNICA ESTATAL DE QUEVEDO

FACULTAD DE CIENCIAS DE LA INDUSTRIA Y PRODUCCIÓN


CARRERA DE INGENIERIA AGROINDUSTRIAL

TEMA
REGRESIÓN LINEAL MÚLTIPLE

MATERIA
PAQUETES ESTADÍSTICOS

INTEGRANTES
CEDEÑO PRADO BETHZAIDA
RODRÍGUEZ SAMPEDRO MARTHA ALEXANDRA

DOCENTE
ING. CARLOS ROA.

QUEVEDO – LOS RÍOS - ECUADOR


2021 – 2022
> library(MASS)
> library(ISLR)
> data("Boston")
> str(Boston)
'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
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

DIAGRAMAS
> plot(Boston$medv,Boston$crim, col ="blue")#diagrama de dispersión de: Y vs.
X1
80
60
Boston$crim

40
20
0

10 20 30 40 50

Boston$medv
> plot(Boston$medv,Boston$zn, col ="blue")

100
80
60
Boston$zn

40
20
0

10 20 30 40 50

Boston$medv

> plot(Boston$medv,Boston$indus, col ="blue")


25
20
Boston$indus

15
10
5
0

10 20 30 40 50

Boston$medv

> plot(Boston$medv,Boston$chas, col ="blue")


1.0
0.8
Boston$chas

0.6
0.4
0.2
0.0

10 20 30 40 50

Boston$medv
> plot(Boston$medv,Boston$nox, col ="blue")

0.8
0.7
B oston$nox

0.6
0.5
0.4

10 20 30 40 50

Boston$medv

> plot(Boston$medv,Boston$rm, col ="blue")


8
7
Boston$rm

6
5
4

10 20 30 40 50

Boston$medv

> plot(Boston$medv,Boston$age, col ="blue")


100
80
B oston$age

60
40
20
0

10 20 30 40 50

Boston$medv
> plot(Boston$medv,Boston$dis, col ="blue")

12
10
B oston$dis

8
6
4
2

10 20 30 40 50

Boston$medv

> plot(Boston$medv,Boston$rad, col ="blue")


20
Boston$rad

15
10
5

10 20 30 40 50

Boston$medv

> plot(Boston$medv,Boston$tax, col ="blue")


70 0
60 0
B oston $ta x

50 0
40 0
30 0
20 0

10 20 30 40 50

Boston$medv
> plot(Boston$medv,Boston$ptratio, col ="blue")

22
20
Boston$ptratio

18
16
14

10 20 30 40 50

Boston$medv

> plot(Boston$medv,Boston$black, col ="blue")


400
300
B oston$black

200
100
0

10 20 30 40 50

Boston$medv

> plot(Boston$medv,Boston$lstat, col ="blue")


30
B o ston $lsta t

20
10

10 20 30 40 50

Boston$medv
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.
 #instalar el paquete LEAPS desde el menú de [R]
 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

MEJOR 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 variables: 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 Modelo 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+ β12∗indus

MEJOR 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+ β12∗indus+ β 13∗age
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 +0.7337897∗Istat+ 0.7123567∗rm+0.7348058∗ptratio+ 0.7222072∗¿dis


+0.7051702∗nox+ 0.6878351∗chas +0.7343282∗¿+ 0.6371245∗zn+ 0.5432418∗crim+0.7239046∗rad +0.7288066
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.781
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.781)

Y = β0 +0.7337897∗Istat+ 0.7123567∗rm+0.7348058∗ptratio+ 0.7222072∗¿dis


+0.7051702∗nox+ 0.6878351∗chas +0.7343282∗¿+ 0.6371245∗zn+ 0.5432418∗crim+0.7239046∗rad +0.7288066

> 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

MEJOR 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 variables: 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 Modelo 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+ β12∗indus

MEJOR 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+ β12∗indus+ β 13∗age

# para poder obtener el valor del R-cuadrado ajustado usamos “$adjr2” en la función “summary”
> 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.7343282 es el R CUADRADO AJUSTADO para el modelo de regresión con 11 variables independientes

0.7348058 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.

# para poder obtener el valor del “suma de residuales cuadráticos”usamos “$rss” en la función “summary””
> 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: nos quedamos con el mejor modelo que es de 13 variables:

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


STEP
CRITERIOS DE SELECCIÓN DE LA MEJOR ECUACIÓN DE REGRESIÓN:
AIC
library(dplyr)
datos <- as.data.frame(swiss)
> 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 # LOS VALORES DE CORRELACIÓN ENTRE TODAS LAS VARIABLES DE LA BASE DE
# DATOS ANALIZADA
> library(ggplot2)
> 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 que indica que no hay
modelo de regresión, lo que significa que SI es válida la ecuación de regresión planteada

R cuadrado ajustado=73,38 %

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

# el método STEP utiliza el criterio del “AIC” para quitar y/o agregar variables a la ecuación de regresión

> 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
36.341145 -0.108413 0.045845 2.718716 -17.376023 3.801579
dis rad tax ptratio black lstat
-1.492711 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 =36,34114−0.522553∗lstat +3.801579∗rm−0.946525∗ptratio −1.492711∗¿ dis
−17.376023∗nox+ 0.009291∗¿+0.299608∗rad−0.108413∗crim−0.011778∗tax + 0.045845∗zn+ 2.718716∗chas
# El resultado usando el criterio “AIC” coincide con el resultado del criterio “R cuadrado
ajustado”, el modelo de regresión es:

Y = β0 + β 1∗crim+ β 2∗zn+ β3∗chas+ β 4∗¿ nox


+ β 5∗rm+ β 6∗dis+ β 7∗rad + β 8∗tax+ β 9∗ptratio+ β10∗¿+ β 11∗istat

# Dado un conjunto de modelos candidatos para los datos, el modelo de regresión #


seleccionado (preferido) es el que tiene el valor mínimo en el AIC
Método de creación de Criterio de comparación y selección
ecuaciones de regresión
El mejor modelo de regresión es el que tiene mayor
Forward $adjr2 $rss
valor de $ADJR2
El mejor modelo de regresión es el que tiene
Backward $adjr2 $rss
mínimo valor de $RSS
El mejor modelo de regresión es el que tiene menor
STEP AIC
valor de AIC

c. ELABORAR EL DIAGRAMA DE RESIDUALES DEL APORTE DE CADA VARIABLE


INCLUIDA EN CADA UNA DE LAS ECUACIONES DE REGRESIÓN EN EL APARTADO
(B)

> 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)
d) ELABORAR EL DIAGRAMA QQPLOT PARA CADA ECUACIÓN DE REGRESIÓN
SELECCIONADA EN EL APARTADO (b)
GRAFICOS QQ - PLOT

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

> qqnorm(Modelo1$residuals)

> qqline(Modelo1$residuals, col ="blue")

Normal Q-Q Plot


20
Sample Quantiles

10
0

> Modelo2=
lm ( medv ~
-10

-3 -2 -1 0 1 2 3

Theoretical Quantiles
lstat + rm + ptratio + dis + nox + chas + black + zn + crim + rad + tax + indus + age,
data=datos)

> qqnorm(Modelo2$residuals)

> qqline(Modelo2$residuals, col ="blue")

Normal Q-Q Plot


20
Sample Quantiles

10
0
-10

-3 -2 -1 0 1 2 3

Theoretical Quantiles
> Modelo3= lm ( medv ~ lstat + rm + ptratio + dis + nox + chas + black + zn + crim +
rad + tax, data=datos)

> qqnorm(Modelo3$residuals)

> qqline(Modelo3$residuals, col ="blue")

Normal Q-Q Plot


20
Sample Quantiles

10
0
-10

-3 -2 -1 0 1 2 3

Theoretical Quantiles
> Modelo4= lm ( medv ~ lstat + rm + ptratio + dis + nox + chas + black + zn + crim +
rad + tax + indus + age, data=datos)

> qqnorm(Modelo4$residuals)

> qqline(Modelo4$residuals, col ="blue")

Normal Q-Q Plot


20
Sample Quantiles

10
0
-10

-3 -2 -1 0 1 2 3

Theoretical Quantiles
> Modelo5= lm ( medv ~ crim + zn + chas + nox + rm + dis + rad + tax + ptratio + black
+ lstat, data=datos)

> qqnorm(Modelo5$residuals)

> qqline(Modelo5$residuals, col ="blue")

Normal Q-Q Plot


20
Sample Quantiles

10
0
-10

-3 -2 -1 0 1 2 3

Theoretical Quantiles
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
COMPRAR LA CALIDAD DE LOS MODELOS DE REGRESIÓN LINEAL UTILIZANDO LOS
RESIDUALES.
El “test” o “estadístico” seleccionado debe ser aplicado a cada una de las ecuaciones
de regresión seleccionadas en el apartado (b) y luego usando dicho valor comparan los
cincos modelos de regresión lineal múltiple. Debe usar una redacción breve de los
resultados obtenidos según el “test” aplicado.

MODELOS RESIDUALES

> 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 4 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.

Análisis:

> 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