Este post apresenta os resultados da atividade 7 da disciplina Estatística aplicada à Ciências Humanas em que foram utilizados os recursos para:
carregar uma BD no formato R;
efetuar cruzamento de variável qualitativa e quantitativa;
efetuar cálculos estatísticos a partir desse cruzamento;
criar e formatar tabela a partir desse cruzamento; e
elaborar um gráfico do tipo boxplot a partir desse cruzamento.
Para essa primeira parte da Atividade, a BD carregada e utilizada na atividade foi a seguinte:
#---------
#Passo 1 - Carregamento das bibliotecas e da BD
#---------
library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
library(flextable)
library(reactable)
library(RColorBrewer)
load("D:/Curso Adm Publica/Semestre 8/Estatistica/Base_de_dados-master/df_pokemon.RData")
head(df)# A tibble: 6 x 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
# ... with 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>
Foi realizado o cruzamento da variável qualitativa egg_group_1 com a variável quantitativa speed da BD e, utilizando-se o operador pipe, foi efetuado um resumo estatístico do conjunto de dados agrupados por egg_group_1, calculando-se a média, a mediana e o desvio padrão para cada conjunto de grupamento. As informações obtidas foram dispotas em uma tabela apresentada a seguir:
Tabela 1 - Resumo estatístico da variável velocidade dos pokemons, agrupados por egg_group_1.
#---------
#Passo 2 - Cruzamento de variável quali e quanti, com resumo
# estatístico - média, mediana e desvio padrão
#---------
ft1 <- df %>% select(egg_group_1,speed) %>%
group_by(egg_group_1) %>%
summarise(media.vel=round(mean(speed),2),
mediana=round(median(speed),2),
des.pad_vel=round(sd(speed),2),
quantidade=n()) %>%
data.frame() %>% flextable()
ft1 <- bg(ft1, bg = "wheat", part = "header")
ft1egg_group_1 | media.vel | mediana | des.pad_vel | quantidade |
bug | 61.21 | 60.0 | 32.74 | 66 |
ditto | 48.00 | 48.0 | 1 | |
dragon | 63.78 | 58.0 | 23.46 | 9 |
fairy | 62.78 | 57.5 | 25.63 | 32 |
flying | 81.30 | 80.0 | 23.65 | 46 |
ground | 72.99 | 70.0 | 24.36 | 167 |
humanshape | 67.19 | 65.0 | 25.62 | 37 |
indeterminate | 54.61 | 50.0 | 24.75 | 41 |
mineral | 52.74 | 47.5 | 26.19 | 46 |
monster | 54.99 | 50.0 | 21.90 | 75 |
no-eggs | 81.64 | 90.0 | 32.02 | 70 |
plant | 43.40 | 40.0 | 17.83 | 25 |
water1 | 60.31 | 60.0 | 22.23 | 74 |
water2 | 76.20 | 68.0 | 14.04 | 15 |
water3 | 64.93 | 69.0 | 24.97 | 14 |
A partir dos valores apresentados na tabela 1, verificou-se que existe uma grande quantidade de grupos (egg_group_1) de pokemons e que o grupo ditto conta com apenas um representante. Em função desses fatos, optou-se por efetuar uma filtragem de dados, selecionando-se somente os grupos que contam com mais de 60 representantes para confeccionar um gráfico tipo boxplot, com a finalidade da vizualização desse gráfico não ficar muito poluída.
Dessa forma, obteve-se uma nova tabela (Tabela 2), considerando-se o mesmo agrupamento da Tabela 1.
Tabela 2 - Resumo estatístico da variável velocidade dos pokemons, agrupados por egg_group_1, após seleção de grupos.
#---------
#Passo 3 - Filtragem de dados para novo cruzamento, com resumo
# estatístico - média, mediana e desvio padrão
#---------
ft2 <- df %>% filter(egg_group_1=="bug" | egg_group_1=="ground" |
egg_group_1=="monster" | egg_group_1=="no-eggs" |
egg_group_1=="water1") %>%
select(egg_group_1,speed)
ft3 <- ft2 %>% group_by(egg_group_1) %>%
summarise(media.vel=round(mean(speed),2),
mediana=round(median(speed),2),
des.pad_vel=round(sd(speed),2),
quantidade=n()) %>%
data.frame() %>% flextable()
ft3 <- bg(ft3, bg = "wheat", part = "header")
ft3egg_group_1 | media.vel | mediana | des.pad_vel | quantidade |
bug | 61.21 | 60 | 32.74 | 66 |
ground | 72.99 | 70 | 24.36 | 167 |
monster | 54.99 | 50 | 21.90 | 75 |
no-eggs | 81.64 | 90 | 32.02 | 70 |
water1 | 60.31 | 60 | 22.23 | 74 |
Finalmente, foi criado um gráfico tipo boxplot, utilizando-se o conjunto de dados que foi filtrado e serviu de base para a confecção da Tabela 2, para a velocidade dos pokemons, agrupados pela variável egg_group_1, conforme apresentado a seguir:
#-------------------------------------------------
# Passo 5 - criação e visualizacao do boxplot
#-------------------------------------------------
cor_dark <- brewer.pal(5,"Pastel1")
boxplot(speed~egg_group_1,data=ft2,
main="Gráfico 1 - Velocidade dos pokemons por egg_group",
ylim = c(0, 200), ylab = "Velocidade", col=cor_dark)De acordo com os valores apresentados na Tabela 2, em que se observam a média e o desvio padrão da velocidade de pokemon, para cada um dos grupos considerados, após a filtragem dos dados, verifica-se que o grupo no-eggs possui a maior velocidade média, de 81,64, com um desvio padrão de 32,02, denotando uma alta variabilidade nos valores da velocidade de pokemon para esse grupo.
Aliás, praticamente todos os grupos de pokemon possuem uma variabilidade considerável para a velocidade, dados os valores da média de velocidade de cada grupo com seus respectivos desvios padrão.
Já em relação ao boxplot originado, verifica-se que:
os grupos bug, monster e water1 possuem outliers;
os grupos ground e no-eggs apresentam certa simetria, enquanto os grupos bug, monster e water1 apresentam leve assimetria; e
os grupos monster e water1 apresentam uma menor dispersão de dados para velocidade, enquanto os grupos bug, ground e no-eggs apresentam uma maior dispersão para tais dados.
Todas essas considerações confirmam a considerável variabilidade para as velocidades dos pokemons, para cada grupo considerado.