Pacotes necessários

library(dplyr)
library(reactable)
library(ggplot2)
library(corrplot)
library(ggthemes)
library(flextable)
library(shinythemes)
library(reactablefmtr)
library(viridis)

Carregar a base de dados

load("C:/Users/Mamede/Desktop/Base_de_dados-master/df_pokemon.RData")
View(df)

Análise de dados

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

Resumo da Variável Quantitativa pela Variável Qualitativa

df %>% 
  group_by(type_1) %>% 
  summarise(
    média = round(mean(attack), 1),
    desvio.padrão = round(sd(attack), 1),
    mínimo = min(attack),
    quartil1 = quantile(attack, probs=0.25),
    mediana = median(attack),
    quartil3 = quantile(attack, probs=0.75),
    máximo = max(attack)
  ) %>% 
  reactable(
    .,
    theme = default(centered = TRUE),
    defaultColDef = colDef(
      cell = data_bars(., fill_color = viridis::mako(5), bar_height = 30),
      headerStyle = list(textAlign = "center")  
    ),
    columns = list(
      type_1= colDef(name= "Tipos de Pokémon"),
      média = colDef(name = "Média de Ataque"),
      desvio.padrão = colDef(name = "Desvio Padrão"),
      mínimo = colDef(name = "Valor Mínimo"),
      quartil1 = colDef(name = "1º Quartil"),
      mediana = colDef(name = "Mediana"),
      quartil3 = colDef(name = "3º Quartil"),
      máximo = colDef(name = "Valor Máximo")
    )
  )

