Datos de calidad del aire.

En este documento trataremos de explorar el dataset airquality para entender las causas de los problemas de la calidad del aire.

Exploración de datos.

Primero cargamos las librerías y datos que vamos a utilizar.

library(dplyr)
library(ggplot2)
library(car)
data("airquality")

Segundo, decidimos explorar los datos y ver qué formatos tienen.

View(airquality)

## Gráfica viento vs ozone
ggplot(data = airquality, aes(x =Wind,  y =Ozone)) +
  geom_point()
## Warning: Removed 37 rows containing missing values or values outside the scale range
## (`geom_point()`).

## Relación temperatura y ozono
aire_df <- airquality %>%
  group_by(Temp) %>%
  summarise(ozone_prom  = mean(Ozone, na.rm = T))

ggplot(data = aire_df, aes(x = Temp, y = ozone_prom)) +
  geom_point(alpha = 0.3) +
  labs(title = "Temperatura vs Ozono de todo el año",
       x = "temp",
       y = "ozono promedio")
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).

## Que meses tiene más temp

temp_mes <- airquality %>% 
              group_by(Month) %>%
              summarise(promedio_temp = mean(Temp, na.rm = T))

plot(temp_mes$Month, temp_mes$promedio_temp, type = "l")

Hipótesis.

  1. Cuando hay más viento (mph) en el aeropuerto de LGA, la cantidad de contaminación baja medida en ozono promedio, particulas por billón.

  2. Etc.

  3. Etc.

Construyendo un modelo

Como tercer paso, para construir un modelo se establecerán las variables que definirán la relación entre la cantidad observada de viento (mph) y la cantidad de contaminación (Ozone).

Se va a construir un modelo de regresión lineal simple. Donde utilizaremos la variable viento (mph) para explicar la variable Ozone.

\(Y = B0 + B1*X1 + e\)

En este caso nuestra variable Y es Ozone y la variable X Viento.

\(Ozone?1timade = B0 + Viento * Coef B1 + e\)

# y = airquality$Ozone
# x = airquality$Wind

modelo <- lm(data = airquality, 
              formula = Ozone ~ Wind)

summary(modelo)
## 
## Call:
## lm(formula = Ozone ~ Wind, data = airquality)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -51.572 -18.854  -4.868  15.234  90.000 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  96.8729     7.2387   13.38  < 2e-16 ***
## Wind         -5.5509     0.6904   -8.04 9.27e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 26.47 on 114 degrees of freedom
##   (37 observations deleted due to missingness)
## Multiple R-squared:  0.3619, Adjusted R-squared:  0.3563 
## F-statistic: 64.64 on 1 and 114 DF,  p-value: 9.272e-13

Efectivamente a mayor velocidad del viento en mph, se reducen la contaminación medida en ozono (ppb). Esto debido a que mi modelo, contiene un p-value < 0.05 mi hipótesis alternativa se acepta.

car::scatterplot(data = airquality,
            Ozone ~ Wind,
            smooth = FALSE)