Estatística Descritiva do Zero em R

Hellen Sonaly Silva Alves
hellensilva.estat@gmail.com
http://lattes.cnpq.br/4845253626067527


Introdução

Neste tutorial vamos aprender a fazer estatística descritiva do zero no R.

Se você está iniciando no R, recomendo primeiro:

A estatística descritiva é o primeiro passo em qualquer análise de dados.

O que é Estatística Descritiva?

Estatística descritiva é o conjunto de técnicas para organizar, resumir e visualizar dados, sem (ainda) fazer inferência sobre uma população.

Ela ajuda a responder perguntas como:

  • Qual é o valor típico?
  • Quão espalhados estão os dados?
  • Existem valores extremos (outliers)?

1. Dataset do Tutorial

Vamos criar um conjunto de dados simulado com:

  • sexo (qualitativa nominal)
  • escolaridade (qualitativa ordinal)
  • idade e altura_cm (quantitativas)
  • renda_mensal (quantitativa com assimetria)
set.seed(123)

dados <- data.frame(
  sexo = sample(c("F", "M"), 60, replace = TRUE),
  escolaridade = sample(c("Fundamental", "Médio", "Superior"), 
                        60, replace = TRUE,
                        prob = c(0.25, 0.45, 0.30)),
  idade = round(rnorm(60, mean = 30, sd = 8)),
  altura_cm = round(rnorm(60, mean = 168, sd = 10), 1),
  renda_mensal = round(rlnorm(60, meanlog = log(2500), sdlog = 0.5), 0)
)

Visualizando as 10 primeiras linhas:

head(dados, 10)
##    sexo escolaridade idade altura_cm renda_mensal
## 1     F     Superior    33     169.2         1469
## 2     F        Médio    26     158.5         4702
## 3     F        Médio    27     163.1         2099
## 4     M        Médio    22     165.4         1622
## 5     F  Fundamental    21     186.4         2221
## 6     M        Médio    32     161.5         2265
## 7     M  Fundamental    34     170.4         4355
## 8     M  Fundamental    30     168.8         2608
## 9     F  Fundamental    37     158.4         3645
## 10    F        Médio    46     167.3         1948

2. Tipos de Variáveis

2.1 Variáveis Qualitativas

  • Nominal: categorias sem ordem (ex.: sexo)
  • Ordinal: categorias com ordem (ex.: escolaridade)

Frequências

table(dados$sexo)
## 
##  F  M 
## 36 24
prop.table(table(dados$sexo))
## 
##   F   M 
## 0.6 0.4
table(dados$escolaridade)
## 
## Fundamental       Médio    Superior 
##          16          27          17
prop.table(table(dados$escolaridade))
## 
## Fundamental       Médio    Superior 
##   0.2666667   0.4500000   0.2833333

Interpretação:

  • table() → frequência absoluta
  • prop.table() → proporção

2.2 Variáveis Quantitativas

  • Discreta: contagens
  • Contínua: medidas

Resumo rápido:

summary(dados[, c("idade", "altura_cm", "renda_mensal")])
##      idade         altura_cm      renda_mensal 
##  Min.   :12.00   Min.   :147.5   Min.   :1294  
##  1st Qu.:25.00   1st Qu.:161.3   1st Qu.:1746  
##  Median :29.50   Median :167.5   Median :2206  
##  Mean   :29.63   Mean   :167.9   Mean   :2746  
##  3rd Qu.:34.00   3rd Qu.:173.8   3rd Qu.:3304  
##  Max.   :47.00   Max.   :200.4   Max.   :7506

3. Medidas de Tendência Central

3.1 Média

mean(dados$idade)
## [1] 29.63333

A média é obtida somando os valores e dividindo pelo total de observações.


3.2 Mediana

median(dados$idade)
## [1] 29.5

A mediana é o valor central quando os dados são ordenados.
É mais robusta na presença de outliers.


3.3 Moda

O R base não tem função pronta para moda, mas podemos criar:

moda <- function(x) {
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]
}

moda(dados$sexo)
## [1] "F"
moda(dados$escolaridade)
## [1] "Médio"

A moda é muito útil para variáveis qualitativas.


4. Medidas de Dispersão

4.1 Variância

var(dados$idade)
## [1] 49.01582

Mede o espalhamento em relação à média (unidade ao quadrado).


4.2 Desvio Padrão

sd(dados$idade)
## [1] 7.00113

É a raiz quadrada da variância.

Se a média da idade for ~30 e o desvio padrão ~8, então valores comuns estão aproximadamente entre:

30 ± 8


5. Resumo Estatístico com summary()

summary(dados)
##      sexo           escolaridade           idade         altura_cm    
##  Length:60          Length:60          Min.   :12.00   Min.   :147.5  
##  Class :character   Class :character   1st Qu.:25.00   1st Qu.:161.3  
##  Mode  :character   Mode  :character   Median :29.50   Median :167.5  
##                                        Mean   :29.63   Mean   :167.9  
##                                        3rd Qu.:34.00   3rd Qu.:173.8  
##                                        Max.   :47.00   Max.   :200.4  
##   renda_mensal 
##  Min.   :1294  
##  1st Qu.:1746  
##  Median :2206  
##  Mean   :2746  
##  3rd Qu.:3304  
##  Max.   :7506

Para aplicar apenas às variáveis numéricas:

sapply(dados[, c("idade", "altura_cm", "renda_mensal")], summary)
##            idade altura_cm renda_mensal
## Min.    12.00000  147.5000      1294.00
## 1st Qu. 25.00000  161.2750      1745.75
## Median  29.50000  167.5000      2205.50
## Mean    29.63333  167.8567      2746.30
## 3rd Qu. 34.00000  173.8000      3304.00
## Max.    47.00000  200.4000      7506.00

6. Visualizações Básicas

6.1 Histograma

hist(dados$idade,
     main = "Histograma da Idade",
     xlab = "Idade",
     ylab = "Frequência")

Interpretação:

  • Altura das barras → frequência
  • Ajuda a identificar assimetria

6.2 Boxplot

boxplot(dados$renda_mensal,
        main = "Boxplot da Renda Mensal",
        ylab = "R$ (aprox.)")

Interpretação:

  • Linha central → mediana
  • Caixa → 50% central
  • Pontos isolados → possíveis outliers

6.3 Boxplot por Grupo

boxplot(renda_mensal ~ escolaridade, data = dados,
        main = "Renda Mensal por Escolaridade",
        xlab = "Escolaridade",
        ylab = "Renda Mensal (R$)")

Permite comparar padrões entre grupos.


7. Interpretação Final

Ao concluir uma análise descritiva, pergunte:

  • Qual é o valor típico?
  • Qual é a variação?
  • Existem outliers?
  • Há diferenças entre grupos?

8. Exercícios

  1. Calcule média, mediana e desvio padrão de altura_cm
  2. Faça um histograma de renda_mensal
  3. Compare idade por sexo: boxplot(idade ~ sexo, data = dados)
  4. Transforme a renda: log(dados$renda_mensal)

Conclusão

Neste tutorial aprendemos:

  • O que é estatística descritiva
  • Tipos de variáveis
  • Medidas de tendência central
  • Medidas de dispersão
  • Uso da função summary()
  • Interpretação de histogramas e boxplots

A estatística descritiva é a base para análises mais avançadas como:

  • Inferência estatística
  • Testes de hipótese
  • Regressão
  • Análise multivariada

Dominar esses conceitos é essencial para evoluir em análise de dados.