Segundo Jelihovschi (2014), a importância da Análise Exploratória de Dados (EAD) tem seguido uma trajetória crescente, à medida que o poder de processamento e o tamanho da memória dos computadores foram aumentando, mesmo que os computadores tivessem seu tamanho diminuído. Muitos métodos para Análise Exploratória de Dados foram sendo criados e melhorados, e softwares foram sendo escritos à medida em que aquele processo foi tomando força.
Aqui, vamos aprender como alguns métodos estatísticos nos ajudam a retirar a informação que aqueles dados estão guardando, no segredo da sua desorganização inicial. Vamos organizar a desorganização de tal maneira que ela irá nos ajudar no nosso entendimento da informação nela contida.
Vamos começar a análise de dados de uma única variável (univariado). Lembrando que a variável pode ser classificada como: quantititiva (discreta e contínua) ou qualitativa (ordinária ou moninal).
O primeiro passo para se fazer a análise, é como se dará a entrada dos dados. Vamos tratar de três formas distintas de entrada de dados: digitação (diretamente no console do R), importando (csv, xlsx) e download (internet).
Utilizando o atalho do RStudio.
library(readr)
AlunosES2.1 <- read_delim("Aulas/Estatística com R/Estatistica2/AlunosES2.csv",
";", escape_double = FALSE, trim_ws = TRUE)
## Parsed with column specification:
## cols(
## Idade = col_double(),
## genero = col_character(),
## municipio = col_character(),
## notebook = col_character(),
## `Aulas sincronas` = col_character(),
## Atividades = col_character()
## )
head(AlunosES2.1)
## # A tibble: 6 x 6
## Idade genero municipio notebook `Aulas sincronas` Atividades
## <dbl> <chr> <chr> <chr> <chr> <chr>
## 1 20 Feminino Itacoatia~ N<U+0323>o "Pacote de dados m\xcc?veis d~ Tanto faz
## 2 20 Masculi~ Itacoatia~ N<U+0323>o "Pacote de dados m\xcc?veis d~ Tanto faz
## 3 20 Feminino Itacoatia~ N<U+0323>o "Pacote de dados m\xcc?veis d~ Fazer em eq~
## 4 20 Masculi~ Itapiranga N<U+0323>o "Wifi em casas de amigos/pare~ Fazer sozin~
## 5 20 Masculi~ Parintins N<U+0323>o "Pacote de dados m\xcc?veis d~ Fazer em eq~
## 6 22 Masculi~ Itacoatia~ N<U+0323>o "Pacote de dados m\xcc?veis d~ Fazer sozin~
Com a opção “inlude=FALSE”, a importação não será percebida, o que na maioria dos casos, é o ideal.
Para listar os objetos existentes na área de trabalho do R, usamos o comando ls():
ls()
## [1] "AlunosES2.1" "AlunosES2.2"
stem(AlunosES2.1$Idade)
##
## The decimal point is at the |
##
## 19 | 0
## 20 | 00000000000
## 21 | 000000
## 22 | 000000
## 23 |
## 24 | 0
## 25 | 0
## 26 |
## 27 | 00
## 28 | 0
hist(AlunosES2.1$Idade)
### Tabela de Distribuição de Frequência Quando a variável usada é quantitava e contínua, não é possível tabular o resultado de sua medida nos objetos da amostra, pois os dados gerados não terão valores repetidos. Repetições de valores acontecem somente quando arredondamos os resultados, como, por exemplo, nas medidas de peso de pessoas. Nunca dizemos que pesamos 67,34 kg, medimos somente a parte inteira da medida, porém, se o instrumento de medição for bastante preciso, duas pessoas jamais terão exatamente o mesmo peso. Neste caso, é fácil ver que não podemos contar resultados iguais, como foi feito no processo de tabulação descrito acima. Como fazer, então?
O que se faz, neste caso, é juntar dados com valores que estejam “perto”uns dos outros, o que chamamos intervalos de classe. A frequência de cada intervalo será o número de dados cujos valores pertencem a este intervalo.
O formato da tabela de distribuição de frequência é o mesmo da outra tabela já descrita, contendo o título, cabeçalho, coluna indicadora, resultados e a fonte. O pacote do R, chamado fdth, (FARIA; JELIHOVSCHI, 2012), é usado para fazer estas tabelas.
idades <- AlunosES2.1$Idade
max(idades)
## [1] 28
min(idades)
## [1] 19
AT = max(idades)-min(idades)
AT
## [1] 9
H = ceiling(sqrt(length(idades))) #ceiling(), arrendonda para cima e floor() para baixo
H
## [1] 6
h = ceiling(AT/H)
h
## [1] 2
library(fdth)
##
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
##
## sd, var
library(xtable)
tab_idades<- fdt(idades, start = 19 , end = 29 , h = 2)
tab_idades
## Class limits f rf rf(%) cf cf(%)
## [19,21) 12 0.41 41.38 12 41.38
## [21,23) 12 0.41 41.38 24 82.76
## [23,25) 1 0.03 3.45 25 86.21
## [25,27) 1 0.03 3.45 26 89.66
## [27,29) 3 0.10 10.34 29 100.00
print(tab_idades, format = TRUE, col = 1:5 , pattern = "%.1f ") #Controle do número de colunas e do arredondamento
## Class limits f rf rf(%) cf
## [19.0 , 21.0 ) 12 0.41 41.38 12
## [21.0 , 23.0 ) 12 0.41 41.38 24
## [23.0 , 25.0 ) 1 0.03 3.45 25
## [25.0 , 27.0 ) 1 0.03 3.45 26
## [27.0 , 29.0 ) 3 0.10 10.34 29
summary(idades)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 19.00 20.00 21.00 21.66 22.00 28.00
var(idades)
## [1] 5.519704
sd(idades)
## [1] 2.349405
cv = sd(idades)/mean(idades)*100
cv
## [1] 10.84916
P25 = quantile(idades, 0.25)
P25
## 25%
## 20
P50 = quantile(idades, 0.5)
P50
## 50%
## 21
P75 = quantile(idades, 0.75)
P75
## 75%
## 22
boxplot(idades)
str(AlunosES2.1)
## tibble [29 x 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ Idade : num [1:29] 20 20 20 20 20 22 21 20 22 21 ...
## $ genero : chr [1:29] "Feminino" "Masculino" "Feminino" "Masculino" ...
## $ municipio : chr [1:29] "Itacoatiara" "Itacoatiara" "Itacoatiara" "Itapiranga" ...
## $ notebook : chr [1:29] "N<U+0323>o" "N<U+0323>o" "N<U+0323>o" "N<U+0323>o" ...
## $ Aulas sincronas: chr [1:29] "Pacote de dados m<cc>?veis de minha operadora" "Pacote de dados m<cc>?veis de minha operadora" "Pacote de dados m<cc>?veis de minha operadora" "Wifi em casas de amigos/parentes" ...
## $ Atividades : chr [1:29] "Tanto faz" "Tanto faz" "Fazer em equpe" "Fazer sozinho(a)" ...
## - attr(*, "spec")=
## .. cols(
## .. Idade = col_double(),
## .. genero = col_character(),
## .. municipio = col_character(),
## .. notebook = col_character(),
## .. `Aulas sincronas` = col_character(),
## .. Atividades = col_character()
## .. )
AlunosES2.1$genero -> sexo
AlunosES2.1$municipio -> cidade
AlunosES2.1$notebook -> notebook
internet <- AlunosES2.1$`Aulas sincronas`
library(xtable)
str(AlunosES2.1)
## tibble [29 x 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ Idade : num [1:29] 20 20 20 20 20 22 21 20 22 21 ...
## $ genero : chr [1:29] "Feminino" "Masculino" "Feminino" "Masculino" ...
## $ municipio : chr [1:29] "Itacoatiara" "Itacoatiara" "Itacoatiara" "Itapiranga" ...
## $ notebook : chr [1:29] "N<U+0323>o" "N<U+0323>o" "N<U+0323>o" "N<U+0323>o" ...
## $ Aulas sincronas: chr [1:29] "Pacote de dados m<cc>?veis de minha operadora" "Pacote de dados m<cc>?veis de minha operadora" "Pacote de dados m<cc>?veis de minha operadora" "Wifi em casas de amigos/parentes" ...
## $ Atividades : chr [1:29] "Tanto faz" "Tanto faz" "Fazer em equpe" "Fazer sozinho(a)" ...
## - attr(*, "spec")=
## .. cols(
## .. Idade = col_double(),
## .. genero = col_character(),
## .. municipio = col_character(),
## .. notebook = col_character(),
## .. `Aulas sincronas` = col_character(),
## .. Atividades = col_character()
## .. )
tab_sexo <- table(sexo)
tab_sexo
## sexo
## Feminino Masculino
## 15 14
pie(tab_sexo)
tab_cidades <- table(cidade)
tab_cidades
## cidade
## Autazes Itacoatiara Itapiranga Manaus Maues Outro
## 1 19 1 4 1 1
## Parintins
## 2
barplot(tab_cidades)