Distribuição de Frequência com intevalo de classe em linguagem R

A distribuição de frequência é uma das ferramentas mais básicas e importantes da estatística descritiva. Ela organiza os dados de forma resumida, mostrando o número de classes, o ponto médios das classes, quantas vezes cada valor aparece (frequência absoluta), como essa quantidade se acumula ao longo dos dados (frequência absoluta acumulada), e qual a proporção percentual que cada valor representa (frequência relativa e relativa acumulada). Nesta postagem, você vai entender o conceito de cada tipo de frequência e aprender a criar uma distribuição de frequência completa em R, com tabela e gráficos ilustrativos.


Tipos de Frequência

  • Classes (K):
    • São intervalos de valores que agrupam os dados.
  • Ponto médio (pm):
    • São os valores que representam o centro do intervalo das classes.
  • Frequência Absoluta (f):
    • Número de vezes que um valor aparece nos dados.
  • Frequência Acumulada (F):
    • Soma acumulada das frequências absolutas até aquele ponto.
  • Frequência Relativa (f%):
    • Percentual que representa cada valor em relação ao total de observações.
  • Frequência Relativa Acumulada (F%):
    • Soma acumulada dos percentuais até aquele valor.

O que é uma distribuição de Frequência?

Quando temos um conjunto de dados, é comum haver repetições de valores. Em vez de listar todos os números, podemos resumir as ocorrências em uma tabela. Por exemplo, imagine as idades de um grupo de pessoas:


18, 19, 19, 20, 22, 22, 22, 22, 23, 23, 23, 24, 25, 25, 26, 26, 27, 27, 27


Conjunto de frequências individuais

1. Vetor com idades.


idades <- c(18, 19, 19, 20, 22, 22, 22, 22, 23, 23, 24, 25, 25, 26, 26, 27, 27, 27)

2.Número de classes:


# Quantidade de elementos.
n <- length(idades)
# Número de classes.
k <- ceiling(sqrt(n))

3. Limites e amplitude:


idade_minima <- min(idades)
idade_maxima <- max(idades)
amplitude_total <- idade_maxima - idade_minima
amplitude_total
amplitude_classe <- ceiling(amplitude_total / k)

# Criar limites das classes
limites <- seq(idade_minima, idade_maxima + amplitude_classe, by = amplitude_classe)

4. Classe, frequências e ponto médio:


classes <- cut(idades, breaks = limites, right = FALSE, include.lowest = TRUE)
freq_abs <- as.numeric(table(classes))
freq_rel <- round(prop.table(freq_abs) * 100, 2)
freq_abs_acum <- cumsum(freq_abs)
freq_rel_acum <- round(cumsum(freq_rel), 2)

# Pontos médios
lim_inf <- limites[-length(limites)]
lim_sup <- limites[-1]
pontos_medios <- (lim_inf + lim_sup) / 2

5. Tabela de distribuição de frequência:


tabela_freq <- data.frame(
  Classe = paste("[", lim_inf, "-", lim_sup, ")", sep = ""),
  Ponto_Médio = pontos_medios,
  Freq_Absoluta = freq_abs,
  Freq_Relativa = freq_rel,
  Freq_Acumulada = freq_abs_acum,
  Freq_Rel_Acumulada = freq_rel_acum
)

print(tabela_freq)

# Saída:

   Classe Ponto_Médio Freq_Absoluta Freq_Relativa Freq_Acumulada Freq_Rel_Acumulada
1 [18-20)          19             3         16.67              3              16.67
2 [20-22)          21             1          5.56              4              22.23
3 [22-24)          23             6         33.33             10              55.56
4 [24-26)          25             3         16.67             13              72.23
5 [26-28)          27             5         27.78             18             100.01


Histograma.


# Histograma
hist(idades,
     breaks = limites,             
     right = FALSE,                
     col = "lightblue",            
     border = "gray",              
     main = "Histograma das Idades",
     xlab = "Idades",
     ylab = "Frequência Absoluta")


Histograma com curva de densidade.


# Exibe o histograma com densidade.
hist(idades,
     breaks = limites,
     right = FALSE,
     freq = FALSE,                 
     col = "lightgreen",
     border = "gray",
     main = "Histograma com Curva de Densidade",
     xlab = "Idades",
     ylab = "Densidade")

# Adiciona a curva de densidade
lines(density(idades), col = "red", lwd = 2)


Conclusão

As tabelas de frequência são uma das formas mais eficazes de resumir e visualizar dados. Com elas, é possível identificar:

  • Quais valores aparecem com maior frequência (moda);
  • Como os dados se acumulam;
  • Qual a proporção percentual de cada categoria.

Em R, a criação dessas tabelas é simples, rápida e totalmente automatizável — ideal para análises exploratórias e relatórios estatísticos. Muito obrigado e até a próxima.

Repositório de exemplo: https://github.com/jcarlossc/tabela_frequencia

Comentários

Postagens mais visitadas deste blog