Estou interessado em encontrar o melhor método possível para determinar quantas caixas devo usar em um histograma. Meus dados devem variar de 30 a 350 objetos, no máximo, e, em particular, estou tentando aplicar limiar (como o método de Otsu) em que objetos "bons", dos quais eu deveria ter menos e mais espalhados, são separados de " objetos "ruins", que devem ter um valor mais denso. Um valor concreto teria uma pontuação de 1 a 10 para cada objeto. Eu tinha 5 a 10 objetos com notas de 6 a 10 e 20 a 25 objetos com notas de 1 a 4. Eu gostaria de encontrar um padrão de classificação de histograma que geralmente permita que algo como o método de Otsu limite os objetos de baixa pontuação. No entanto, na implementação de Otsu que eu já vi, o tamanho da lixeira era 256 e, geralmente, tenho muito menos pontos de dados que 256, o que para mim sugere que 256 não é um bom número de lixeira. Com tão poucos dados, que abordagens devo adotar para calcular o número de posições a serem usadas?
fonte
Respostas:
A regra Freedman-Diaconis é muito robusta e funciona bem na prática. A largura do compartimento é definida como . Portanto, o número de posições é , onde é o número de observações, max é o valor máximo e min é o valor mínimo.h=2×IQR×n−1/3 (max−min)/h n
Na base R, você pode usar:
Para outras bibliotecas de plotagem sem essa opção (por exemplo,
ggplot2
), você pode calcular a largura de caixa como:fonte
IQR
?num_bins <- diff(range(x)) / (2 * IQR(x) / length(x)^(1/3))
nclass.FD
não existia nove anos atrás.Se você usar poucas caixas, o histograma realmente não retrata os dados muito bem. Se você tiver muitas caixas, terá uma aparência de pente quebrada, o que também não dá uma noção da distribuição.
Uma solução é criar um gráfico que mostre todos os valores. Um gráfico de pontos ou uma distribuição de frequência cumulativa, que não requer nenhum compartimento.
Se você deseja criar uma distribuição de frequência com compartimentos igualmente espaçados, decida quantos compartimentos (ou a largura de cada um). A decisão depende claramente do número de valores. Se você tiver muitos valores, seu gráfico ficará melhor e será mais informativo se você tiver muitos compartimentos. Esta página da Wikipedia lista vários métodos para decidir a largura do compartimento a partir do número de observações. O método mais simples é definir o número de posições iguais à raiz quadrada do número de valores que você está classificando.
Esta página do Hideaki Shimazaki explica um método alternativo. É um pouco mais complicado de calcular, mas parece fazer um ótimo trabalho. A parte superior da página é um aplicativo Java. Passe o mouse para ver a teoria e a explicação e continue navegando para encontrar links para os papéis que explicam o método.
fonte
Talvez o artigo " Variações no histograma " de Denby e Mallows seja interessante:
Eles também mencionam que o código em R está disponível mediante solicitação.
fonte
Não sei se isso é estritamente uma boa prática, mas tenho a tendência de produzir mais de um histograma com larguras diferentes de compartimento e escolher o histograma que histograma usar com base no histograma que se encaixa na interpretação que estou tentando comunicar melhor. Enquanto isso introduz alguma objetividade na escolha do histograma, justifico com base em que tive muito mais tempo para entender os dados do que a pessoa para quem estou dando o histograma, por isso preciso enviar uma mensagem muito concisa.
Também sou um grande fã de apresentar histogramas com o mesmo número de pontos em cada compartimento, em vez da mesma largura. Normalmente, acho que esses dados representam os dados muito melhor do que a largura constante da bandeja, embora sejam difíceis de produzir.
fonte
Você viu o método Shimazaki-Shinomoto ?
Embora pareça ser computacionalmente caro, pode fornecer bons resultados. Vale a pena tentar se o tempo computacional não for problema seu. Existem algumas implementações desse método em java, MATLAB, etc, no seguinte link, que é executado com rapidez suficiente: interface da web
fonte
Se eu precisar determinar o número de posições programaticamente, geralmente começo com um histograma que possui muito mais posições do que o necessário. Depois que o histograma é preenchido, combino os compartimentos até ter entradas suficientes por compartimento para o método que estou usando, por exemplo, se eu quiser modelar incertezas de Poisson em um experimento de contagem com incertezas de uma distribuição normal até que eu tenha mais do que 10 entradas.
fonte
Por favor, veja esta resposta como um complemento da resposta do Sr. Rob Hyndman .
Para criar gráficos de histograma com exatamente os mesmos intervalos ou 'binwidths' usando a regra Freedman – Diaconis com R básico ou
ggplot2
pacote, podemos usar um dos valores dahist()
função, a saberbreaks
. Suponha que nós queremos criar um histogramaqsec
demtcars
dados usando a regra Freedman-Diaconis. No R básico usamosEnquanto isso, no
ggplot2
pacote usamosOu alternativamente
Todos eles geram gráficos de histograma com exatamente os mesmos intervalos e número de posições desejadas.
fonte
Eu tenho 600 observações para Au g / t. O tamanho da lixeira 1 me fornece o seguinte:
A seleção automática (omitir o intervalo da bandeja) fornece:
Os dados parecem O'K no primeiro e no segundo gráficos, como se não houvesse problema com a integridade dos dados. Somente o tamanho da bandeja 0,1 (g / t) responde à pergunta: as medidas eram imprecisas e imprecisas
Meu julgamento: 1. Não existe uma técnica de medição na Terra para mostrar o verdadeiro valor do fenômeno natural. Todas as medições são aproximadas, algumas sendo próximas ao valor real. Depende do projeto de amostragem, calibração, qualificações humanas, etc. 2. É por isso que a distribuição é distorcida e não simétrica. 3.No entanto, o formato da distribuição deve se parecer com uma seção "em forma de sino", pelo menos aproximadamente. Um sino de cada vez (a menos que haja vários ambientes geológicos). 4.A distribuição de frequência com a manipulação do tamanho da lixeira pode ajudar a revelar o padrão de precisão e exatidão das medidas realizadas. Para que seja necessário um levantamento experimental do tamanho da lixeira em vez de uma regra cortada na pedra.
fonte