load("C:/Users/isaac/OneDrive/Isaac/Estatistica/Base_de_dados-master/df_pokemon.RData")
View(df)
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()
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")
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")
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