A variável quantitativa escolhida para a análise foi o ataque, enquanto a variável qualitativa foi o tipo de Pokémon, que inclui 18 categorias: Normal, Planta, Fogo, Água, Elétrico, Voador, Gelo, Pedra, Terrestre, Aço, Lutador, Sombrio, Psíquico, Venenoso, Inseto, Fada, Fantasma e Dragão.

  • Média e Desvio-Padrão

    A média de ataque apresenta variações notáveis entre os tipos. O Dragon se destaca com a maior média (103), indicando que os Pokémons desse tipo possuem, em média, ataques significativamente mais altos que os demais. Outros tipos com médias elevadas incluem Fighting (94,7), Ground (91,3) e Rock (88,2), todos com valores de ataque bem acima da média global, sugerindo que esses tipos são caracterizados por Pokémon com grande potencial ofensivo. Por outro lado, os tipos Psychic (60.2) e da Fairy (61.5) apresentam as menores médias de ataque, o que sugere que os Pokémons desses tipos têm mais dificuldade em causar dano direto, sendo mais voltados para habilidades que não priorizam o ataque físico ou especial.

    O desvio-padrão, que mede a dispersão dos valores de ataque em torno da média, revela variações no comportamento dos diferentes tipos de Pokémon. Valores elevados indicam uma maior variabilidade entre os ataques de um tipo, enquanto valores baixos indicam maior consistência. O tipo Flying apresenta o maior desvio-padrão, com 42,5, o que sugere que os ataques dos Pokémon desse tipo são bastante dispersos, com grandes variações de poder. Em contrapartida, os tipos Poison (19.6) e no Grass (24.1) possuem os menores desvios-padrão, indicando que os valores de ataque desses Pokémon são mais consistentes e têm uma distribuição mais uniforme, com menor variação entre os valores de ataque.

  • Mediana e Quartis

    Os quartis e a mediana fornecem uma visão detalhada da distribuição dos ataques, dividindo os dados em quatro partes iguais e revelando as tendências centrais e a dispersão.

    Dragon (Q1 = 78.75, Mediana = 97.5, Q3 = 130): A distribuição dos ataques de Pokémon do tipo Dragon é concentrada em torno de valores mais elevados, com a mediana (97.5) sendo significativamente alta. Isso indica que a maioria dos Pokémon Dragon tem ataques fortes, com pouca variação para baixo. O Q3 = 130 sugere que 75% dos Pokémon Dragon têm ataques abaixo de 130, o que reforça a ideia de que esse tipo possui Pokémon com ataques poderosos e consistentes.

    Fairy (Q1 = 45, Mediana = 52, Q3 = 72): Por outro lado, a distribuição dos ataques do tipo Fairy é mais comprimida e concentrada em torno de valores baixos. A mediana (52) é bastante baixa, indicando que a maioria dos Pokémon Fairy tem ataques fracos. A dispersão é limitada, com o Q3 = 72, sugerindo que a maior parte dos Pokémon Fairy tem ataques significativamente abaixo de outros tipos como Dragon e Fighting.

    Psychic (Q1 = 36.25, Mediana = 52.5, Q3 = 74.5): O tipo Psychic, embora também apresente uma distribuição com ataques relativamente baixos, tem valores ligeiramente mais elevados que o tipo Fairy. A mediana (52.5) indica que a metade dos Pokémon Psychic tem ataques abaixo de 52.5, com o Q3 = 74.5 mostrando que 75% dos Pokémon Psychic têm ataques abaixo desse valor. Essa distribuição, mais dispersa que a do tipo Fairy, sugere que o tipo Psychic possui uma maior variação no poder de ataque, mas ainda assim com valores menores em relação aos tipos mais fortes.

  • Análise da Amplitude (Mínimo e Máximo)

    A amplitude dos valores de ataque, calculada pela diferença entre o valor máximo e o mínimo, também fornece informações sobre a variação dentro de cada tipo de Pokémon.

    O tipo Normal (mínimo = 5, máximo = 160) possui a maior amplitude de ataque, com uma grande diversidade entre Pokémon com ataques muito fracos e muito fortes. A ampla variação sugere que o tipo Normal inclui Pokémon com uma gama de características de combate, refletindo tanto Pokémon de baixo poder ofensivo quanto Pokémons extremamente fortes.

    Os tipos Dragon (mínimo = 50, máximo = 150) e Ground (mínimo = 40, máximo = 150) também apresentam grandes amplitudes, mas com valores mínimos e máximos mais concentrados em torno de valores altos, sugerindo que esses tipos possuem Pokémon com ataques mais fortes de forma geral, embora ainda haja alguma variação.

    Em contraste, os tipos Poison (mínimo = 43, máximo = 106) e Fairy (mínimo = 20, máximo = 131) apresentam amplitudes mais restritas, indicando que os valores de ataque desses tipos não variam tanto. Isso reforça a ideia de que Pokémon desses tipos têm ataques mais uniformes, mas em geral mais fracos comparados a outros tipos.

Gráfico Boxplot

df %>% ggplot() +aes(x= attack, y=type_1) +
  geom_boxplot(fill="#7397e6") +
  theme_minimal()+ coord_flip()+
  labs(title = "Boxplot",subtitle = "Tipo de pokemon por ataque",
       x= "Ataque",y= "Tipos de Pokémon",
       caption = "fonte dos dados: base de dados master")

