Se realizó un estudio acerca de camiones ligeros movidos por diesel para saber si la humedad, la temperatura del aire y la presión barométrica influían en la emisión de óxido nitroso (en ppm). * Las emisiones se midieron a distintas horas, en condiciones experimentales diversas. * Fuente: Charles T. Hare, “Light-Duty Diesel Emission Correction Factors for Ambient Conditions”, EPA-600/2-77-116. U. S. Environmental Protection Agency.
library(readr)
# install.packages("corrplot") # Nuevo
library(corrplot) # Para correlación
## corrplot 0.84 loaded
library(caret) # Para dividir conjunto de datos
## Loading required package: lattice
## Loading required package: ggplot2
# install.packages("MASS") # NUEVO
library(MASS)
oxidoNit <- c(0.90, 0.91, 0.96, 0.89, 1.00, 1.10, 1.15, 1.03, 0.77, 1.07, 1.07, 0.94, 1.10, 1.10, 1.10, 0.91, 0.87, 0.78, 0.82, 0.95)
humedad <- c(72.4, 41.6, 34.3, 35.1, 10.7, 12.9, 8.3, 20.1, 72.2, 24.0, 23.2, 47.4, 31.5, 10.6, 11.2, 73.3, 75.4, 96.6, 107.4, 54.9)
temperatura <- c(76.3, 70.3, 77.1, 68.0, 79.0, 67.4, 66.8, 76.9, 77.7, 67.7, 76.8, 86.6, 76.9, 86.3, 86.0, 76.3, 77.9, 78.7, 86.8, 70.9)
presion <- c(29.18, 29.35, 29.24, 29.27, 29.78, 29.39, 29.69, 29.48, 29.09, 29.60, 29.38, 29.35, 29.63, 29.56, 29.48, 29.40, 29.28, 29.29, 29.03, 29.37)
#datos <- data.frame(oxidoNit, humedad, temperatura, presion)
#datos
length(oxidoNit)
## [1] 20
length(temperatura)
## [1] 20
length(humedad)
## [1] 20
length(presion)
## [1] 20
datos <- data.frame(oxidoNit, humedad, temperatura, presion)
datos
## oxidoNit humedad temperatura presion
## 1 0.90 72.4 76.3 29.18
## 2 0.91 41.6 70.3 29.35
## 3 0.96 34.3 77.1 29.24
## 4 0.89 35.1 68.0 29.27
## 5 1.00 10.7 79.0 29.78
## 6 1.10 12.9 67.4 29.39
## 7 1.15 8.3 66.8 29.69
## 8 1.03 20.1 76.9 29.48
## 9 0.77 72.2 77.7 29.09
## 10 1.07 24.0 67.7 29.60
## 11 1.07 23.2 76.8 29.38
## 12 0.94 47.4 86.6 29.35
## 13 1.10 31.5 76.9 29.63
## 14 1.10 10.6 86.3 29.56
## 15 1.10 11.2 86.0 29.48
## 16 0.91 73.3 76.3 29.40
## 17 0.87 75.4 77.9 29.28
## 18 0.78 96.6 78.7 29.29
## 19 0.82 107.4 86.8 29.03
## 20 0.95 54.9 70.9 29.37
summary(datos)
## oxidoNit humedad temperatura presion
## Min. :0.7700 Min. : 8.30 Min. :66.80 Min. :29.03
## 1st Qu.:0.8975 1st Qu.: 18.30 1st Qu.:70.75 1st Qu.:29.28
## Median :0.9550 Median : 34.70 Median :76.90 Median :29.38
## Mean :0.9710 Mean : 43.16 Mean :76.52 Mean :29.39
## 3rd Qu.:1.0775 3rd Qu.: 72.25 3rd Qu.:78.78 3rd Qu.:29.50
## Max. :1.1500 Max. :107.40 Max. :86.80 Max. :29.78
str(datos)
## 'data.frame': 20 obs. of 4 variables:
## $ oxidoNit : num 0.9 0.91 0.96 0.89 1 1.1 1.15 1.03 0.77 1.07 ...
## $ humedad : num 72.4 41.6 34.3 35.1 10.7 12.9 8.3 20.1 72.2 24 ...
## $ temperatura: num 76.3 70.3 77.1 68 79 67.4 66.8 76.9 77.7 67.7 ...
## $ presion : num 29.2 29.4 29.2 29.3 29.8 ...
plot(datos)
cor(x=datos, method = "pearson")
## oxidoNit humedad temperatura presion
## oxidoNit 1.0000000 -0.8773635 -0.1807651 0.7740084
## humedad -0.8773635 1.0000000 0.2535071 -0.7554882
## temperatura -0.1807651 0.2535071 1.0000000 -0.1936361
## presion 0.7740084 -0.7554882 -0.1936361 1.0000000
pairs(x=datos, lower.panel = NULL)
corrplot(corr = cor(x=datos, method = "pearson"), method = "number")
modelo <- lm(oxidoNit ~ ., data = datos)
modelo
##
## Call:
## lm(formula = oxidoNit ~ ., data = datos)
##
## Coefficients:
## (Intercept) humedad temperatura presion
## -3.5077781 -0.0026250 0.0007989 0.1541550
Ecuación de regresión lineal:
h = 50
t = 76
p = 29.30
nuevodato <- data.frame(humedad = h, temperatura = t, presion = p)
nuevodato
## humedad temperatura presion
## 1 50 76 29.3
y.predict <- predict(modelo, nuevodato)
y.predict
## 1
## 0.9384342
y.predict.2 <- modelo$coefficients[1] + modelo$coefficients[2] * h + modelo$coefficients[3] * t + modelo$coefficients[4] * p
y.predict.2
## (Intercept)
## 0.9384342
ESTIMACION: ### ¿El modelo predice bien o mal? * Verificar las las correlaciones * El coefieicnete de determinanción * Las significaciones
summary(modelo)
##
## Call:
## lm(formula = oxidoNit ~ ., data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.11799 -0.02526 0.01345 0.04103 0.06523
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.5077781 3.0048641 -1.167 0.26017
## humedad -0.0026250 0.0006549 -4.008 0.00101 **
## temperatura 0.0007989 0.0020451 0.391 0.70121
## presion 0.1541550 0.1013675 1.521 0.14784
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.05617 on 16 degrees of freedom
## Multiple R-squared: 0.8005, Adjusted R-squared: 0.763
## F-statistic: 21.4 on 3 and 16 DF, p-value: 7.609e-06
Lo primero es observar cuales datos tienen un comportamiento lineal de acuerdo a la variable que queremos medir es el oxido nitroso en este caso podemos observar que todas las variables tienen un comportamiento lineal excepto la temperatura.
La humedad y la presion tienen una correlacion alta lo cual nos permite crear un modelo de regresion lineal
Cada predicción de nuestra variable óxido nitroso tiene un margen de error del 0.05617 lo cual nos da un alto porcentaje de certeza
La variable que mas peso tiene en la cantidad de oxido nitroso es la humedad