La meilleure façon de mettre deux histogrammes sur la même échelle?


14

Disons que j'ai deux distributions que je veux comparer en détail, c'est-à-dire d'une manière qui rend la forme, l'échelle et le décalage facilement visibles. Une bonne façon de procéder consiste à tracer un histogramme pour chaque distribution, à les placer sur la même échelle X et à les empiler les uns sous les autres.

Lors de cette opération, comment procéder au binning? Les deux histogrammes devraient-ils utiliser les mêmes limites de bac même si une distribution est beaucoup plus dispersée que l'autre, comme dans l'image 1 ci-dessous? Le regroupement doit-il être effectué indépendamment pour chaque histogramme avant le zoom, comme dans l'image 2 ci-dessous? Y a-t-il même une bonne règle empirique à ce sujet?

Image 1 Image 2


5
Les graphiques QQ sont de bien meilleurs outils pour une comparaison incisive des distributions empiriques. Leur utilisation évite complètement le problème de binning.
whuber

3
@whuber: D'accord, si vous voulez juste une visualisation sensible de si deux distributions sont différentes, mais l'approche histogramme est meilleure à mon humble avis si vous voulez un aperçu détaillé de la façon dont elles sont différentes.
dsimcha

3
@dsimcha Mon expérience a été le contraire. Le tracé QQ montre clairement (de manière quantitative) les différences d'échelle, de localisation et de forme, en particulier dans l'épaisseur des queues. (Essayez de comparer deux SD directement à partir des histogrammes, par exemple: c'est impossible quand leur valeur est proche. Sur un tracé QQ, vous n'avez besoin que de comparer les pentes, ce qui est rapide et relativement précis.) Un tracé QQ est inférieur à un histogramme en termes des modes de sélection, mais aucun histogramme n'est bon à cela tant qu'une quantité décente de données n'a pas été collectée et qu'un bon choix de bacs n'a pas été fait.
whuber

1
Je suis d'accord que les tracés QQ sont la meilleure solution, bien qu'ils n'évitent pas le problème des bacs, ils vous obligent simplement à placer les bacs à des endroits particuliers (les quantiles :-) D'autre part, cela implique que les bacs ne le font pas , ne devrait en effet pas être partagé par les deux distributions.
conjugateprior

1
@dsimcha, je pense que quelque chose comme les graphiques âge / sexe pourrait être des images utiles. Quoi qu'il en soit, pourquoi utiliser des histogrammes pour cela? Il suffit de tracer directement les fonctions de distribution. Cependant, si vous jouez avec des choses empiriques, la suggestion d'intrigue QQ est le meilleur choix.
Dmitrij Celov

Réponses:


7

Je pense que vous devez utiliser les mêmes bacs. Sinon, l'esprit vous joue des tours. Normal (0,2) semble plus dispersé par rapport à Normal (0,1) dans l'image n ° 2 que dans l'image n ° 1. Rien à voir avec les statistiques. Il semble que Normal (0,1) ait suivi un "régime".

-Ralph Winters

Les points d'extrémité médian et histogramme peuvent également altérer la perception de la dispersion. Notez que dans cette applet, une sélection de bin maximale implique une plage de> 1,5 - ~ 5 tandis qu'une sélection de bin minimale implique une plage de <1 -> 5,5

http://www.stat.sc.edu/~west/javahtml/Histogram.html


1
Pourriez-vous fournir une justification théorique de cette opinion?
whuber

Non, juste une opinion. Mais si j'avais le temps, je commencerais mes recherches dans le monde de l'emballage de vente au détail (perception du corps mince) et j'intégrerais une partie du travail de Tufte.
Ralph Winters

@whuber: il est principalement lié à la façon dont notre cerveau traite les informations. Lorsqu'il y a de plus petits bacs, notre esprit "rétrécit" également les limites de la courbe. Essayez d'inverser la taille des bacs de la fig. # 2 pour voir ce que je veux dire.
nico

@nico Oui, la question comporte un élément perceptuel. Mais au premier plan se trouve le problème statistique, car il a une influence beaucoup plus grande: plus petits casiers ==> plus de variabilité de l'échantillon dans les casiers ==> plus d'histogrammes "irréguliers" ==> plus de difficulté en comparaison. Ainsi, l'OMI, toute réponse valable devrait apporter le soutien de la théorie statistique (au minimum).
whuber

@whuber: Je faisais allusion au fait que la distribution semble dispersée différemment dans les deux images. Bien sûr, à quoi ils ressemblent n'a rien à voir avec combien ils sont vraiment dispersés.
nico

2

Une autre approche consisterait à tracer les différentes distributions sur le même tracé et à utiliser quelque chose comme le alphaparamètre dans ggplot2pour résoudre les problèmes de surplacement. L'utilité de cette méthode dépendra des différences ou des similitudes dans votre distribution car elles seront tracées avec les mêmes cases. Une autre alternative serait d'afficher des courbes de densité lissées pour chaque distribution. Voici un exemple de ces options et des autres options discutées dans le fil:

library(ggplot2)

df <- melt(
    data.frame( 
        x = rnorm(1000)
        , y = rnorm(1000, 0, 2)
    )
)


ggplot(data = df) + 
#   geom_bar(aes(x = value, fill = variable), alpha = 1/2)
#   geom_bar(aes(x = value)) + facet_grid(variable ~ .)
#   geom_density(aes(x = value, colour = variable))
#   stat_qq(aes(sample = value, colour = variable))

Cela ne pousse-t-il pas simplement la question à la sélection des largeurs de noyau appropriées et si (et comment) on peut comparer deux lissages en utilisant des largeurs de noyau différentes?
whuber

1
@whuber - point valide. Je n'essayais pas de suggérer que les courbes de densité étaient la méthode ultime à utiliser, offrant simplement d'autres alternatives. Il est clair à partir de ce post qu'il y a des avantages et des inconvénients à toute approche, donc il s'agissait de proposer cela comme une autre alternative viable à jeter dans le mélange.
Chase

À la lumière de cela, je vote votre réponse, +1.
whuber

0

Il s'agit donc de conserver la même taille de bac ou de conserver le même nombre de bacs? Je peux voir des arguments des deux côtés. Une solution de contournement consisterait à normaliser les valeurs en premier. Ensuite, vous pourriez conserver les deux.


Cela fonctionnerait lorsque les deux tailles d'échantillon sont similaires. Mais lorsqu'elles sont différentes, la taille de bac commune (même en unités standardisées) peut être appropriée pour l'un ou l'autre histogramme, mais pas pour les deux. Comment traiteriez-vous cette affaire?
whuber

Peut-être que nous pensons à différentes significations de normaliser. Je voulais dire celui que j'ai lié à où, par exemple, si une population a un stdev de 5 et l'autre a un stdev de 10, après la normalisation, ils auraient tous les deux un stdev de 1. Ils pourraient alors être plus équitablement comparés aux mêmes taille de la corbeille puisque chaque corbeille a une quantité comparable de pixels et de données. Ou peut-être que vous rencontriez le problème plus large que la "taille de bac appropriée" est un peu un art noir et unique à chaque ensemble de données ...
xan

Nous partageons le même sens de «normaliser». Le choix d'une taille de bac nécessite un jugement et une connaissance du contexte, mais il est difficile de le caractériser comme un "art noir": voir, par exemple, stats.stackexchange.com/q/798/919 .
whuber
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.