0% encontró este documento útil (0 votos)
5 vistas8 páginas

Análisis de Consumo de Combustible en R

Cargado por

resubooks
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas8 páginas

Análisis de Consumo de Combustible en R

Cargado por

resubooks
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ejercicio: mtcars

Stacey Minaya
1119569
Ejercicio: ‘mtcars’
Modelado del consumo de combustible
Objetivo: Aplicar conceptos básicos de regresión lineal para analizar y predecir el consumo de
combustible (medido en millas por galón, mpg) de vehículos, utilizando el conjunto de datos ‘mt-
cars’ disponible en R.
Exploración
Primero se cargan los datos y se les da un primer vistazo.

options(repos = c(CRAN = "[Link]

#Instalamos una librería que podriamos utilizar


[Link]('car')

Installing package into 'C:/Users/esteb/AppData/Local/R/win-library/4.4'


(as 'lib' is unspecified)

package 'car' successfully unpacked and MD5 sums checked

The downloaded binary packages are in


C:\Users\esteb\AppData\Local\Temp\RtmpEdhFCj\downloaded_packages

[Link]('MASS')

Installing package into 'C:/Users/esteb/AppData/Local/R/win-library/4.4'


(as 'lib' is unspecified)

package 'MASS' successfully unpacked and MD5 sums checked

Warning: cannot remove prior installation of package 'MASS'

1
Warning in [Link](savedcopy, lib, recursive = TRUE): problem copying
C:\Users\esteb\AppData\Local\R\win-library\4.4\00LOCK\MASS\libs\x64\[Link]
to
C:\Users\esteb\AppData\Local\R\win-library\4.4\MASS\libs\x64\[Link]:
Permission denied

Warning: restored 'MASS'

The downloaded binary packages are in


C:\Users\esteb\AppData\Local\Temp\RtmpEdhFCj\downloaded_packages

# Cargar el dataset
data(mtcars)

# Resumen de los datos


summary(mtcars)

mpg cyl disp hp


Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
Median :19.20 Median :6.000 Median :196.3 Median :123.0
Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
drat wt qsec vs
Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
Median :3.695 Median :3.325 Median :17.71 Median :0.0000
Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
am gear carb
Min. :0.0000 Min. :3.000 Min. :1.000
1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
Median :0.0000 Median :4.000 Median :2.000
Mean :0.4062 Mean :3.688 Mean :2.812
3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :1.0000 Max. :5.000 Max. :8.000

# Cantidad y tipo
str(mtcars)

2
'[Link]': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...

# Revisar correlaciones entre las variables


cor(mtcars)

mpg cyl disp hp drat wt


mpg 1.0000000 -0.8521620 -0.8475514 -0.7761684 0.68117191 -0.8676594
cyl -0.8521620 1.0000000 0.9020329 0.8324475 -0.69993811 0.7824958
disp -0.8475514 0.9020329 1.0000000 0.7909486 -0.71021393 0.8879799
hp -0.7761684 0.8324475 0.7909486 1.0000000 -0.44875912 0.6587479
drat 0.6811719 -0.6999381 -0.7102139 -0.4487591 1.00000000 -0.7124406
wt -0.8676594 0.7824958 0.8879799 0.6587479 -0.71244065 1.0000000
qsec 0.4186840 -0.5912421 -0.4336979 -0.7082234 0.09120476 -0.1747159
vs 0.6640389 -0.8108118 -0.7104159 -0.7230967 0.44027846 -0.5549157
am 0.5998324 -0.5226070 -0.5912270 -0.2432043 0.71271113 -0.6924953
gear 0.4802848 -0.4926866 -0.5555692 -0.1257043 0.69961013 -0.5832870
carb -0.5509251 0.5269883 0.3949769 0.7498125 -0.09078980 0.4276059
qsec vs am gear carb
mpg 0.41868403 0.6640389 0.59983243 0.4802848 -0.55092507
cyl -0.59124207 -0.8108118 -0.52260705 -0.4926866 0.52698829
disp -0.43369788 -0.7104159 -0.59122704 -0.5555692 0.39497686
hp -0.70822339 -0.7230967 -0.24320426 -0.1257043 0.74981247
drat 0.09120476 0.4402785 0.71271113 0.6996101 -0.09078980
wt -0.17471588 -0.5549157 -0.69249526 -0.5832870 0.42760594
qsec 1.00000000 0.7445354 -0.22986086 -0.2126822 -0.65624923
vs 0.74453544 1.0000000 0.16834512 0.2060233 -0.56960714
am -0.22986086 0.1683451 1.00000000 0.7940588 0.05753435
gear -0.21268223 0.2060233 0.79405876 1.0000000 0.27407284
carb -0.65624923 -0.5696071 0.05753435 0.2740728 1.00000000

Vemos que las variables cyl, disp, hp y wt presentan una correlación alta con nuestra variable de
interés, seguramente veamos algunas en el modelo final.
Por su parte, algunas variables tienen una correlación muy alta entre si por lo que podría consid-
erarse retirarlas del modelo para evitar colinealidad en las variables explicativas.

3
Hacemos un primer modelo con todas las variables:

# Modelo inicial con todas las variables


modelo_completo <- lm(mpg ~ ., data = mtcars)

# Resumen del modelo


summary(modelo_completo)

Call:
lm(formula = mpg ~ ., data = mtcars)

Residuals:
Min 1Q Median 3Q Max
-3.4506 -1.6044 -0.1196 1.2193 4.6271

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 12.30337 18.71788 0.657 0.5181
cyl -0.11144 1.04502 -0.107 0.9161
disp 0.01334 0.01786 0.747 0.4635
hp -0.02148 0.02177 -0.987 0.3350
drat 0.78711 1.63537 0.481 0.6353
wt -3.71530 1.89441 -1.961 0.0633 .
qsec 0.82104 0.73084 1.123 0.2739
vs 0.31776 2.10451 0.151 0.8814
am 2.52023 2.05665 1.225 0.2340
gear 0.65541 1.49326 0.439 0.6652
carb -0.19942 0.82875 -0.241 0.8122
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.65 on 21 degrees of freedom


Multiple R-squared: 0.869, Adjusted R-squared: 0.8066
F-statistic: 13.93 on 10 and 21 DF, p-value: 3.793e-07

Vemos que es un modelo lo suficientemente bueno como para seguir trabajando con el, ahora
probemos las diferentes combinaciones de variables explicativas para ver cual da el mejor resul-
tado usando la función step(). Es probable que el mejor modelo deje solo una de las parejas de
variables con alta correlación.

library(MASS)

Warning: package 'MASS' was built under R version 4.4.2

4
modelo_completo <- lm(mpg ~ 0 + ., data = mtcars)
mejor_modelo <- step(modelo_completo, direction = "both")

Start: AIC=69.55
mpg ~ 0 + (cyl + disp + hp + drat + wt + qsec + vs + am + gear +
carb)

Df Sum of Sq RSS AIC


- vs 1 0.058 150.59 67.562
- carb 1 0.718 151.25 67.702
- cyl 1 1.447 151.98 67.856
- disp 1 4.041 154.57 68.397
- gear 1 4.193 154.72 68.429
- drat 1 4.929 155.46 68.581
- hp 1 6.285 156.81 68.858
<none> 150.53 69.549
- am 1 14.069 164.60 70.409
- wt 1 28.879 179.41 73.166
- qsec 1 46.013 196.54 76.085

Step: AIC=67.56
mpg ~ cyl + disp + hp + drat + wt + qsec + am + gear + carb -
1

Df Sum of Sq RSS AIC


- carb 1 0.758 151.34 65.722
- cyl 1 1.593 152.18 65.898
- disp 1 3.984 154.57 66.397
- gear 1 4.200 154.79 66.442
- drat 1 4.919 155.50 66.590
- hp 1 6.428 157.01 66.899
<none> 150.59 67.562
- am 1 14.466 165.05 68.497
+ vs 1 0.058 150.53 69.549
- wt 1 29.253 179.84 71.242
- qsec 1 60.528 211.12 76.373

Step: AIC=65.72
mpg ~ cyl + disp + hp + drat + wt + qsec + am + gear - 1

Df Sum of Sq RSS AIC


- cyl 1 1.114 152.46 63.957
- gear 1 3.443 154.79 64.442
- drat 1 4.400 155.74 64.639
<none> 151.34 65.722
- hp 1 12.294 163.64 66.221
- disp 1 12.410 163.75 66.244

5
- am 1 15.050 166.39 66.756
+ carb 1 0.758 150.59 67.562
+ vs 1 0.097 151.25 67.702
- wt 1 76.696 228.04 76.841
- qsec 1 132.554 283.90 83.852

Step: AIC=63.96
mpg ~ disp + hp + drat + wt + qsec + am + gear - 1

Df Sum of Sq RSS AIC


- gear 1 3.353 155.81 62.653
- drat 1 4.776 157.23 62.944
<none> 152.46 63.957
- hp 1 11.462 163.92 64.277
- am 1 14.672 167.13 64.897
+ cyl 1 1.114 151.34 65.722
- disp 1 19.686 172.14 65.843
+ carb 1 0.278 152.18 65.898
+ vs 1 0.103 152.35 65.935
- wt 1 77.278 229.74 75.078
- qsec 1 147.043 299.50 83.564

Step: AIC=62.65
mpg ~ disp + hp + drat + wt + qsec + am - 1

Df Sum of Sq RSS AIC


- hp 1 8.145 163.96 62.283
<none> 155.81 62.653
- drat 1 10.456 166.27 62.731
- disp 1 16.498 172.31 63.874
+ gear 1 3.353 152.46 63.957
+ cyl 1 1.024 154.79 64.442
+ vs 1 0.118 155.69 64.629
+ carb 1 0.058 155.75 64.641
- am 1 29.198 185.01 66.149
- wt 1 74.871 230.68 73.210
- qsec 1 169.843 325.65 84.243

Step: AIC=62.28
mpg ~ disp + drat + wt + qsec + am - 1

Df Sum of Sq RSS AIC


- drat 1 5.797 169.75 61.395
- disp 1 9.298 173.25 62.049
<none> 163.96 62.283
+ hp 1 8.145 155.81 62.653
+ carb 1 3.651 160.30 63.563
+ cyl 1 0.228 163.73 64.239

6
+ vs 1 0.079 163.88 64.268
+ gear 1 0.036 163.92 64.277
- am 1 24.042 188.00 64.662
- wt 1 94.205 258.16 74.811
- qsec 1 241.903 405.86 89.289

Step: AIC=61.4
mpg ~ disp + wt + qsec + am - 1

Df Sum of Sq RSS AIC


<none> 169.75 61.395
- disp 1 11.08 180.83 61.419
+ drat 1 5.80 163.96 62.283
+ hp 1 3.49 166.27 62.731
+ gear 1 1.96 167.80 63.024
+ carb 1 0.30 169.46 63.339
+ vs 1 0.24 169.51 63.350
+ cyl 1 0.01 169.74 63.393
- wt 1 96.17 265.92 73.759
- am 1 103.14 272.90 74.587
- qsec 1 1085.04 1254.79 123.408

summary(mejor_modelo)

Call:
lm(formula = mpg ~ disp + wt + qsec + am - 1, data = mtcars)

Residuals:
Min 1Q Median 3Q Max
-3.7169 -1.4638 -0.5382 1.7825 4.3566

Coefficients:
Estimate Std. Error t value Pr(>|t|)
disp 0.012020 0.008891 1.352 0.187238
wt -4.612795 1.158173 -3.983 0.000440 ***
qsec 1.705510 0.127486 13.378 1.1e-13 ***
am 4.180854 1.013616 4.125 0.000301 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.462 on 28 degrees of freedom


Multiple R-squared: 0.9879, Adjusted R-squared: 0.9862
F-statistic: 572.1 on 4 and 28 DF, p-value: < 2.2e-16

7
Vemos que efectivamente, solo se mantuvo una de las variables que mostraron colinealidad y se
eliminó el intercepto.
Conclusión
Vimos que finalmente las variables que mejor explican en un modelo de regresión lineal al
consumo de el grupo de vehiculos del dataset son mpg = disp * 0.0120200576653963 + wt *
−4.61279456246674 + qsec * 1.70550996283541 + am * 4.18085430467978.
De ellas, disp que hace referencia al volumen que se desplazan los pistones dentro de los cilindros,
es la que menos afecta el modelo con un cambio de 0.012 millas/galon por cada pulgada cúbica,
pero podemos ver que su inclusión aumenta levemente el R cuadrado del modelo, así que se de-
cidió mantenerla.
wt es el peso del vehículo, es curioso que el peso del vehículo afecte negativamente al consumo del
vehiculo, podría intuirse que un vehículo más pesado consume más pero este modelo demuestra
lo contrario, un aumento de mil libras en el vehículo, disminuye el consumo en 4.6 millas/galon.
Esta variable tiene una muy buena significancia.
qsec es el tiempo que le toma a un vehículo recorrer 1/4 de milla, según el modelo, cada segundo
más que se toma el vehículo en cubrir dicha distancia, el consumo aumenta en 1.7 millas/galon.
Esta variable tiene también una muy buena significancia
am hace referencia al tipo de transmisión, en este caso, los vehiculos manuales presentan un con-
sumo de 4.2 millas/galon mayor que los automáticos. Esta variable también tiene una significancia
muy buena en el modelo.

También podría gustarte