Lista Final (Módulo R)

Negli Gallardo

2023-01-05

#Organizando a base de dados
dados <- na.omit(penguins) #Removendo os NAs
dados$year <- factor(dados$year)

#1. Quantas linhas e colunas existem na base de dados?

nrow(dados)
## [1] 333
ncol(dados)
## [1] 8

Resposta: A base de dados tem 333 linhas (obs.) e 8 colunas (variáveis)

#2. Calcule o mínimo, a média e o máximo do peso dos pinguins.

peso <- dados %>% 
  get_summary_stats(body_mass_g, type = "full",
                    show = c("n", "min", "mean", "max")) 
peso
## # A tibble: 1 × 5
##   variable        n   min  mean   max
##   <fct>       <dbl> <dbl> <dbl> <dbl>
## 1 body_mass_g   333  2700 4207.  6300

Resposta: o mínimo é 2700g, a média é 4207g e o máximo é 6300g.

#3. Com o aux ́ılio das fun ̧c ̃oes do pacote dplyr, fa ̧ca o que se pede: (a) Renomeie as variáveis do dataframe dados como quiser e salve no objeto dados1.

dados1 <- rename(dados, especies = species, ilha = island,  comprimento_bico_mm = bill_length_mm, 
                largura_bico_mm = bill_depth_mm,  comprimento_asa_mm = flipper_length_mm, 
                massa_corporal_g = body_mass_g, sexo = sex, ano = year)
  1. Ordene o dataframe dados1 de acordo com uma variável de sua escolha salve no objeto dados2.
dados2 <- arrange(dados1, massa_corporal_g)
  1. Filtre o dataframe dados2 para remover a espécie Gentoo e salve no objeto dados3.
dados3 <- filter(dados2, especies != "Gentoo")
table(dados3$especies)
## 
##    Adelie Chinstrap    Gentoo 
##       146        68         0
  1. Adicione uma nova coluna ao dataframe dados3 com a razão do comprimento pela profundidade (comprimento/profundidade) do bico dos pinguins e salve no objeto dados final.
dados_final <- mutate(dados3, razao = comprimento_bico_mm/largura_bico_mm)

#4. Com o auxílio da função str, identifique quais variáveis são fatores e quais são números/inteiros. #A partir disso, faça os gráficos a seguir com o auxílio do pacote ggplot2.

str(dados_final)
## tibble [214 × 9] (S3: tbl_df/tbl/data.frame)
##  $ especies           : Factor w/ 3 levels "Adelie","Chinstrap",..: 2 1 1 1 1 1 2 1 1 1 ...
##  $ ilha               : Factor w/ 3 levels "Biscoe","Dream",..: 2 1 1 1 2 3 2 1 2 2 ...
##  $ comprimento_bico_mm: num [1:214] 46.9 36.5 36.4 34.5 33.1 38.6 43.2 37.9 37 37.3 ...
##  $ largura_bico_mm    : num [1:214] 16.6 16.6 17.1 18.1 16.1 17 16.6 18.6 16.9 16.8 ...
##  $ comprimento_asa_mm : int [1:214] 192 181 184 187 178 188 187 193 185 192 ...
##  $ massa_corporal_g   : int [1:214] 2700 2850 2850 2900 2900 2900 2900 2925 3000 3000 ...
##  $ sexo               : Factor w/ 2 levels "female","male": 1 1 1 1 1 1 1 1 1 1 ...
##  $ ano                : Factor w/ 3 levels "2007","2008",..: 2 2 2 2 2 3 1 3 1 3 ...
##  $ razao              : num [1:214] 2.83 2.2 2.13 1.91 2.06 ...
##  - attr(*, "na.action")= 'omit' Named int [1:11] 4 9 10 11 12 48 179 219 257 269 ...
##   ..- attr(*, "names")= chr [1:11] "4" "9" "10" "11" ...
  1. Para as variáveis do tipo fator, faça o gráfico de barras de cada uma delas. (Nesses gráficos, espera-se que no eixo x tenhamos as categorias do fator e no eixo y a quantidade de observações para cada uma das categorias.)
ggplot(dados_final, aes((especies)))+
  geom_bar(fill = "green")+
  xlab("Espécies") +
  ylab("Contagem") + 
  ggtitle("Contagem de espécies de pássaros",
          subtitle = "nos anos de 2007, 2008 e 2009")

ggplot(dados_final, aes((ilha)))+
  geom_bar(fill = "red")+
  xlab("Ilha") +
  ylab("Contagem") + 
  ggtitle("Contagem de ilhas onde moram os pássaros")

ggplot(dados_final, aes((sexo)))+
  geom_bar(fill = "blue")+
  xlab("Sexo") +
  ylab("Contagem") + 
  ggtitle("Contagem do sexo dos pássaros")

