Estoy interesado en encontrar un método lo más óptimo posible para determinar cuántos contenedores debo usar en un histograma. Mis datos deben oscilar entre 30 y 350 objetos como máximo, y en particular estoy tratando de aplicar un umbral (como el método de Otsu) donde los objetos "buenos", de los que debería tener menos y deberían estar más separados, están separados de " "malos", que deberían tener un valor más denso. Un valor concreto tendría una puntuación de 1-10 para cada objeto. Tenía 5-10 objetos con puntajes 6-10 y 20-25 objetos con puntajes 1-4. Me gustaría encontrar un patrón de agrupación de histograma que generalmente permita que algo como el método de Otsu limite los objetos de baja puntuación. Sin embargo, en la implementación de Otsu que he visto, el tamaño del contenedor era 256 y, a menudo, tengo muchos menos puntos de datos que 256, lo que para mí sugiere que 256 no es un buen número de contenedor. Con tan pocos datos, ¿qué enfoques debo tomar para calcular la cantidad de contenedores a usar?
fuente
Respuestas:
La regla de Freedman-Diaconis es muy robusta y funciona bien en la práctica. El ancho del contenedor se establece en . Entonces, el número de contenedores es , donde es el número de observaciones, max es el valor máximo y min es el valor mínimo.h = 2 × IQR × n- 1 / 3 ( max - min ) / h norte
En la base R, puedes usar:
Para otras bibliotecas de trazado sin esta opción (p. Ej.
ggplot2
), Puede calcular el ancho de bin como:fuente
IQR
?num_bins <- diff(range(x)) / (2 * IQR(x) / length(x)^(1/3))
nclass.FD
No existía hace nueve años.Si usa muy pocos contenedores, el histograma realmente no representa muy bien los datos. Si tienes demasiados contenedores, obtienes un aspecto de peine roto, que tampoco da una idea de la distribución.
Una solución es crear un gráfico que muestre cada valor. Ya sea un gráfico de puntos o una distribución de frecuencia acumulativa, que no requiere ningún bin.
Si desea crear una distribución de frecuencia con bins igualmente espaciados, debe decidir cuántos bins (o el ancho de cada uno). La decisión depende claramente del número de valores. Si tiene muchos valores, su gráfico se verá mejor y será más informativo si tiene muchos contenedores. Esta página de wikipedia enumera varios métodos para decidir el ancho del contenedor a partir del número de observaciones. El método más simple es establecer el número de contenedores igual a la raíz cuadrada del número de valores que está agrupando.
Esta página de Hideaki Shimazaki explica un método alternativo. Es un poco más complicado de calcular, pero parece hacer un gran trabajo. La parte superior de la página es una aplicación Java. Desplácese para ver la teoría y la explicación, luego siga desplazándose para encontrar enlaces a los documentos que explican el método.
fuente
Quizás el documento " Variaciones sobre el histograma " de Denby y Mallows sea de interés:
También mencionan que el código en R está disponible a pedido.
fuente
No estoy seguro de que esto cuente como estrictamente una buena práctica, pero tiendo a producir más de un histograma con diferentes anchos de bin y elegir el histograma que histgram usar en función de qué histgram se ajusta a la interpretación que estoy tratando de comunicar mejor. Si bien esto introduce cierta objetividad en la elección del histograma, lo justifico porque he tenido mucho más tiempo para comprender los datos que la persona a la que le estoy dando el histograma, por lo que debo enviarles un mensaje muy conciso.
También soy un gran admirador de presentar histogramas con el mismo número de puntos en cada bin en lugar del mismo ancho de bin. Por lo general, encuentro que estos representan los datos mucho mejor que el ancho constante del contenedor, aunque son mucho más difíciles de producir.
fuente
¿ Viste el método Shimazaki-Shinomoto ?
Aunque parece ser computacionalmente costoso, puede darle buenos resultados. Vale la pena intentarlo si el tiempo computacional no es su problema. Hay algunas implementaciones de este método en java, MATLAB, etc., en el siguiente enlace, que se ejecuta lo suficientemente rápido: interfaz web
fuente
Si necesito determinar la cantidad de contenedores mediante programación, generalmente comienzo con un histograma que tiene muchos más contenedores de los necesarios. Una vez que se completa el histograma, combino bins hasta que tenga suficientes entradas por bin para el método que estoy usando, por ejemplo, si quiero modelar incertidumbres de Poisson en un experimento de conteo con incertidumbres de una distribución normal hasta que tenga más de 10 entradas.
fuente
Vea esta respuesta como un complemento de la respuesta del Sr. Rob Hyndman .
Para crear gráficos de histograma con exactamente los mismos intervalos o 'anchuras de contenedor' utilizando la regla de Freedman-Diaconis, ya sea con R básico o
ggplot2
paquete, podemos usar uno de los valores de lahist()
función, a saberbreaks
. Supongamos que queremos crear un histograma deqsec
demtcars
datos utilizando la regla Freedman-Diaconis. En R básico usamosMientras tanto, en el
ggplot2
paquete usamosO alternativamente
Todos ellos generan gráficos de histograma con exactamente los mismos intervalos y el número de contenedores como se esperaba.
fuente
Tengo 600 observaciones para Au g / t. El tamaño de la papelera 1 me da esto:
La selección automática (omitir el rango de bin) da esto:
Los datos se ven O'K en el primer y segundo gráfico, como si no hubiera ningún problema con la integridad de los datos. Solo el tamaño del contenedor 0.1 (g / t) responde a la pregunta: las mediciones fueron imprecisas e imprecisas
Mi opinión: 1. No existe una técnica de medición en la Tierra para mostrar el verdadero valor del fenómeno natural. Todas las medidas son aproximadas, algunas están cerca del valor verdadero. Depende del diseño de muestreo, la calibración, las calificaciones humanas, etc. 2. Es por eso que la distribución es sesgada en lugar de simétrica. 3. Sin embargo, la forma de la distribución debe parecerse a una sección "similar a una campana", al menos aproximadamente. Una campana a la vez (a menos que haya varios entornos geológicos). 4. La distribución de frecuencias con la manipulación del tamaño del contenedor puede ayudar a revelar un patrón sobre la precisión y precisión de las mediciones realizadas. Por lo tanto, uno necesita una recolección experimental del tamaño del contenedor en lugar de una regla cortada en piedra.
fuente