Carregando a base de dados

load("C:/Users/isaac/OneDrive/Isaac/Estatistica/Base_de_dados-master/df_pokemon.RData")
View(df)

Resumo da variável quantitativa Peso (weight) pela variável qualitativa Tipo 2 (type_2)

Através da visualização a seguir, podemos observar algumas notações da variável peso de cada um dos tipos de pokemon. São apresentados nelas, por exemplo, o peso mínimo e máximo do tipo bug, assim como a mediana, a média e o desvio padrão do seu peso.

É possível perceber que o pokemon do tipo dragon é quem possui o maior peso entre os “classificáveis”, já que alguns pokemons só possuem uma tipificação, a qual está informada na coluna “Tipo 1”. A média e a mediana são medidas que nos ajudam a entender o ‘centro’ de um conjunto de dados. A média é como a ‘nota média’ de uma turma, e a mediana é o valor que divide os dados ao meio. O desvio padrão mostra o quanto os dados ‘se espalham’ em torno da média. Se o desvio padrão é pequeno, os dados estão bem próximos da média. Se ele é grande, os dados estão mais espalhados.

As tabelas mostram o maior e o menor valor, a média, a mediana e o desvio padrão para duas variáveis: peso (um número) e type_2 (uma categoria). Isso nos permite analisar como esses valores se distribuem.

str(df)
## Classes 'tbl_df', 'tbl' and 'data.frame':    718 obs. of  22 variables:
##  $ id             : num  1 2 3 4 5 6 7 8 9 10 ...
##  $ pokemon        : chr  "bulbasaur" "ivysaur" "venusaur" "charmander" ...
##  $ species_id     : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ height         : int  7 10 20 6 11 17 5 10 16 3 ...
##  $ weight         : int  69 130 1000 85 190 905 90 225 855 29 ...
##  $ base_experience: int  64 142 236 62 142 240 63 142 239 39 ...
##  $ type_1         : chr  "grass" "grass" "grass" "fire" ...
##  $ type_2         : chr  "poison" "poison" "poison" NA ...
##  $ attack         : int  49 62 82 52 64 84 48 63 83 30 ...
##  $ defense        : int  49 63 83 43 58 78 65 80 100 35 ...
##  $ hp             : int  45 60 80 39 58 78 44 59 79 45 ...
##  $ special_attack : int  65 80 100 60 80 109 50 65 85 20 ...
##  $ special_defense: int  65 80 100 50 65 85 64 80 105 20 ...
##  $ speed          : int  45 60 80 65 80 100 43 58 78 45 ...
##  $ color_1        : chr  "#78C850" "#78C850" "#78C850" "#F08030" ...
##  $ color_2        : chr  "#A040A0" "#A040A0" "#A040A0" NA ...
##  $ color_f        : chr  "#81A763" "#81A763" "#81A763" "#F08030" ...
##  $ egg_group_1    : chr  "monster" "monster" "monster" "monster" ...
##  $ egg_group_2    : chr  "plant" "plant" "plant" "dragon" ...
##  $ url_image      : chr  "1.png" "2.png" "3.png" "4.png" ...
##  $ x              : num  32.8 33.3 33.9 -24.4 -24.6 ...
##  $ y              : num  17.2 16.7 16.2 30.8 30.6 ...
summary(df)
##        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
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(reactable)
## Warning: pacote 'reactable' foi compilado no R versão 4.4.2
df %>% group_by(type_2) %>% summarise(mínimo = min(weight),
                                      quartil1 = quantile(weight, probs=0.25),
                                      mediana=median(weight),
                                      quartil3 = quantile(weight, probs=0.75),
                                      máximo=max(weight),
                                      média=round(mean(weight),2),
                                      desvio_padrao=round(sd(weight),2)) %>% 
  reactable()

Gráfico Boxplot

O gráfico de boxplot a seguir nos permite observar os de pokemon e seus respectivos pesos. Cada boxplot representa a distribuição dos pesos de cada tipo 2 de pokemon. No eixo “x” está representado o tipo de pokemon e no eixo “y”, o seu peso, que varia em sua maioria entre 0 e 7500 (considerando os outliers presentes). O gráfico boxplot permite visualizar a mediana, linha preta encontrada na parte interna da caixa, que divide a amostra ao meio (50% dos valores abaixo e 50% dos valores acima). Os pontos pretos são os outliers, os valores discrepantes.

Como pode-se notar, os pokemons do tipo electric e fairy possuem pouca variação de peso, demonstrando muita homogeneidade nesse dado. Fato que não acontece com com os pokemon do tipo dragon, que apresenta grande variação, com a presença ainda de 2 outliers, de peso muito superior a média encontrada neste tipo. Pode-se destacar também que o pokemon do tipo flying possui maior quantidade de outliers, o que interfere na sua média final.

library(ggplot2)
df %>%
  ggplot(aes(x = type_2, y = weight)) +
  geom_boxplot(fill = 'red') + 
  theme_minimal() +
  theme(
    plot.background = element_rect(fill = "white")
  ) +
  labs(
    title = "Gráfico de Boxplot do peso por tipo",
    x = "Tipo",
    y = "Peso")

Diagrama de Dispersão

O diagrama de dispersão é um gráfico que representa a relação entre duas variáveis numéricas. Ele é utilizado para visualizar se existe alguma correlação entre essas variáveis e, se sim, qual é a natureza dessa relação.

Ao se analisar as variáveis ataque e defesa, poderia se pensar que pudesse ha- ver uma correlação negativa, onde quanto maior fosse o poder de ataque, menor seu potencial defensivo, ou vice-versa. Entretanto, não é o que ocorre. O que se pode averiguar é que há uma tendência (ainda que positiva moderada, conforme demonstrado pelo cálculo de correlação a seguir)de que o pokemon possua equilíbrio entre o seu poder de ataque e defesa, tendendo para uma simetria entre essas forças, ainda que fraca.

library(ggplot2)
library(ggthemes)
plot(df$defense,df$attack, col = "red", xlab = "Ataque", 
     ylab = "Defesa", main = "Grafico Ataque/Defesa")
abline(lm(df$defense~df$attack), col = "black")

Correlação

A correlação entre o poder de ataque e defesa de um pokemon é de 0.4317745, o que é considerado moderado. Ela é positiva, portanto os pokemons com alto poder de ataque tendem a ter um poder de defesa também alto. Entretanto, essa relação é moderada.

A correlação pode variar de -1 (correlação perfeitamente negativa) a +1 (correlação perfeitamente positiva), sendo que um valor próximo de zero indica pouca ou nenhuma correlação.

Seria necessário observar outros aspectos que caracterizam cada pokemon para avaliar qual deles possui maior influência sobre o poder de defesa e ataque, como por exemplo o peso, a altura, a velocidade e, assim, constatar qual dessas variáveis possui maior preponderância.

cor(df$attack,df$defense)
## [1] 0.4317745