Hoje iremos analisar a base de dados “df-pokemon.RData”

Carregar dos dados:

library(flextable)
## Warning: pacote 'flextable' foi compilado no R versão 4.4.1
library(dplyr)
## Warning: pacote 'dplyr' foi compilado no R versão 4.4.1
## 
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
## 
##     filter, lag
## Os seguintes objetos são mascarados por 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readr)
## Warning: pacote 'readr' foi compilado no R versão 4.4.1
library(readr)
df_pokemon <- read_csv("df_pokemon.csv")
## Rows: 718 Columns: 22
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (9): pokemon, type_1, type_2, color_1, color_2, color_f, egg_group_1, e...
## dbl (13): id, species_id, height, weight, base_experience, attack, defense, ...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Analisar a base de dados para verificar possiveis erros:

str(df_pokemon)
## spc_tbl_ [718 × 22] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ id             : num [1:718] 1 2 3 4 5 6 7 8 9 10 ...
##  $ pokemon        : chr [1:718] "bulbasaur" "ivysaur" "venusaur" "charmander" ...
##  $ species_id     : num [1:718] 1 2 3 4 5 6 7 8 9 10 ...
##  $ height         : num [1:718] 7 10 20 6 11 17 5 10 16 3 ...
##  $ weight         : num [1:718] 69 130 1000 85 190 905 90 225 855 29 ...
##  $ base_experience: num [1:718] 64 142 236 62 142 240 63 142 239 39 ...
##  $ type_1         : chr [1:718] "grass" "grass" "grass" "fire" ...
##  $ type_2         : chr [1:718] "poison" "poison" "poison" NA ...
##  $ attack         : num [1:718] 49 62 82 52 64 84 48 63 83 30 ...
##  $ defense        : num [1:718] 49 63 83 43 58 78 65 80 100 35 ...
##  $ hp             : num [1:718] 45 60 80 39 58 78 44 59 79 45 ...
##  $ special_attack : num [1:718] 65 80 100 60 80 109 50 65 85 20 ...
##  $ special_defense: num [1:718] 65 80 100 50 65 85 64 80 105 20 ...
##  $ speed          : num [1:718] 45 60 80 65 80 100 43 58 78 45 ...
##  $ color_1        : chr [1:718] "#78C850" "#78C850" "#78C850" "#F08030" ...
##  $ color_2        : chr [1:718] "#A040A0" "#A040A0" "#A040A0" NA ...
##  $ color_f        : chr [1:718] "#81A763" "#81A763" "#81A763" "#F08030" ...
##  $ egg_group_1    : chr [1:718] "monster" "monster" "monster" "monster" ...
##  $ egg_group_2    : chr [1:718] "plant" "plant" "plant" "dragon" ...
##  $ url_image      : chr [1:718] "1.png" "2.png" "3.png" "4.png" ...
##  $ x              : num [1:718] 32.8 33.3 33.9 -24.4 -24.6 ...
##  $ y              : num [1:718] 17.2 16.7 16.2 30.8 30.6 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   id = col_double(),
##   ..   pokemon = col_character(),
##   ..   species_id = col_double(),
##   ..   height = col_double(),
##   ..   weight = col_double(),
##   ..   base_experience = col_double(),
##   ..   type_1 = col_character(),
##   ..   type_2 = col_character(),
##   ..   attack = col_double(),
##   ..   defense = col_double(),
##   ..   hp = col_double(),
##   ..   special_attack = col_double(),
##   ..   special_defense = col_double(),
##   ..   speed = col_double(),
##   ..   color_1 = col_character(),
##   ..   color_2 = col_character(),
##   ..   color_f = col_character(),
##   ..   egg_group_1 = col_character(),
##   ..   egg_group_2 = col_character(),
##   ..   url_image = col_character(),
##   ..   x = col_double(),
##   ..   y = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>
summary((df_pokemon))
##        id          pokemon            species_id        height      
##  Min.   :  1.0   Length:718         Min.   :  1.0   Min.   :  1.00  
##  1st Qu.:180.2   Class :character   1st Qu.:180.2   1st Qu.:  6.00  
##  Median :359.5   Mode  :character   Median :359.5   Median : 10.00  
##  Mean   :359.5                      Mean   :359.5   Mean   : 11.41  
##  3rd Qu.:538.8                      3rd Qu.:538.8   3rd Qu.: 14.00  
##  Max.   :718.0                      Max.   :718.0   Max.   :145.00  
##      weight       base_experience     type_1             type_2         
##  Min.   :   1.0   Min.   : 36.00   Length:718         Length:718        
##  1st Qu.:  95.0   1st Qu.: 65.25   Class :character   Class :character  
##  Median : 280.0   Median :147.00   Mode  :character   Mode  :character  
##  Mean   : 568.2   Mean   :141.55                                        
##  3rd Qu.: 609.5   3rd Qu.:177.00                                        
##  Max.   :9500.0   Max.   :608.00                                        
##      attack          defense             hp         special_attack  
##  Min.   :  5.00   Min.   :  5.00   Min.   :  1.00   Min.   : 10.00  
##  1st Qu.: 53.00   1st Qu.: 50.00   1st Qu.: 50.00   1st Qu.: 45.00  
##  Median : 73.00   Median : 65.00   Median : 65.00   Median : 65.00  
##  Mean   : 74.85   Mean   : 70.67   Mean   : 68.37   Mean   : 68.47  
##  3rd Qu.: 95.00   3rd Qu.: 85.00   3rd Qu.: 80.00   3rd Qu.: 90.00  
##  Max.   :165.00   Max.   :230.00   Max.   :255.00   Max.   :154.00  
##  special_defense      speed          color_1            color_2         
##  Min.   : 20.00   Min.   :  5.00   Length:718         Length:718        
##  1st Qu.: 50.00   1st Qu.: 45.00   Class :character   Class :character  
##  Median : 65.00   Median : 65.00   Mode  :character   Mode  :character  
##  Mean   : 69.09   Mean   : 65.72                                        
##  3rd Qu.: 85.00   3rd Qu.: 85.00                                        
##  Max.   :230.00   Max.   :160.00                                        
##    color_f          egg_group_1        egg_group_2         url_image        
##  Length:718         Length:718         Length:718         Length:718        
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##        x                 y          
##  Min.   :-49.152   Min.   :-45.793  
##  1st Qu.:-17.695   1st Qu.:-17.293  
##  Median :  0.705   Median : -0.628  
##  Mean   :  0.000   Mean   :  0.000  
##  3rd Qu.: 15.905   3rd Qu.: 18.155  
##  Max.   : 53.142   Max.   : 46.593

