html_document:
    keep_md: true
knitr:
  opts_knit:
    root.dir: "~/Base_de_dados-master/df_pokemon.RData"

##Atividade 2 - Estatística

Carregar pacotes necessários

library(dplyr)
## Warning: pacote 'dplyr' foi compilado no R versão 4.4.2
## 
## 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(ggplot2)

1. Abrindo a base de dados

load("~/Base_de_dados-master/df_pokemon.RData")  # Carregar a base de dados
head(df)  # Visualizar as primeiras linhas da base
## # A tibble: 6 × 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
## # ℹ 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>

Escolha de variáveis:

Variável quantitativa: “attack” (dano de ataque dos Pokémon)

Variável qualitativa: “type_1” (primeiro tipo do Pokémon)

2. Resumo estatístico (por grupos de “type_1”)

resumo <- df %>%
  group_by(type_1) %>%
  summarise(
    media = mean(attack, na.rm = TRUE),
    mediana = median(attack, na.rm = TRUE),
    desvio_padrao = sd(attack, na.rm = TRUE),
    primeiro_quartil = quantile(attack, 0.25, na.rm = TRUE),
    terceiro_quartil = quantile(attack, 0.75, na.rm = TRUE),
    minimo = min(attack, na.rm = TRUE),
    maximo = max(attack, na.rm = TRUE),
    total = n()
  )

Visualizar o resumo

print(resumo)
## # A tibble: 18 × 9
##    type_1   media mediana desvio_padrao primeiro_quartil terceiro_quartil minimo
##    <chr>    <dbl>   <dbl>         <dbl>            <dbl>            <dbl>  <int>
##  1 bug       65.2    63            30.7             42.5             90       10
##  2 dark      86.2    86.5          24.3             65               97.5     50
##  3 dragon   103.     97.5          29.6             78.8            130       50
##  4 electric  67.8    61.5          25.2             50               85       30
##  5 fairy     61.5    52            29.8             45               72       20
##  6 fighting  94.7   100            27.7             80              120       35
##  7 fire      81.6    82.5          25.3             60.8             97.8     40
##  8 flying    71.7    70            42.5             50               92.5     30
##  9 ghost     66.7    65            25.3             50               85       30
## 10 grass     70.9    68            24.1             53.5             89.8     27
## 11 ground    91.3    83.5          28.6             72              116.      40
## 12 ice       70.7    65            25.9             50               82.5     30
## 13 normal    71.7    70            29.3             55               85        5
## 14 poison    74.7    74            19.6             60               90.5     43
## 15 psychic   60.2    52.5          30.8             36.2             74.5     20
## 16 rock      88.2    86.5          32.6             58              113.      40
## 17 steel     83.5    82.5          24.6             75               97.5     24
## 18 water     71.0    70            25.0             52               90       10
## # ℹ 2 more variables: maximo <int>, total <int>

3. Gráfico Boxplot

ggplot(df, aes(x = type_1, y = attack, fill = type_1)) +
  geom_boxplot() +
  labs(
    title = "Boxplot do Ataque por Tipo de Pokémon",
    x = "Tipo (type_1)",
    y = "Ataque (attack)"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

4. Diagrama de dispersão (Ataque vs Defesa)

ggplot(df, aes(x = attack, y = defense, color = type_1)) +
  geom_point(alpha = 0.7) +
  labs(
    title = "Dispersão entre Ataque e Defesa dos Pokémon",
    x = "Ataque (attack)",
    y = "Defesa (defense)"
  ) +
  theme_minimal()

5. Correlação entre ataque e defesa

correlacao <- cor(df$attack, df$defense, use = "complete.obs")
print(paste("Correlação entre ataque e defesa:", round(correlacao, 2)))
## [1] "Correlação entre ataque e defesa: 0.43"

6. Interpretação

Os dados analisados da Pokédex mostram que:

  1. No resumo estatístico, os tipos de Pokémon apresentam grande variação nos valores médios de ataque. Tipos ofensivos como Fogo e Dragão têm maiores valores médios, enquanto tipos defensivos como Pedra possuem menor ataque médio.

  2. O boxplot mostram a dispersão dos ataques dentro de cada tipo. Pokémon dos tipos elétrico e dragão, por exemplo, possuem maior variabilidade, enquanto tipos como normal têm menor amplitude de valores.

  3. O diagrama de dispersão entre ataque e defesa mostra uma correlação moderada positiva (r ≈ 0.45), indicando que Pokémon com maior ataque tendem a ter também defesas mais poderosas, mas há exceções

Esses padrões são consistentes com as funções típicas de cada tipo de Pokémon no jogo, refletindo estratégias ofensivas ou defensivas em batalha.