La función hist utiliza el método de Sturges por defecto para determinar el número de intervalos de clase del histograma. La selección es muy importante, ya que muchas clases incrementarán la variabilidad y muy pocas agruparán los datos demasiado.

El argumento breaks

El argumento breaks controla el número de barras o clases del histograma. El valor por defecto es breaks = "Sturges".

El método de Sturges (por defecto)

El método por defecto es el más recomendado en la mayoría de los casos.

# Datos de muestra
set.seed(2)
x <- rnorm(2000)

# Histograma
hist(x,
     main = "Sturges")

Histograma en R con el método de Sturges

Muchas clases

Si especificas un número de clases manualmente intenta seleccionar un valor adecuado, que no agrupe los datos en exceso.

# Datos de muestra
set.seed(2)
x <- rnorm(2000)

# Histograma
hist(x, breaks = 80,
     main = "Muchas clases")

Histograma con demasiadas clases

Pocas clases

El número de clases también puede ser demasiado pequeño en algunos escenarios.

# Datos de muestra
set.seed(2)
x <- rnorm(2000)

# Histograma
hist(x, breaks = 5,
     main = "Pocas clases")

Histograma con pocas clases

Método de Scott

Además del método de Sturges el argumento breaks también permite seleccionar el método de Scott.

# Datos de muestra
set.seed(2)
x <- rnorm(2000)

# Histograma
hist(x, breaks = "Scott",
     main = "Scott")

Histograma con el método de Scott en R

Método de Freedman-Diaconis (FD)

El algoritmo de Freedman-Diaconis se puede seleccionar pasando “Freedman-Diaconis” o “FD” al argumento.

# Datos de muestra
set.seed(2)
x <- rnorm(2000)

# Histograma
hist(x, breaks = "Freedman-Diaconis",
     main = "Freedman-Diaconis")
hist(x, breaks = "FD", # Equivalentee
     main = "Freedman-Diaconis") 

Histograma con el método Freedman-Diaconis

También puedes pasar un vector que devuelva el número de puntos de corte o una función para calcular el número de clases o los puntos de corte.

Método plug in

Una alternativa al método de Sturges o de seleccionar el número de clases a mano es utilizar el método plug-in para calcular la ventana óptima (Wand, 1995). Este método se implementa en KernSmooth y puedes utilizarlo como se muestra a continuación.

Selección de intervalos de clase con el método plug-in

# Datos de muestra
set.seed(2)
x <- rnorm(2000)

# install.packages("KernSmooth")
library(KernSmooth)

# Ventana óptima
bin_width <- dpih(x)

# Número de clases
nbins <- seq(min(x) - bin_width,
             max(x) + bin_width,
             by = bin_width)

# Histograma
hist(x, breaks = nbins,
     main = "Método plug-in")

También te puede interesar