Media, Mediana, Desvio Padrão:

df_pokemon %>% group_by(type_1) %>% summarise(minimo=min(base_experience),
                                                        quartil1 = quantile(base_experience, probs = 0.25), 
                                                        mediana=median(base_experience),
                                                        quartil3 = quantile(base_experience, probs = 0.75),
                                                        máximo=max(base_experience)) %>%
flextable()

type_1

minimo

quartil1

mediana

quartil3

máximo

bug

39

61.00

134.0

167.50

270

dark

44

69.50

151.5

177.50

306

dragon

60

144.00

207.5

270.00

306

electric

41

70.50

150.5

192.50

261

fairy

44

68.00

142.0

184.00

306

fighting

42

61.00

159.0

166.00

227

fire

50

70.75

153.5

191.50

306

flying

49

118.00

187.0

224.00

261

ghost

55

64.50

159.0

173.00

306

grass

36

64.00

142.0

183.50

270

ground

53

66.00

145.5

177.25

302

ice

50

61.00

159.0

182.00

261

normal

38

62.00

144.0

169.00

608

poison

49

64.75

140.5

172.00

241

psychic

40

66.25

162.0

231.00

306

rock

56

71.00

140.5

173.50

270

steel

60

136.50

164.0

237.75

306

water

40

65.00

151.0

175.00

306

Gráfico boxplot:

