#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)- Ordene o dataframe dados1 de acordo com uma variável de sua escolha salve no objeto dados2.
dados2 <- arrange(dados1, massa_corporal_g)- 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
- 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" ...
- 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")- 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()- 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()- 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
- 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.
- 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.
- 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).