Pergunta da pesquisa: O que afeta a qualidade do ar? E como?

Pacote: Ecdat

#install.packages("Ecdat")
library(Ecdat)
## Warning: package 'Ecdat' was built under R version 4.0.5
## Loading required package: Ecfun
## Warning: package 'Ecfun' was built under R version 4.0.5
## 
## Attaching package: 'Ecfun'
## The following object is masked from 'package:base':
## 
##     sign
## 
## Attaching package: 'Ecdat'
## The following object is masked from 'package:datasets':
## 
##     Orange
data(Airq) # Carregando banco de dados
names(Airq)
## [1] "airq" "vala" "rain" "coas" "dens" "medi"

Descrevendo as váriaveis

Variavel resposta: Aquela que vai sofrer influência com as demais variáveis Airq = Indice de qualidade do ar (quanto menor, melhor)

Variaveis Explicativas: Ajudam a explicar a variação da variável resposta Vala = Valor das empresas nas cidades (milhares de dólares) Rain = Quantidade de chuva (em polegadas) Coas = Posição costeria da cidade (sim ou não) Dens = Densidade Populacional (milha quadrada) Medi = Renda Média per capita (Dólares)

Análise descritiva ou exploratória

summary(Airq)
##       airq            vala              rain        coas         dens        
##  Min.   : 59.0   Min.   :  992.9   Min.   :12.63   no : 9   Min.   :  271.6  
##  1st Qu.: 81.0   1st Qu.: 1535.8   1st Qu.:31.02   yes:21   1st Qu.:  365.2  
##  Median :114.0   Median : 2629.8   Median :36.66            Median :  796.2  
##  Mean   :104.7   Mean   : 4188.5   Mean   :36.08            Mean   : 1728.6  
##  3rd Qu.:126.2   3rd Qu.: 4141.4   3rd Qu.:42.70            3rd Qu.: 1635.2  
##  Max.   :165.0   Max.   :19733.8   Max.   :68.13            Max.   :12957.5  
##       medi      
##  Min.   :  853  
##  1st Qu.: 3340  
##  Median : 4858  
##  Mean   : 9477  
##  3rd Qu.: 8715  
##  Max.   :59460

As varíaveis podem ser contínuas ou categóricas

Visualização gráfica da qualidade do ar em função da variável vala

plot(airq~vala, data=Airq)

Montando Modelo: Simple

1) Regressão Linear: Quando se tem duas variáveis contínuos no modelo

Quando montamos o modelo, o que mais esperamos é encontrar o valor de p, que indica a significância do modelo ou variável

Se p-valor for menor que 0.05 quer dizer que a variável explicativa influência a variável resposta Se p-valor for maior que 0.05 que dizer que a variável explicativa não influencia de maneira significativa a variável resposta

O valor das empresas nas cidades (milhares de dólares) influencia na qualidade do ar?

m1 <- lm(airq~vala, data = Airq)
m1
## 
## Call:
## lm(formula = airq ~ vala, data = Airq)
## 
## Coefficients:
## (Intercept)         vala  
##   96.451419     0.001969
summary(m1)
## 
## Call:
## lm(formula = airq ~ vala, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -44.970 -22.002   7.228  20.774  60.361 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 96.451419   6.691801  14.413 1.76e-14 ***
## vala         0.001969   0.001082   1.821   0.0794 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 26.97 on 28 degrees of freedom
## Multiple R-squared:  0.1058, Adjusted R-squared:  0.07391 
## F-statistic: 3.314 on 1 and 28 DF,  p-value: 0.07938

Como o p-valor foi 0.07 (maior que 0.05), podemos afirmar a variável valor das empresas não influência na qualidade do ar

A posição costeria da cidade (sim ou não) influência na qualidade do ar?

(Tentar nova varíavel explicativa, dessa vez a variável é categórica)

