Histogramme avec bacs uniformes vs non uniformes


10

Cette question décrit la différence fondamentale entre un histogramme uniforme et non uniforme. Et cette question traite de la règle de base pour choisir le nombre de cases d'un histogramme uniforme qui optimise (dans un certain sens) le degré auquel l'histogramme représente la distribution à partir de laquelle les échantillons de données ont été tirés.

Je n'arrive pas à trouver le même genre de discussion sur «l'optimalité» entre les histogrammes uniformes et non uniformes. J'ai une distribution non paramétrique en cluster avec des valeurs aberrantes éloignées, donc un histogramme non uniforme a plus de sens intuitivement. Mais j'aimerais voir une analyse plus précise des deux questions suivantes:

  1. Quand un histogramme à bac uniforme est-il meilleur qu'un histogramme à bac non uniforme?
  2. Qu'est-ce qu'un bon nombre de casiers pour un histogramme non uniforme?

Pour un histogramme non uniforme, je suis considéré comme le cas le plus simple où nous prenons échantillons d'une distribution inconnue, ordonnons les valeurs résultantes et les séparons en bacs de sorte que chaque bac ait de ceux-ci échantillons (en supposant que pour un grand entier ). Les plages sont formées en prenant le milieu entre le des valeurs dans le bac i et le \ min des valeurs dans le bac i + 1 . Ici et ici sont des liens qui décrivent ce type d'histogrammes non uniformes.nnkknnckcmaximini+1


Il n'y a pas assez d'informations pour répondre (2). Quelles sont les conditions de non-uniformité? Pouvez-vous choisir les bacs que vous aimez ou y a-t-il des restrictions? Que souhaitez-vous optimiser? par exemple, voulez-vous une erreur quadratique moyenne intégrée minimale entre et ? Ou autre chose? ff^
Glen_b -Reinstate Monica

@Glen_b Je décris un peu plus en détail le type d'histogramme que je considère dans le cas d'un bac non uniforme.
Alan Turing

Vérifiez votre modification. Voulez-vous dire "n = cm" plutôt que "cn"? Il y a aussi une faute de frappe plus tard.
Glen_b -Reinstate Monica

Essayez-vous de transmettre quelque chose comme ça ?
Glen_b -Reinstate Monica

Voir également cette discussion d'un compromis entre cela et l'histogramme habituel
Glen_b -Reinstate Monica

Réponses:


7

Quand un histogramme à bac uniforme est-il meilleur qu'un histogramme à bac non uniforme?

Cela nécessite une sorte d'identification de ce que nous cherchons à optimiser; beaucoup de gens essaient d'optimiser l'erreur quadratique moyenne intégrée moyenne, mais dans de nombreux cas, je pense que cela manque un peu de faire un histogramme; souvent (à mes yeux) des «sur-lissages»; pour un outil d'exploration comme un histogramme, je peux tolérer beaucoup plus de rugosité, car la rugosité elle-même me donne une idée de la mesure dans laquelle je dois "lisser" à l'œil; J'ai tendance à doubler au moins le nombre habituel de bacs de ces règles, parfois beaucoup plus. J'ai tendance à être d'accord avec Andrew Gelman à ce sujet; en effet, si mon intérêt était vraiment d'obtenir une bonne AIMSE, je ne devrais probablement pas envisager un histogramme de toute façon.

Nous avons donc besoin d'un critère.

Permettez-moi de commencer par discuter de certaines des options des histogrammes de surface non égaux:

Il existe certaines approches qui font plus de lissage (moins de casiers, plus larges) dans les zones de faible densité et ont des casiers plus étroits où la densité est plus élevée - comme les histogrammes «à surface égale» ou «à nombre égal». Votre question modifiée semble prendre en compte la possibilité d'un nombre égal.

La histogramfonction dans le latticepackage de R peut produire des barres approximativement égales:

library("lattice")
histogram(islands^(1/3))  # equal width
histogram(islands^(1/3),breaks=NULL,equal.widths=FALSE)  # approx. equal area

comparaison d'égale largeur et d'aire égale

Ce plongeon juste à droite du bac le plus à gauche est encore plus clair si vous prenez la quatrième racine; avec des bacs de même largeur, vous ne pouvez pas le voir à moins que vous n'utilisiez 15 à 20 fois plus de bacs, puis la queue droite a l'air terrible.

Il y a un histogramme à nombre égal ici , avec R-code, qui utilise des quantiles d'échantillonnage pour trouver les ruptures.

Par exemple, sur les mêmes données que ci-dessus, voici 6 bacs avec (espérons-le) 8 observations chacun:

histogramme à nombre égal

ibr=quantile(islands^(1/3),0:6/6)
hist(islands^(1/3),breaks=ibr,col=5,main="")

Cette question CV renvoie à un article de Denby et Mallows dont une version téléchargeable à partir d'ici décrit un compromis entre des bacs de même largeur et des bacs de même surface.

Il répond également aux questions que vous vous posiez dans une certaine mesure.

Vous pourriez peut-être considérer le problème comme celui d'identifier les ruptures dans un processus de Poisson à morceaux constants. Cela conduirait à travailler comme ça . Il y a aussi la possibilité connexe d'examiner des algorithmes de type clustering / classification sur (disons) les nombres de Poisson, dont certains algorithmes produiraient un certain nombre de casiers. Le regroupement a été utilisé sur des histogrammes 2D ( images , en effet) pour identifier des régions relativement homogènes.

-

Si nous avions un histogramme à nombre égal et un critère à optimiser, nous pourrions alors essayer une plage de nombres par groupe et évaluer le critère d'une manière ou d'une autre. Le document Wand mentionné ici [ papier , ou document de travail pdf ] et certaines de ses références (par exemple aux documents Sheather et al par exemple) décrivent une estimation de la largeur de la poubelle "enfichable" basée sur des idées de lissage du noyau pour optimiser AIMSE; d'une manière générale, ce type d'approche devrait être adaptable à cette situation, même si je ne me souviens pas l'avoir fait.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.