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
Postar um comentário