m2 <- lm(airq~coas, data = Airq)
summary(m2)
## 
## Call:
## lm(formula = airq ~ coas, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -36.857 -15.726  -6.333  17.167  69.143 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  125.333      8.288  15.123 5.32e-15 ***
## coasyes      -29.476      9.906  -2.976  0.00596 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 24.86 on 28 degrees of freedom
## Multiple R-squared:  0.2403, Adjusted R-squared:  0.2131 
## F-statistic: 8.855 on 1 and 28 DF,  p-value: 0.005965

Como o resultado foi 0.005 indica que é significativa, pois p valor é menor que 0.05. Isso indica que a variável de posição costeira da cidade influência a qualidade do ar das cidades.

Visualização gráfica da influência das variáveis

plot(airq~coas, data = Airq)

O boxplot indicam que as variáveis que estão mais próximas das cidades costerias apresentam melhor qualidade do ar, do que aquelas que não estão na posição costeira. Quanto menor o indice, melhor a qualidade do ar.Pode ter algo nas cidades costerias (ex.correntes de ar que justificam melhor a qualidade de ar)

Depois de ter visto como funciona, fazer o modelo de regressão para todas as varíaveis explicativas

A Quantidade de chuva (em polegadas) influencia na qualidade do ar?

m3 <- lm(airq~rain, data = Airq)
summary(m3)
## 
## Call:
## lm(formula = airq ~ rain, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -46.648 -24.679   9.367  21.734  60.303 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 106.6662    15.0895   7.069 1.09e-07 ***
## rain         -0.0545     0.3926  -0.139    0.891    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.51 on 28 degrees of freedom
## Multiple R-squared:  0.0006878,  Adjusted R-squared:  -0.035 
## F-statistic: 0.01927 on 1 and 28 DF,  p-value: 0.8906

O resultado foi 0.891, isso indica que a variável não influencia

A densidade Populacional (milha quadrada) influência na qualidade do ar?

m4 <- lm(airq~dens, data = Airq)
summary(m4)
## 
## Call:
## lm(formula = airq ~ dens, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -46.051 -24.248   8.847  22.365  59.937 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.054e+02  6.128e+00  17.195   <2e-16 ***
## dens        -3.857e-04  1.872e-03  -0.206    0.838    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.5 on 28 degrees of freedom
## Multiple R-squared:  0.001514,   Adjusted R-squared:  -0.03415 
## F-statistic: 0.04246 on 1 and 28 DF,  p-value: 0.8382

O resultado de p-valor foi de 0.838 e isso indica que a varíavel densidade populacional não influência na qualidade do ar

A renda Média per capita (Dólares) influência na qualidade do ar?

m5 <- lm(airq~medi, data = Airq)
summary(m5)
## 
## Call:
## lm(formula = airq ~ medi, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -49.214 -21.358   5.696  19.247  60.410 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 9.936e+01  6.365e+00  15.609  2.4e-15 ***
## medi        5.638e-04  4.102e-04   1.374     0.18    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 27.61 on 28 degrees of freedom
## Multiple R-squared:  0.0632, Adjusted R-squared:  0.02975 
## F-statistic: 1.889 on 1 and 28 DF,  p-value: 0.1802

O resultado do valor de p foi de 0.18 e isso indica que a Renda Média per capita não influência na qualidade do ar

Reta de Modelo de Regressão Linear

Normalmente, vou colocar a reta quando há influência entre a varíavel explicativa e a variável resposta, porém, posso colocar quando não há significância também

Fazendo a reta de Regressão Linear

Modelo 1: Vala (Não significativo)

m1 <- lm(airq~vala, data = Airq)
summary(m1)
## 
## Call:
## lm(formula = airq ~ vala, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -44.970 -22.002   7.228  20.774  60.361 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 96.451419   6.691801  14.413 1.76e-14 ***
## vala         0.001969   0.001082   1.821   0.0794 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 26.97 on 28 degrees of freedom
## Multiple R-squared:  0.1058, Adjusted R-squared:  0.07391 
## F-statistic: 3.314 on 1 and 28 DF,  p-value: 0.07938

