Dados:

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(flextable)
## Warning: pacote 'flextable' foi compilado no R versão 4.4.1
library(readr)
## Warning: pacote 'readr' foi compilado no R versão 4.4.1
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.

Verificar se há erros na base de dados:

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

MÉDIA, MEDIANA E 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() %>% theme_vader() 

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 DE 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 = "red", 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("blue", "black", "green"))
corrplot(M, order="hclust", addrect=2, col=col3(20))

Análise de Tabela e Gráfico:

Gráfico de BoxPlot: O boxplot de experiência base por tipo de Pokémon destaca a diversidade dos valores de experiência dentro de cada tipo de pokemon e entre eles mesmos. Os valores fora do padrão chamam atenção porque geralmente representam pokemons raros ou lendários, com experiências muito acima da média. Esses valores fora do padrão ajudam a entender os níveis de estratégias e escolhas ao montar uma equipe ou planejar batalhas.

O gráfico também revela o quanto os valores variam dentro de cada tipo. Tipos como Dragon e Fairy apresentam uma grande amplitude, mostrando espécies com experiências bem diferentes entre si, enquanto Bug e Normal têm menos variabilidade e experiências base mais baixas. Essa variação pode ser uma vantagem estratégica, já que a experiência base é essencial para o crescimento de cada Pokémon.

Por fim, o boxplot facilita a comparação entre os tipos, destacando aqueles com maiores valores médios, como Dragon e Psychic. Para quem quer treinar rápido e ganhar experiência de forma eficiente, esses tipos são boas opções.

Dispersão:

Gráfico de Dispersão de Pokemons com Baixa Experiência:

Os tipos Dragon, Flying e Psychic se destacam por possuir altos valores de experiência, com vários pontos posicionados na parte superior do eixo Y. Esses valores sugerem que esses tipos incluem Pokémon mais fortes, capazes de oferecer mais experiência ao serem derrotados. Além disso, a presença de valores elevados indica a provável inclusão de Pokémon raros ou lendários, conhecidos por serem desafiadores e altamente recompensadores em experiência.

Gráfico de Dispersão de Pokemons com baixa Experiência:

Os tipos que apresentam valores mínimos de experiência base relativamente baixos são os Normal e Bug, com a maioria dos pontos concentrados nas faixas inferiores do gráfico. Mostrando que esses tipos tem grande parte de Pokemons com menor experiência. No gráfico, percebe-se que a experiência desses Pokemon é mais constante e se mantém próxima de uma mediana reduzida, diferente dos tipos mais poderosos, como Dragon e Psychic, que possuem valores bem maiores.

Pokémons:

Experiência Base Alta: Os tipos Dragon, Flying e Psychic são os 3 tipos de pokemon com mediana maior. Os três tem valoe máximo igual a 306 e mediana respectivas: 207, 187 162. Possuem os Pokémons mais fortes e difíceis de derrotar, portanto oferecem uma experiência base mais alta. A alta experiência indica que são pokémons lendários ou quase muito valiosos para batalhas.

Experiência Base Baixa: Os tipos de Pokémon Bug, Normal e Water apresentam alguns pokemon com as menores taxas de experiência base, que não ultrapassa 40. Tipo Bug, Normal e Water tem mediana respectivas de 134, 144, 151.

Ou seja, tem experiência base pior comparado com outros tipos como Dragon, Flying e Psychic que tem base alta. Apresentam uma menor grau de dispersão entre os valores mínimo e máximo, o que mostra uma concentração na distribuição de valores médios de experiência.