Resumindo Dados

Nesta e nas próximas seções usaremos alguns elementos já mencionados no minicurso Iniciação ao R.

Vamos iniciar os trabalhos utilizando o conjunto de dados juul que se encontra dentro do pacote ISwR.

Para instalar o pacote, faça:

install.packages("ISwR")

Para carregar o pacote e o conjunto de dados digite os seguintes comandos:

library("ISwR")
data(kfm)

Agora vamos chamar o conjunto de dados que iremos trabalhar e observar as 10 primeiras linhas:

head(kfm,10)
no dl.milk sex weight ml.suppl mat.weight mat.height
1 8.42 boy 5.002 250 65 173
4 8.44 boy 5.128 0 48 158
5 8.41 boy 5.445 40 62 160
10 9.65 boy 5.106 60 55 162
12 6.44 boy 5.196 240 58 170
16 6.29 boy 5.526 0 56 153
22 9.79 boy 5.928 30 78 175
28 8.43 boy 5.263 0 57 170
31 8.05 boy 6.578 230 57 168
32 6.48 boy 5.588 555 58 173

O que são as variáveis deste conjunto de dados?

Os dados tratam de um estudo com 50 crianças de aproximadamente 2 meses de vida. Elas são pesadas imediatamente antes e depois de cada amamentação e a ingestão de leite materno é registrada juntamente com outras informações.

Medidas Descritivas

Vamos finalmente calcular algumas estatísticas:

mean(kfm$weight) # Média
## [1] 5.31874
median(kfm$weight) # Mediana
## [1] 5.352
var(kfm$weight) # Variância
## [1] 0.300636
sd(kfm$weight) # Desvio Padrão
## [1] 0.5483028
range(kfm$weight) # Amplitude
## [1] 4.120 6.578

Lembrando que também podemos obter algumas estatísticas de forma mais rápida (porém não tão completa como se deseja) utilizando o comando summary(), como mostrado abaixo:

summary(kfm$weight)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   4.120   4.977   5.352   5.319   5.637   6.578

Vamos supor agora que estamos interessados no quantis da variável weight. Para isso usamos a função quantile().

quantile(kfm$weight)
##      0%     25%     50%     75%    100% 
## 4.12000 4.97725 5.35200 5.63675 6.57800

Observe que a função acima retornou os valores mínimo, máximo e a mediana e também o 1º e 3º quartil.

Podemos também trabalhar com qualquer percentil. Basta explicitar na função qual percentil se deseja.

quantile(kfm$weight, c(0.32, 0.65)) # 32º percentil e 65º percentil
##     32%     65% 
## 5.12096 5.54300

Vamos supor que estamos interessados em um resumo básico das estatísticas de todas as variáveis do conjunto e dados. Para isso, façamos:

summary(kfm)
##        no            dl.milk         sex         weight     
##  Min.   :  1.00   Min.   : 4.440   boy :25   Min.   :4.120  
##  1st Qu.: 28.75   1st Qu.: 6.555   girl:25   1st Qu.:4.977  
##  Median : 50.50   Median : 7.660             Median :5.352  
##  Mean   : 52.36   Mean   : 7.504             Mean   :5.319  
##  3rd Qu.: 79.75   3rd Qu.: 8.428             3rd Qu.:5.637  
##  Max.   :105.00   Max.   :10.430             Max.   :6.578  
##     ml.suppl        mat.weight      mat.height   
##  Min.   :  0.00   Min.   :47.00   Min.   :153.0  
##  1st Qu.: 16.25   1st Qu.:55.00   1st Qu.:162.0  
##  Median : 57.50   Median :58.00   Median :167.0  
##  Mean   : 96.00   Mean   :59.96   Mean   :167.4  
##  3rd Qu.:103.75   3rd Qu.:64.50   3rd Qu.:172.0  
##  Max.   :590.00   Max.   :80.00   Max.   :185.0

Observe que na variável sex a função faz apenas a contagem de cada indivíduo em suas respectivas classes. Isso é de se esperar já que esta variável é de natureza qualitativa.

Vamos investigar como está o comportamento das variáveis através de uma ferramenta chama diagrama de ramos e folhas. Para isso vamos usar o comando abaixo:

stem(kfm$weight)
## 
##   The decimal point is 1 digit(s) to the left of the |
## 
##   40 | 2
##   42 | 469
##   44 | 
##   46 | 147234
##   48 | 397
##   50 | 081367
##   52 | 0062456689
##   54 | 253579
##   56 | 24473
##   58 | 0283
##   60 | 3301
##   62 | 
##   64 | 08

Aparentemente esta variável apresenta um comportamento simétrico e semelhando a distribuição normal. Mais a frente verificaremos com outras ferramentas se esta variável é ou não de natureza normal.

Existem outras função que sumarizam melhor os dados. Uma delas é a função basicStats do pacote fBasics. Veja abaixo um exemplo do uso desta função:

install.packages("fBasics") # Instalando o pacote
library("fBasics") # Carregando o pacote
basicStats(kfm$weight) # Usando a função na variável weight
##             X..kfm.weight
## nobs            50.000000
## NAs              0.000000
## Minimum          4.120000
## Maximum          6.578000
## 1. Quartile      4.977250
## 3. Quartile      5.636750
## Mean             5.318740
## Median           5.352000
## Sum            265.937000
## SE Mean          0.077542
## LCL Mean         5.162914
## UCL Mean         5.474566
## Variance         0.300636
## Stdev            0.548303
## Skewness         0.001721
## Kurtosis        -0.367078

Descritiva Univariada por Grupos

Esta abordagem é usada para apresentar variáveis contínuas por determinados grupos de interesse.

Vamos supor que temos interesse no peso médio das crianças por sexo. Para isso, faça:

tapply(kfm$weight, kfm$sex, mean)
##     boy    girl 
## 5.43816 5.19932

No exemplo acima, a variável sex já se apresenta como fator (class(kfm$sex)) e verifique a classe a qual a variável pertence). Isso ocorre porque, ao importar o banco de dados, o R automaticamente transforma variáveis que contenham strings em fator.

Vale lembrar que a função tapply() também aceita outras funções. Tente aplicar a função summary() juntamente com a tapply() e veja o resultado.

tapply(kfm$weight, kfm$sex, summary)
## $boy
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   4.360   5.106   5.359   5.438   5.882   6.578 
## 
## $girl
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   4.120   4.825   5.336   5.199   5.568   6.100

EXERCÍCIOS

  1. Com o mesmo conjunto de dados usado nos exemplos acima, calcule as estatísticas básicas para as demais variáveis utilizando separadamente cada função e usando a função summary().
  2. Faça o mesmo que foi pedido no item acima porém por grupos.
  3. Faça o diagrama de ramos e folhas para as outras variáveis do conjunto de dados. Quais conclusões você tiraria dos resultados apresentados?