ggplot(dados_final, aes((ano)))+
  geom_bar(fill = "orange")+
  xlab("Ano de estudo") +
  ylab("Contagem") + 
  ggtitle("Contagem dos anos de estudo dos pássaros")

  1. Para as variáveis numéricas (números e inteiros), faça o histograma de cada uma delas. (Nesses gráficos, espera-se que no eixo x tenhamos os valores das variável em questão e no eixo y a quantidade de observações nos intervalos criados pelo gráfico.)
ggplot(dados_final, aes(comprimento_bico_mm))+
  geom_histogram(fill = "green")+
  xlab("Comprimento do bico (em mm)") +
  ylab("Frequência") + 
  ggtitle("Frequência do comprimento de bico dos pássaros")

ggplot(dados_final, aes(largura_bico_mm))+
  geom_histogram(fill = "red")+
  xlab("Largura do bico (em mm)") +
  ylab("Frequência") + 
  ggtitle("Frequência da largura de bico dos pássaros")

ggplot(dados_final, aes(comprimento_asa_mm))+
  geom_histogram(fill = "blue")+
  xlab("Comprimento das asas (em mm)") +
  ylab("Frequência") + 
  ggtitle("Frequência do comprimento das asas dos pássaros")

ggplot(dados_final, aes(massa_corporal_g))+
  geom_histogram(fill = "orange")+
  xlab("Massa corporal (em g)") +
  ylab("Frequência") + 
  ggtitle("Frequência da massa corporal dos pássaros")

ggplot(dados_final, aes(razao))+
  geom_histogram(fill = "pink")+
  xlab("Razão do bico") +
  ylab("Frequência") + 
  ggtitle("Frequência da razão do bico")

#5. Explore graficamente a associação entre cada uma das variáveis do dataframe dados final com #o peso dos pinguins. (a) Faça boxplots para os fatores.

ggplot(data = dados_final, aes(x = especies, y = massa_corporal_g)) +
  geom_boxplot()

ggplot(data = dados_final, aes(x = ilha, y = massa_corporal_g)) +
  geom_boxplot()

ggplot(data = dados_final, aes(x = sexo, y = massa_corporal_g)) +
  geom_boxplot()

ggplot(data = dados_final, aes(x = ano, y = massa_corporal_g)) +
  geom_boxplot()

  1. Faça gráficos de dispersão para variáveis numéricas.
ggplot(dados_final, aes(x = comprimento_bico_mm, y = massa_corporal_g)) + 
  geom_point()

ggplot(dados_final, aes(x = largura_bico_mm, y = massa_corporal_g)) + 
  geom_point()

ggplot(dados_final, aes(x = comprimento_asa_mm, y = massa_corporal_g)) + 
  geom_point()

ggplot(dados_final, aes(x = razao, y = massa_corporal_g)) + 
  geom_point()

  1. Que variáveis parecem ter relaçãao com o peso dos pinguins?

Resposta: No caso das variáveis qualitativas (fatores), observa-se que os machos têm um peso (massa corporal) muito superior às fêmeas. No caso das demais variáveis qualitativas, elas são muito semelhantes quanto ao peso das aves. Talvez, mencionando que a espécie Adelie parece apresentar maior dispersão do que a espécie Chinstrap, pois a amplitude interquartil é maior. Já no caso das variáveis numéricas, pode-se observar alguma relação entre o peso (massa corporal) com o tamanho do bico e o tamanho da asa. Parece que com o aumento do comprimento e da largura do bico o peso da ave também aumenta. Situação semelhante ocorre com o comprimento da asa, pois seu aumento também indica um aumento no peso da ave. No entanto, acho que há uma notável dispersão entre as variáveis.

#6. A análise exploratória pode nos ajudar a escolher variáveis para compor um bom modelo de regressão #linear. Dado isso, faça o que se pede a seguir. (a) Ajuste pelo menos 3 modelos de regressão para explicar o peso dos pinguins com o auxílio da função lm.