Para fazer a reta vou usar a função curve (que pode fazer tanto reta como curva, dependendo dos dados que tenho) e preciso pegar os valores do intercepto (96.451419) e da varíavel vala (0.001969)

plot(airq~vala, data = Airq)
curve(96.451419+0.001969*x, add = TRUE)

Melhorando o gráfico

plot(airq~vala, data = Airq, 
     xlab = "Valor das empresas",
     ylab = "Qualidade do ar",
     pch = 16,
     col = "blue",
     main = "Valor das empresas e qualidade do ar",
     cex.lab = 1.5,
     ylim = c(50, 180),
     xlim = c(1000, 20000))

curve(96.451419+0.001969*x, add = TRUE,
      col = "red",
      lwd = 2,
      lty = 2)

Modelo 5: Dens (Não significativo)

m5<-lm(airq~dens, data=Airq)
summary(m5)
## 
## Call:
## lm(formula = airq ~ dens, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -46.051 -24.248   8.847  22.365  59.937 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.054e+02  6.128e+00  17.195   <2e-16 ***
## dens        -3.857e-04  1.872e-03  -0.206    0.838    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.5 on 28 degrees of freedom
## Multiple R-squared:  0.001514,   Adjusted R-squared:  -0.03415 
## F-statistic: 0.04246 on 1 and 28 DF,  p-value: 0.8382
plot(airq~dens, data = Airq,
     xlab="Densidade Populacional",
     ylab="Qualidade do Ar",
     main = "Densidade Populacional e Qualidade do ar",
     pch=16,
     col="yellow",
     cex.lab = 1.5
     )
curve(1.054e+02+(-3.857e-04)*x, add = TRUE,
      lwd = 2,
      lty = 3, 
      col= "red")

Modelo 2: Coas (Significativo)

m2 <- lm(airq~coas, data = Airq)
summary(m2)
## 
## Call:
## lm(formula = airq ~ coas, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -36.857 -15.726  -6.333  17.167  69.143 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  125.333      8.288  15.123 5.32e-15 ***
## coasyes      -29.476      9.906  -2.976  0.00596 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 24.86 on 28 degrees of freedom
## Multiple R-squared:  0.2403, Adjusted R-squared:  0.2131 
## F-statistic: 8.855 on 1 and 28 DF,  p-value: 0.005965
plot(airq~coas, data = Airq,
     xlab="Cidade Costeira",
     ylab="Qualidade do Ar",
     main = "Cidade Costeira e Qualidade do ar",
     pch=16,
     col="green",
     cex.lab = 1.5
     )
curve(125.333+(-29.476)*x, add = TRUE,
      lwd = 2,
      lty = 3, 
      col= "red")

Modelo de Regressão Multiplia

Utilizo mais de uma variável explicativa para ver se elas influenciam a variável resposta

modreg1 <- lm(airq~vala+coas, data = Airq)
summary(modreg1) # Como coas é uma variável categórica, note que o R traz o valor de Coas somente para a categoria YES
## 
## Call:
## lm(formula = airq ~ vala + coas, data = Airq)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -36.056 -13.349  -5.879  12.785  69.265 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.171e+02  8.717e+00  13.434  1.8e-13 ***
## vala         1.999e-03  9.397e-04   2.128  0.04264 *  
## coasyes     -2.968e+01  9.336e+00  -3.179  0.00369 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.43 on 27 degrees of freedom
## Multiple R-squared:  0.3494, Adjusted R-squared:  0.3012 
## F-statistic: 7.249 on 2 and 27 DF,  p-value: 0.003021

Ao fazer a regressão linear com mais de uma variável explicativa, houve a modificação do valor de p, assim, antes no modelo de regressão simples as variáveis explicativas não apresentavam influencia na variável resposta, porém agora, o valor de p indica que a influencia delas é significativas.

