Carregando a base de dados e as bibliotecas

library(ggplot2)
library(readr)
library(corrplot)
## corrplot 0.84 loaded
load("/home/rafael/Downloads/Base_de_dados-master/df_pokemon.RData")
str(df)
## tibble [718 × 22] (S3: 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     : int [1:718] 1 2 3 4 5 6 7 8 9 10 ...
##  $ height         : int [1:718] 7 10 20 6 11 17 5 10 16 3 ...
##  $ weight         : int [1:718] 69 130 1000 85 190 905 90 225 855 29 ...
##  $ base_experience: int [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         : int [1:718] 49 62 82 52 64 84 48 63 83 30 ...
##  $ defense        : int [1:718] 49 63 83 43 58 78 65 80 100 35 ...
##  $ hp             : int [1:718] 45 60 80 39 58 78 44 59 79 45 ...
##  $ special_attack : int [1:718] 65 80 100 60 80 109 50 65 85 20 ...
##  $ special_defense: int [1:718] 65 80 100 50 65 85 64 80 105 20 ...
##  $ speed          : int [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 ...

Arrumando os dados numéricos para a análise

# Para a correlação
pokemat=df[,-c(1,2,3,7,8,15,16,17,18,19,20,21,22)]

# Para o gráfico de disperção
poketipo=df[,-c(1,2,3,8,15,16,17,18,19,20,21,22)]

Primeira hipótese a ser testada

Pokémons geralmente se especializam em ataque ou defesa, então os valores deveriam ser negativamente ou fracamente correlacionados.

Fazendo a matriz de correlação e o gráfico corrplot

corpok<-cor(pokemat) # A matriz de correlação
print(corpok)
##                    height    weight base_experience    attack     defense
## height          1.0000000 0.6465813       0.4804062 0.4088367  0.35995909
## weight          0.6465813 1.0000000       0.4874248 0.4605428  0.48171259
## base_experience 0.4804062 0.4874248       1.0000000 0.5891011  0.50577735
## attack          0.4088367 0.4605428       0.5891011 1.0000000  0.43177454
## defense         0.3599591 0.4817126       0.5057773 0.4317745  1.00000000
## hp              0.4401011 0.4314012       0.6849912 0.4298658  0.23521065
## special_attack  0.3330252 0.2793074       0.6630866 0.3278213  0.19828306
## special_defense 0.3239820 0.3403940       0.6723205 0.2008107  0.48187370
## speed           0.2249439 0.1081207       0.5021202 0.3356615 -0.00597676
##                        hp special_attack special_defense       speed
## height          0.4401011      0.3330252       0.3239820  0.22494390
## weight          0.4314012      0.2793074       0.3403940  0.10812069
## base_experience 0.6849912      0.6630866       0.6723205  0.50212021
## attack          0.4298658      0.3278213       0.2008107  0.33566149
## defense         0.2352107      0.1982831       0.4818737 -0.00597676
## hp              1.0000000      0.3678422       0.3838715  0.16941766
## special_attack  0.3678422      1.0000000       0.4867300  0.44706699
## special_defense 0.3838715      0.4867300       1.0000000  0.23825607
## speed           0.1694177      0.4470670       0.2382561  1.00000000
corrplot.mixed(corpok, order = "AOE", main="Gráfico de Correlação") # O gráfico de correlação

Conclusão 1

Podemos observar que há uma correlação positiva de 0.43 entre ataque e defesa. Embora o valor não seja muito grande, vai contra nossa hipótese.

Gráfico de dispersão para testar a segunda hipótese

A seguir, veremos um gráfico de dispersão comparado à experiência base para testar se nosso valor positivo advém do fato de que pokémons mais fortes apresentam tanto mais ataque quanto mais defesa.

# Plotando o gráfico de dispersão e comparando com a experiência base
hh <- ggplot(poketipo, aes(x=attack, y=defense, color=base_experience)) + geom_point() + geom_smooth() + labs(title ="Pokeplot", x="Ataque", y="Defesa")

hh1 <- hh + theme(plot.title=element_text(size=28, face="bold"),
                  axis.text.x=element_text(size=15),
                  axis.text.y=element_text(size=15),
                  axis.title.x = element_text(size=20),
                  axis.title.y = element_text(size=20))+
  scale_color_gradient(low="gold",high="dodgerblue4",name="Experiência base")

print(hh1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Conclusão 2

Pelo gráfico acima, podemos ver que de fato os pokémons com mais ataque e defesa são também os que tem a cor mais próxima ao azul escuro, confirmando a segunda hipótese. Aliás, podemos ver no corrplot anterior que a correlação entre a experiência base e as outras variáveis é alta.

Gráfico bônus: Dispersão para todos os tipos primários

gg <- ggplot(poketipo, aes(x=attack, y=defense, color=type_1)) + geom_point() + geom_smooth() + labs(title ="Pokeplot", x="Ataque", y="Defesa")

gg1 <- gg + theme(plot.title=element_text(size=28, face="bold"),
                  axis.text.x=element_text(size=15),
                  axis.text.y=element_text(size=15),
                  axis.title.x = element_text(size=20),
                  axis.title.y = element_text(size=20))+
  scale_color_discrete(name="Poke tipos")

# Separando por o gráfico de dispersão por tipo para facilitar a visualização

gg2 <- gg1 + facet_wrap( ~ type_1, ncol=3)  # colunas definidas pelo tipo

print(gg2)