Passo 01 - Carregamento

Aqui vou carregar as bibliotecas e a base de dados escolhida para a realização da atividade:

# PASSO 00 - Carregar bibliotecas
library(dplyr)        # operador pipe e tratamento de dados

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(flextable)    # para fazer tabela RMarkdown
library(reactable)    # para fazer tabela RMarkdown
library(RColorBrewer) # para colocar cor

# PASSO 01 - Carregar base de dados
load("C:/Users/Samsung/Desktop/01_ Pedro Henrique Miceli/01_ Escolaridade/07_ UNIRIO/02_ UNIRIO 2021.1/05_ TME0018_ Estatistica ACS/00 - Base de dados/df_pokemon.RData")
head(df)
# A tibble: 6 x 22
     id pokemon    species_id height weight base_experience type_1 type_2 attack
  <dbl> <chr>           <int>  <int>  <int>           <int> <chr>  <chr>   <int>
1     1 bulbasaur           1      7     69              64 grass  poison     49
2     2 ivysaur             2     10    130             142 grass  poison     62
3     3 venusaur            3     20   1000             236 grass  poison     82
4     4 charmander          4      6     85              62 fire   <NA>       52
5     5 charmeleon          5     11    190             142 fire   <NA>       64
6     6 charizard           6     17    905             240 fire   flying     84
# ... with 13 more variables: defense <int>, hp <int>, special_attack <int>,
#   special_defense <int>, speed <int>, color_1 <chr>, color_2 <chr>,
#   color_f <chr>, egg_group_1 <chr>, egg_group_2 <chr>, url_image <chr>,
#   x <dbl>, y <dbl>

Passo 02 - Cruzamento

Nesse segundo passo, vou realizar o cruzamento entre as variáveis escolhidas, realizando a média e o desvio-padrão solicitados:

# PASSO 02 - Cruzamento entre duas variáveis
# (Qualitativa e Quantitativa)
df %>% select(type_1,attack) %>% group_by(type_1) %>% summarise(media.ataque=mean(attack), desvio.padrao.ataque=sd(attack), quantidade=n()) %>% data.frame() %>% flextable()
FT1 <- df %>% select(type_1,attack) %>% group_by(type_1) %>% summarise(media.ataque=mean(attack), desvio.padrao.ataque=sd(attack), quantidade=n()) %>% data.frame() %>% flextable()
FT1 <- bg(FT1, bg = "#b01c1c", part = "header")
FT1 <- bg(FT1, i = ~ media.ataque < 80, bg = "#00b594", part = "body")
FT1 <- bg(FT1, i = ~ media.ataque > 80, bg = "darkgreen", part = "body")
FT1

Passo 03 - Visualização

No terceiro passo, vamos realizar a visualização das variáveis escolhidas através do Box-plot:

par(bg="#b01c1c")
boxplot(attack~type_1,data=df, main="Gráfico 1 - Média de ataque por tipo de Pokémon", col = c("darkgreen", "#3b3a3a", "tomato", "yellow", "pink", "#ffbe5c", "#ff4824", "gray", "#4a1f4a", "green", "#802f00", "#00b5b8", "white", "#8c00b3", "#a6005e", "#969696", "#4a6375", "royalblue"), vertical = TRUE)

Passo 04 - Interpretação

Nesse quarto e último passo, vamos fazer a interpretação/análise dos Boxplots dos ataques de cada tipo de pokémon.

Na Flextable, que mostra a média dos ataques, e o desvio-padrão delas, foram usadas cores para representar o pokédex (cor do cabeçalho), tipos de pokémons com médias abaixo de 80 (oitenta) com uma cor e os que tinham a média maior que 80 (oitenta) com uma outra cor.

No gráfico com os Boxplots, a cor de fundo também foi utilizada para representar o pokédex, e cada cor, de cada tipo de pokémon foi escolhida para representar da melhor forma cada tipo deles.

Com esses Boxplots podemos observar que as três maiores médias de ataque, são dos pokémons do tipo rock (pedra), ground (terra), e dragon (dragão). E que as três menores médias de ataque, mas que também possuem pokémons com ataques poderosos, são os do tipo bug (inseto), normal (com dois autiliers) e water (água).

Sobre os Outiliers, podemos observar que os pokémons dos tipos bug (inseto), dark (sombrio), dragon (dragão), electric (elétrico), fighting (lutador), fire (fogo), flying (voador), ghost (fantasma), grass (grama), ground (terra), ice (gelo), poision (venenoso), rock (pedra) e water (água), não possuem outliers, ao contrário dos tipos fairy (fada), normal, psychic (psíquico) e steel (aço) que possuem. Interessante observar que o tipo normal possui tanto um outlier de baixo poder de ataque, quanto um outro outlier de alto poder de ataque.

Nesses Boxplots podemos observar também que nenhum dos tipos de pokémons são simétricos, são todos assímétricos, uns levemente, como por exemplo o tipo normal, e outros dratiscamente, como por exemplo o tipo rock (pedra).

Conclusão

Dessa forma, podemos concluir a maior parte do que foi ensinado em aula.

. . .