modelo1 <- lm(dados_final$massa_corporal_g ~ dados_final$comprimento_bico_mm)
modelo1$coefficients
##                     (Intercept) dados_final$comprimento_bico_mm 
##                      2713.94877                        23.82523
summary(modelo1)
## 
## Call:
## lm(formula = dados_final$massa_corporal_g ~ dados_final$comprimento_bico_mm)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1131.35  -283.74   -42.07   245.00  1034.22 
## 
## Coefficients:
##                                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     2713.949    220.155  12.327  < 2e-16 ***
## dados_final$comprimento_bico_mm   23.825      5.197   4.584 7.78e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 416.5 on 212 degrees of freedom
## Multiple R-squared:  0.09019,    Adjusted R-squared:  0.0859 
## F-statistic: 21.02 on 1 and 212 DF,  p-value: 7.78e-06
modelo2 <- lm(dados_final$massa_corporal_g ~ dados_final$largura_bico_mm)
modelo2$coefficients
##                 (Intercept) dados_final$largura_bico_mm 
##                   -224.8454                    214.4499
summary(modelo2)
## 
## Call:
## lm(formula = dados_final$massa_corporal_g ~ dados_final$largura_bico_mm)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -838.92 -259.45  -15.82  239.78 1150.53 
## 
## Coefficients:
##                             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                  -224.85     374.61   -0.60    0.549    
## dados_final$largura_bico_mm   214.45      20.35   10.54   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 353.8 on 212 degrees of freedom
## Multiple R-squared:  0.3438, Adjusted R-squared:  0.3407 
## F-statistic: 111.1 on 1 and 212 DF,  p-value: < 2.2e-16
modelo3 <- lm(dados_final$massa_corporal_g ~ dados_final$comprimento_asa_mm)
modelo3$coefficients
##                    (Intercept) dados_final$comprimento_asa_mm 
##                    -1935.04439                       29.43803
summary(modelo3)
## 
## Call:
## lm(formula = dados_final$massa_corporal_g ~ dados_final$comprimento_asa_mm)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1017.06  -266.95    -3.38   235.38  1168.45 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    -1935.04     695.19  -2.783  0.00586 ** 
## dados_final$comprimento_asa_mm    29.44       3.62   8.133  3.5e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 381.3 on 212 degrees of freedom
## Multiple R-squared:  0.2378, Adjusted R-squared:  0.2342 
## F-statistic: 66.14 on 1 and 212 DF,  p-value: 3.495e-14
modelo4 <- lm(dados_final$massa_corporal_g ~ dados_final$comprimento_bico_mm + dados_final$largura_bico_mm
              + dados_final$comprimento_asa_mm)#Regressao linear múltipla
modelo4$coefficients
##                     (Intercept) dados_final$comprimento_bico_mm 
##                    -2972.261638                        1.697648 
##     dados_final$largura_bico_mm  dados_final$comprimento_asa_mm 
##                      170.758198                       18.125980
summary(modelo4)
## 
## Call:
## lm(formula = dados_final$massa_corporal_g ~ dados_final$comprimento_bico_mm + 
##     dados_final$largura_bico_mm + dados_final$comprimento_asa_mm)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -841.50 -221.05  -37.52  218.92 1041.40 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     -2972.262    641.751  -4.631 6.36e-06 ***
## dados_final$comprimento_bico_mm     1.698      4.823   0.352    0.725    
## dados_final$largura_bico_mm       170.758     20.761   8.225 2.03e-14 ***
## dados_final$comprimento_asa_mm     18.126      3.813   4.754 3.70e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 332.3 on 210 degrees of freedom
## Multiple R-squared:  0.4266, Adjusted R-squared:  0.4184 
## F-statistic: 52.07 on 3 and 210 DF,  p-value: < 2.2e-16
  1. Compare os modelos através da função AIC e escolha o melhor entre eles.
AIC(modelo1, modelo2, modelo3, modelo4)
##         df      AIC
## modelo1  3 3192.980
## modelo2  3 3123.062
## modelo3  3 3155.098
## modelo4  5 3098.197

Resposta: o melhor modelo é o modelo4 porque o valor AIC é o menor.

  1. Quais variáveis são boas para explicar o peso dos pinguins? (Dica: veja se o p-valor da variável é menor que 0.05 no melhor modelo da letra (c)).

Resposta: Modelos de regressão linear simples (modelo1, modelo2 e modelo3) mostram que todas as variáveis independentes (comprimento do bico, largura do bico e comprimento da asa) podem explicar o peso (massa corporal) das aves. No entanto, o modelo de regressão linear múltipla (modelo 4) mostra que o comprimento do bico não é estatisticamente significativo (p-valor = 0.725) para explicar o peso. Por isso, acredito que as melhores variáveis para explicar o peso dos pássaros são a largura do bico e o comprimento da asa.

  1. Qual a porcentagem da variável peso é explicada pelas demais no melhor modelo? (Dica: olhe para o Adjusted R-squared.)

Resposta: Consistente com a análise entre os modelos de regressão (com a função AIC), o modelo 1 é o que menos explica a variável peso (com Adjusted R-squared de 0.0859), seguido do modelo3 (com Adjusted R-squared de 0.2342), também seguido do modelo2 (com Adjusted R-squared de 0.3407) e, por último, o modelo que melhor explica nossas variáveis dependentes é o model4 (com Adjusted R-squared de 0.4184).