Hoje iremos analisar a base de dados “df-pokemon.RData”
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
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 |
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))
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))
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 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 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.
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.
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.