Plotando o gráfico

plot(airq~vala, data = Airq,
     xlab = "Valor das empresas",
     ylab = "Qualidade do Ar",
     main = "Regressão Linear Multipla",
     cex.lab = 1.3
     ) #Ploto o gráfico somente em relação a variável contínua

curve(1.171e+02+1.999e-03*x, 
      add = TRUE,
      col = "blue",
      lwd = 2
      ) #Faço a reta em relação a variável conntínua, isso indica o valor da cidade não costeira

curve(1.171e+02+1.999e-03*x+-2.968e+01, 
      add = TRUE,
      lty = 2,
      col = "red",
      lwd = 2
      ) #A reta em relação a coas, indica o valor da diade costeira

legend("bottomright", 
       c("Cidades Não-Costeiras", "Cidades Costeiras"),
       pch = 1,
       lty = c(1,2), #Coloca o tipo de linha na legenda
       bty = "n", #Tirar a linha da legenda
       col = c("blue", "red") #cor da legenda
       )

Assim, a qualidade do ar é influenciada pelo valor das empresas e o fato da cidade ser costeira ou não. As cidades não-costeiras apresentam qualidade do ar pior que as cidades não costeiras

Trabalhando 3 variáveis explicativas

modreg2 <- lm(airq~vala+coas+dens, data = Airq)
summary(modreg2)
## 
## Call:
## lm(formula = airq ~ vala + coas + dens, data = Airq)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -36.46 -12.83  -6.34  12.70  68.42 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.183e+02  9.066e+00  13.046 6.43e-13 ***
## vala         2.086e-03  9.638e-04   2.165  0.03977 *  
## coasyes     -2.966e+01  9.454e+00  -3.137  0.00421 ** 
## dens        -9.005e-04  1.578e-03  -0.571  0.57317    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.73 on 26 degrees of freedom
## Multiple R-squared:  0.3574, Adjusted R-squared:  0.2833 
## F-statistic:  4.82 on 3 and 26 DF,  p-value: 0.008454

Ao analisar o resultado, percebo que a variável que inclui de densidade não exerce influência na qualidade do ar, porém ao acrescentar ela na regressão linear houve modificação dos valores de p das outras duas variáveis, ou seja, apesar da variável “dens” não ser significativa para qualidade do ar, ela exerce influência nas outras variáveis explicativas

Contraste de Modelos

Posso comparar os dois modelos que fiz anteriormente para saber se a inclusão da variável “dens” foi significativa, caso não seja posso retirar ela e deixar o modelo de maneira mais simples com somente duas variáveis.

Se p>0.05 -> Indica que não diferença entre os modelos, assim eu posso continuar com o modelo mais simples que só tem duas variáveis Se p<0.05 -> Isso indicaq eu há diferença entre os modelos e a nova variável deve ser mantida

Para fazer a diferença de variancia entre as duas, eu utilizo a função Anova

modreg1 <- lm(airq~vala+coas, data = Airq) #Duas Variáveis explicativas
modreg2 <- lm(airq~vala+coas+dens, data = Airq) # Três Variáveis explicativas

#Será a inclusão de "dens" exerce influência no modelo de regressão linear?

anova(modreg1, modreg2)
## Analysis of Variance Table
## 
## Model 1: airq ~ vala + coas
## Model 2: airq ~ vala + coas + dens
##   Res.Df   RSS Df Sum of Sq      F Pr(>F)
## 1     27 14823                           
## 2     26 14640  1    183.33 0.3256 0.5732

Como o valor de p foi 0.5732, isso indica que a inclusão da variável de densidade populacional não exerce influência e por isso, posso retirá-la para deixar o modelo mais simples

Conclusão

As variáveis que afetaram a qualidade do ar foram: valor das empresas e posição costeira das cidades. Quanto maior o valor das empresas, pior a qualidade do ar. Cidades costeiras apresentam uma melhor qualidade do ar.