O boxplot gerado a partir dos dados dos tipos de Pokémon por ataque revela algumas informações interessantes sobre a distribuição dos valores de ataque entre os diferentes tipos. A seguir, uma análise detalhada de como cada tipo se comporta em relação ao ataque dos seus Pokémons.

  • Tipos com maior ataque: O tipo Fighting se destaca com valores de ataque elevados. A caixa do boxplot para esse tipo está posicionada entre 80 e 120, com a mediana em torno de 100, e os valores máximos chegam a 140. Dessa forma, indica que os Pokémons do tipo Fighting possuem ataques significativamente mais fortes, com uma distribuição ampla de valores, sugerindo uma variação considerável entre os Pokémons desse tipo. De maneira semelhante, o tipo Dragon apresenta uma mediana em 97.5 e uma caixa que vai de 78.8 a 130, com o valor máximo alcançando 150. Isso reforça a ideia de que os Pokémons Dragão tendem a ter ataques elevados, com uma dispersão considerável, incluindo alguns com ataques extremamente altos. O tipo Rock também exibe uma ampla variação no ataque, com a caixa situada entre 58 e 113 e uma mediana de 86.5. O valor máximo de 165 sugere a presença de Pokémons com ataques excepcionais, fazendo com que o tipo Rock se destaque em termos de poder de ataque.

  • Tipos com menor ataque: Por outro lado, tipos como Bug e Fairy apresentam ataques significativamente mais baixos. A caixa do tipo Bug está entre 42.5 e 90, com a mediana em 63, o que indica que, em média, os Pokémons desse tipo têm um ataque mais fraco em comparação com outros tipos. O valor máximo de 135 ainda é consideravelmente alto, mas a maioria dos Pokémons do tipo Bug possuem ataques mais baixos. O tipo Fairy segue a mesma tendência, com a caixa variando entre 45 e 72, e a mediana em 52, sugerindo que seus Pokémons tendem a ter ataques modestos. O máximo para esse tipo é de 131, mas, assim como o tipo Bug, a maior parte da distribuição está concentrada em valores mais baixos. O tipo Poison apresenta uma caixa entre 60 e 90.5, com a mediana em 74, o que coloca esse tipo também em uma faixa intermediária de ataques, com uma distribuição mais compacta.

  • Variabilidade e dispersão: Os tipos Normal, Rock e Dragon se destacam pela maior variabilidade nos ataques, com uma diferença considerável entre o mínimo e o máximo. O tipo Normal, por exemplo, tem um valor máximo de 160, e o tipo Rock alcança 165, ambos indicando uma ampla gama de ataques entre os Pokémons desses tipos. Essa variabilidade sugere que, dentro desses tipos, existem Pokémons com ataques extremamente poderosos, ao lado de outros com ataques mais moderados. Por outro lado, tipos como Electric, Ghost e Fairy possuem distribuições mais concentradas, com caixas mais estreitas e pouca variabilidade nos valores de ataque. Esses tipos têm uma menor dispersão de dados, indicando que seus Pokémons tendem a ter ataques mais semelhantes entre si.

  • Outliers: Além da dispersão central, o boxplot também revela a presença de outliers, ou valores extremos de ataque, para alguns tipos. Tipos como Normal, Dragon, Psychic e Rock apresentam outliers, com alguns Pokémons ultrapassando os 150 de ataque. Esses valores indicam a existência de Pokémons excepcionais dentro desses tipos, que se destacam dos demais em termos de poder de ataque.

Em resumo, o boxplot oferece uma visão clara da distribuição do ataque entre os diferentes tipos de Pokémon. Tipos como Fighting, Dragon e Rock possuem Pokémons com ataques elevados e uma grande variação entre eles. Já Bug, Fairy e Poison têm ataques mais baixos e uma distribuição mais compacta, com pouca variação entre os valores de ataque. O gráfico também destaca a presença de Pokémons muito fortes em tipos como Normal, Dragon, Rock e Psychic, que apresentam valores extremos de ataque.

Diagrama de Dispersão e Correlação

plot(df$attack, df$defense, 
     col = "#4f4f70", 
     pch = 19,
     main = "Gráfico 2 - Diagrama de dispersão",
     xlab = "Ataque",
     ylab = "Defesa")

abline(lsfit(df$attack, df$defense), 
       col = "#5ccad0", 
       lwd = 4)

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

O diagrama de dispersão apresentado revela uma relação positiva moderada entre as variáveis Ataque e Defesa. Essa relação é evidenciada pela inclinação positiva da linha de tendência ajustada, que sugere que, em geral, um aumento nos valores de Ataque tende a ser acompanhado por um aumento nos valores de Defesa. Contudo, a dispersão significativa dos dados ao redor da linha indica que essa relação não é determinística, ou seja, os valores de Defesa variam consideravelmente para um mesmo nível de Ataque.