library(ggplot2)
## Warning: pacote 'ggplot2' foi compilado no R versão 4.4.1
ggplot(df_pokemon, aes(x = type_1, y = base_experience)) +
  geom_boxplot() +
  labs(
    title = "Média de Experiência Base por Tipo de Pokémon",
    x = "Tipo de Pokémon",
    y = "Experiência"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Diagrama de dispersão:

ggplot(df_pokemon, aes(x = type_1, y = base_experience)) +
  geom_point(color = "sienna", alpha = 0.8) +
  labs(
    title = "Tipo Pokemon vs Experiência",
    x = "Tipo de Pokemon",
    y = "Experiência"
  ) +
  theme_minimal()

Correlação:

library(corrplot)
## Warning: pacote 'corrplot' foi compilado no R versão 4.4.1
## corrplot 0.95 loaded
M <- cor(df_pokemon[c("height","weight","base_experience", "attack","defense","hp","special_attack", "special_defense", "speed")])
corrplot(M, method="circle")

corrplot(M, method="color")

col3 <- colorRampPalette(c("red", "black", "yellow"))
corrplot(M, order="hclust", addrect=2, col=col3(20))

Analise mais detalhada de cada tabela e gráfico:

Tipos de Pokémons com Baixa Experiência Base

Para tipos como Bug e Normal, a experiência base mínima é relativamente baixa (39 e 38, respectivamente), indicando que esses tipos contêm alguns dos Pokémons com menor experiência base. O valor da mediana para o tipo Bug é de 134 e para Normal, 144, o que significa que esses tipos tendem a ter uma experiência base mais reduzida quando comparados com tipos como Dragon ou Psychic. Esses tipos apresentam uma menor dispersão entre os valores mínimo e máximo, o que indica uma distribuição mais concentrada em torno de valores médios de experiência.

Tipos de Pokémons com Alta Experiência Base

Tipos como Dragon, Flying e Psychic possuem valores medianos de experiência elevados (207,5, 187,0 e 162,0, respectivamente), com valores máximos chegando a 306. Esses tipos incluem Pokémons de categorias mais fortes e evoluídas, refletindo criaturas que são mais difíceis de derrotar e que, por isso, oferecem uma experiência base mais alta. A alta experiência máxima nesses tipos indica que eles incluem Pokémons lendários ou poderosos, que são altamente valorizados em batalhas e possuem uma ampla variação de valores de experiência base.

Tipos de Pokémons com Experiência Base Moderada e Variabilidade

Tipos como Grass, Electric e Water têm valores medianos de experiência base entre 140 e 160, indicando que eles possuem uma experiência base moderada, e são comuns em termos de crescimento de experiência. Esses tipos mostram uma variabilidade considerável (exemplo: Grass, com mínimo de 36 e máximo de 270), refletindo uma gama de espécies que inclui tanto Pokémons iniciais quanto evoluídos. A variação moderada entre os quartis sugere que esses tipos são equilibrados em termos de crescimento de experiência, e são adequados tanto para iniciantes quanto para jogadores que buscam treinar para níveis mais altos.

Gráfico Boxplot: Distribuição do Peso dos Pokémons por Tipo

O boxplot de experiência base por tipo de Pokémon apresenta as distribuições de experiência base atribuídas a cada tipo. Esse gráfico é útil para comparar como a experiência varia entre os diferentes tipos de Pokémon e identificar quais tipos possuem maior experiência média, como “Dragão” e “Psíquico”, que geralmente possuem valores medianos mais altos. Essa informação pode ser relevante para jogadores que buscam treinamentos mais rápidos e ganhos de experiência ao utilizar Pokémons desses tipos.

Além disso, o boxplot revela a amplitude interquartil de cada tipo, destacando a variabilidade da experiência base. Tipos como “Inseto” e “Normal” tendem a ter experiência base mais baixa e menos variabilidade, enquanto “Dragão” e “Fada” possuem maior amplitude, indicando que esses tipos possuem espécies com uma ampla gama de níveis de experiência base. Esse comportamento pode ser uma vantagem estratégica em batalhas, pois a experiência base influencia diretamente o crescimento e desenvolvimento de cada Pokémon.

Valores atípicos no gráfico representam Pokémons com experiência base significativamente diferente da maioria dentro do mesmo tipo. Estes outliers são frequentemente espécies lendárias ou raras, com experiência elevada em relação aos demais. Essa variabilidade entre e dentro dos tipos ressalta a diversidade dos Pokémons e a complexidade ao traçar estratégias de batalha ou seleção de equipe.

Gráfico de dispersão

Tipos de Pokémon com Baixa Experiência

Para tipos como Bug e Normal, a experiência base mínima é relativamente baixa, com pontos concentrados nas faixas mais baixas do gráfico, indicando que esses tipos incluem Pokémon com menor experiência. No gráfico, é possível observar que a maioria dos Pokémon nesses tipos possui uma experiência baixa e está concentrada em torno de um valor mediano, o que sugere uma experiência mais uniforme e reduzida quando comparada a tipos de Pokémon mais fortes, como Dragon ou Psychic.

Tipos de Pokémon com Alta Experiência

Os tipos como Dragon, Flying e Psychic possuem valores mais altos de experiência, com alguns pontos próximos do topo do eixo Y. Esses tipos parecem incluir Pokémon mais poderosos, que oferecem maior experiência ao serem derrotados. A presença de valores altos indica que eles provavelmente incluem Pokémon raros ou lendários, que tendem a ser mais desafiadores e recompensadores em termos de experiência.

Tipos de Pokémon com Experiência Moderada e Variabilidade

Tipos como Grass, Electric e Water mostram uma experiência base moderada no gráfico. Eles possuem uma ampla distribuição de pontos, com variabilidade considerável, o que indica a presença de Pokémon de várias fases evolutivas, desde iniciais até evoluídos. A dispersão dos pontos reflete uma gama de Pokémon diversificada em termos de experiência, tornando-os tipos adequados tanto para jogadores iniciantes quanto para aqueles que buscam treiná-los para níveis mais altos.

Meu pokemon favorito: