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
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:
correlacao <- cor(df_pokemon$height, df_pokemon$weight, use = "complete.obs")
print(correlacao)
## [1] 0.6465813
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.