A maior concentração dos pontos está situada nas faixas de Ataque entre 0 e 100 e Defesa entre 0 e 100, o que indica que a maioria dos dados analisados apresenta valores relativamente baixos para ambas as variáveis. Essa característica pode refletir a predominância de amostras com desempenho médio ou baixo no conjunto de dados. No entanto, é importante notar a grande dispersão dos pontos ao longo do gráfico, sugerindo elevada variabilidade entre as amostras. Embora a tendência geral seja positiva, desvios significativos em relação à linha de tendência reduzem a força da correlação, apontando que fatores adicionais, não representados no gráfico, podem estar influenciando a relação entre as variáveis.

Outro aspecto relevante é a presença de outliers. Alguns pontos isolados, especialmente na variável Defesa (com valores superiores a 200), destoam do padrão geral observado no gráfico. Esses valores extremos podem influenciar o cálculo da linha de tendência e do coeficiente de correlação, sendo importante analisar se se tratam de erros de medição ou observações válidas.

O coeficiente de correlação linear de Pearson, calculado como 0.4317745, confirma a existência de uma correlação positiva moderada entre Ataque e Defesa. Esse valor reforça a ideia de que, embora exista uma tendência geral de aumento simultâneo nas variáveis, a relação não é suficientemente forte para ser considerada linear. Além disso, o coeficiente de determinação (R²= 18,64%) revela que apenas 18,64% da variação em Defesa pode ser explicada pela relação linear com Ataque, enquanto os 81,36% restantes são atribuídos a outros fatores ou à variabilidade intrínseca do conjunto de dados.

Em síntese, o diagrama de dispersão e o coeficiente de correlação linear mostram que há uma relação positiva moderada entre Ataque e Defesa. Contudo, a alta dispersão dos dados, a presença de outliers e o baixo valor de R² indicam que essa relação é limitada em termos de explicação estatística.

Matriz de Correlação

df %>% select(height,weight,base_experience, attack, defense,
              hp, special_attack, special_defense, speed) %>%
  cor() %>% corrplot(tl.col = 'black')

A análise da matriz de correlação revela padrões interessantes entre as variáveis do conjunto de dados. Algumas variáveis apresentam correlações fortes, como entre attack e base_experience, sugerindo que entidades com maior capacidade ofensiva tendem a acumular mais experiência base. Da mesma forma, a relação positiva entre weight e height é intuitiva, já que indivíduos mais altos frequentemente possuem maior peso. Também se destaca a forte correlação entre special_attack e special_defense, indicando que personagens com um alto ataque especial costumam ter também uma defesa especial elevada.

Há também correlações moderadas que merecem atenção, como entre attack e defense, sugerindo que personagens com maior poder ofensivo frequentemente apresentam um nível defensivo acima da média. A experiência base (base_experience) mostrou correlações moderadas com atributos como special_attack, attack e weight, indicando uma relação relevante com diferentes características, embora não extremamente forte. Essas correlações apontam para conexões importantes, mas com alguma variabilidade entre as variáveis.

Por outro lado, algumas variáveis apresentam baixa ou nenhuma correlação significativa. A speed, por exemplo, demonstra pouca relação linear com atributos como attack, defense ou base_experience, sugerindo que a velocidade é um atributo independente das demais características analisadas. O mesmo ocorre com hp em relação a características físicas como height e weight, onde a baixa correlação indica que o número de pontos de vida não é fortemente influenciado por essas variáveis.

Outro aspecto notável é a ausência de correlações negativas relevantes na matriz. Isso é evidenciado pela falta de círculos vermelhos, sugerindo que as variáveis analisadas não apresentam relações inversamente proporcionais. Isso pode indicar que os atributos avaliados são, em sua maioria, complementares ou independentes.

Em conclusão, a matriz de correlação aponta relações significativas entre algumas variáveis, como attack e base_experience, enquanto destaca a independência de outras, como speed. Essas informações oferecem um panorama valioso para direcionar análises estatísticas mais detalhadas e explorar possíveis padrões ocultos no conjunto de dados. A identificação de correlações fortes e moderadas pode guiar estudos futuros, enquanto as variáveis com baixa correlação podem ser investigadas sob outros enfoques ou com modelos mais complexos.