Quelle est la bonne façon de représenter graphiquement un très grand nombre de points de données appariés?


9

Dans mon domaine, la façon habituelle de tracer des données appariées consiste en une série de segments de ligne en pente mince, en les superposant à la médiane et à l'IC de la médiane pour les deux groupes:

entrez la description de l'image ici

Cependant, ce type de tracé devient beaucoup plus difficile à lire car le nombre de points de données devient très important (dans mon cas, j'ai de l'ordre de 10000 paires):

entrez la description de l'image ici

Réduire l'alpha aide un peu, mais ce n'est toujours pas génial. En cherchant une solution, je suis tombé sur ce document et j'ai décidé d'essayer de mettre en œuvre un «tracé de ligne parallèle». Encore une fois, cela fonctionne très bien pour un petit nombre de points de données:

entrez la description de l'image ici

Mais il est encore plus difficile de faire en sorte que ce type d'intrigue N est très grand:

entrez la description de l'image ici

Je suppose que je pourrais montrer séparément les distributions pour les deux groupes, par exemple avec des boîtes à moustaches ou des violons, et tracer une ligne avec des barres d'erreur en haut montrant les deux médianes / CI, mais je n'aime vraiment pas cette idée, car elle ne véhiculerait pas la nature jumelée des données.

Je ne suis pas non plus trop intéressé par l'idée d'un nuage de points 2D: je préférerais une représentation plus compacte, et idéalement une représentation dans laquelle les valeurs des deux groupes sont tracées le long du même axe. Par souci d'exhaustivité, voici à quoi ressemblent les données en tant que nuage 2D:

entrez la description de l'image ici

Quelqu'un connaît-il une meilleure façon de représenter les données appariées avec un échantillon de très grande taille? Pourriez-vous me lier à quelques exemples?

Éditer

Désolé, je n'ai clairement pas fait un assez bon travail pour expliquer ce que je cherche. Oui, le nuage de points 2D fonctionne, et il existe de nombreuses façons de l'améliorer afin de mieux transmettre la densité des points - je pourrais coder par couleur les points selon une estimation de la densité du noyau, je pourrais faire un histogramme 2D , Je pourrais tracer des contours au-dessus des points etc., etc ...

Cependant, je pense que c'est exagéré pour le message que j'essaie de transmettre. Je ne m'inquiète pas vraiment de montrer la densité 2D de points en soi - tout ce que je dois faire est de montrer que les valeurs pour les «barres» sont généralement plus grandes que celles pour les «points», d'une manière aussi simple et claire que possible , et sans perdre la nature appariée essentielle des données. Idéalement, je voudrais tracer les valeurs appariées pour les deux groupes le long des mêmes axes plutôt que orthogonaux, car cela facilite la comparaison visuelle.

Il n'y a peut-être pas de meilleure option qu'un nuage de points, mais j'aimerais savoir s'il existe des alternatives qui pourraient fonctionner.


1
Avez-vous essayé de tracer simplement les valeurs correspondantes de barsur l'horizontale et dotsur l'axe vertical comme un nuage de points?
Jusqu'à Hoffmann le

@TillHoffmann Oui, je l'ai mentionné à la fin de ma question. C'est probablement la meilleure option que j'ai pour le moment, mais je préférerais une représentation plus compacte, et idéalement une représentation qui représente les valeurs des deux groupes sur le même axe (peut-être suis-je excessivement exigeant ...). J'ajouterai le nuage de points à ma question.
ali_m

désolé, j'ai raté ça. Comment générez-vous actuellement vos données synthétiques?
Jusqu'à Hoffmann le

2
Pourriez-vous expliquer ce que vous entendez par une représentation "compacte"? Le nuage de points est clairement supérieur à tous les autres en termes de représentation des relations ainsi que de données individuelles inhabituelles dans une petite zone; il ne fait que s'améliorer à mesure que la taille de l'ensemble de données augmente. (10 000 n'est pas grand pour un nuage de points.) Vous mentionnez tellement de graphiques différents qu'il est impossible de déduire ce dont vous avez vraiment besoin. Veuillez nous dire le but de votre visualisation: quel type d'informations espérez-vous apprendre ou transmettre aux autres? Avec quelle précision et rapidité entendez-vous qu'il soit perçu et compris?
whuber

1
@whuber Désolé d'être flou. Ce que j'espérais, c'était un moyen de représenter les données de telle sorte que les valeurs des deux groupes soient tracées le long des mêmes axes plutôt que des axes orthogonaux (comme elles le sont dans les tracés de la `` ligne en pente '' et de la `` ligne parallèle ''). Le message est très simple: les valeurs des «barres» sont généralement plus élevées que celles des «points». Au-delà de cela, je ne me soucie pas beaucoup de représenter la densité de la distribution, même si je tiens à dire qu'il y a un grand nombre de paires dans l'échantillon.
ali_m

Réponses:


7

Compte tenu de la façon dont je comprends votre objectif, je calculerais simplement les différences appariées ( bars - dots), puis représenterais ces différences dans un histogramme ou un graphique d'estimation de la densité du noyau. Vous pouvez également ajouter n'importe quelle combinaison de (1) une ligne verticale correspondant à une différence nulle (2) n'importe quel choix de centiles.

Cela mettrait en évidence quelle partie des données a barsdépassé dots, et généralement quelles sont les différences observées.

(J'ai supposé que vous n'êtes pas intéressé à afficher les valeurs réelles et brutes de barset dotsdans le même tracé.)

On pourrait également tracer la confiance ou des intervalles crédibles postérieurs pour indiquer si ces différences sont significatives. (H / T @MrMeritology!)


Ajout à cette réponse: vous pouvez également tracer des intervalles de confiance pour les différences appariées qui indiqueront visuellement si les différences sont significatives ou non.
MrMeritology

Avec autant de paires, il pourrait être intéressant de voir si la différence dépend également de ce "point de départ", vous pouvez donc adapter un modèle comme yB=μ+décalage(yUNE)+Δ(yUNE-y¯UNEou peut-être même un terme quadratique! Graphiquement, tracez le paisr comme vous l'avez montré, mais avec un alpha et une couleur réduits selon la pente.
kjetil b halvorsen

2

Avec autant de paires, vous avez la possibilité d'étudier plus en profondeur la structure, comme si la différence yB-yUNE dépend du "point de départ" yUNE!

Vous pourriez adapter un modèle comme

yB=μ+décalage(yUNE)+Δ(yUNE-y¯UNE)+ϵ
et vous pourriez même ajouter un terme quadratique +Δ2(yUNE-y¯UNE)2 ou vous pouvez remplacer le terme linéaire + quadratique par une spline à l'aide d'un modèle additif généralisé (ou splines de régression).

Graphiquement, vous pouvez afficher les lignes comme vous l'avez montré, avec un facteur alpha réduit (*), peut-être réduire davantage en n'affichant qu'un échantillon aléatoire de lignes. Ensuite, vous pouvez colorer les lignes en fonction de la pente ...

Pour les graphiques de Bland-Altman, mentionnés dans un commentaire de Nick Cox, voir par exemple un exemple d' accord entre des méthodes avec plusieurs observations par individu ou regardez à travers la balise.

(*) Le facteur alpha est ici un paramètre graphique qui rend les points du tracé transparents, de sorte que les premiers points tracés ne sont pas totalement occultés par un surplacement ultérieur.


1
Dans un esprit similaire, je pense, en traçant la différence (A -B) par rapport à la moyenne (A + B) / 2 est un dispositif courant dans de nombreux domaines. Un nom qui est resté dans les statistiques médicales est "Bland-Altman plots", bien que les auteurs concernés n'aient pas revendiqué l'originalité et que l'idée remonte au moins aux années 1950.
Nick Cox du

1

Je préférerais le nuage de points 2D. Je dessinerais la ligne de référence en gris clair pour plus de contraste dans la région surpeuplée. Pour réduire l'encombrement, dessinez les marqueurs sans bordure, réduisez davantage l'alpha, réduisez la taille des marqueurs.

Cela dit, si vous êtes plus intéressé par les paires typiques que par les ailes de la distribution, essayez de tracer la ligne de la somme cumulée de la dotspar rapport à la somme cumulée de la bars. L'intrigue est toujours en 2D mais avec beaucoup moins d'encre. Pour enregistrer également la zone de traçage, vous pouvez faire pivoter la trace de 45 ° afin que le cadre serve de direction de référence.

Ce graphique montrerait également toute tendance dans les données. Si le processus est connu pour être stationnaire, trier les paires par, par exemple, leur moyenne géométrique, sqrt(bars*dots).


0

Je recommanderais de tracer les lignes telles que vous les avez pour la médiane et les quartiles, ou autant de centiles que vous le souhaitez. La médiane pourrait rester plus épaisse / plus perceptible que les autres lignes de centile. Cela aiderait à préserver la capacité de voir comment les données se comportent dans la distribution sans compromettre la simplicité et la familiarité du tracé actuellement utilisé dans votre domaine.

De plus, avec une taille d'échantillon aussi élevée, la tendance moyenne ou médiane avec barres d'erreur serait probablement suffisante car vous apprécieriez tellement le théorème de la limite centrale. Le champ biomédical repose également sur ces tracés linéaires appariés, mais c'est souvent le cas parce que la taille de l'échantillon peut être de l'ordre de 10-20, il est donc important de visualiser les points de levier potentiels.


0

Ma première suggestion est un nuage de points.

Si 10000 points inégalement répartis dans votre parcelle sont toujours un nuage vague, envisagez une carte thermique. La couleur du pixel à x = 10,5, y = 11,5 indiquerait combien de fois la valeur entre 10,45 et 10,55 est mappée sur une valeur comprise entre 11,45 et 11,55: 0 = blanc = RVB (255,255,255), 1 = bleu = RGB (0, 0,255), 2 = RVB (1,0254), ... 256 et plus = RVB (255,0,0) = rouge


Cela me donne essentiellement le même type de représentation qu'une diffusion 2D, sauf avec moins de résolution. Je vais peut-être finir par faire quelque chose comme ça, mais j'espérais idéalement une représentation plus compacte qui trace les valeurs des deux groupes sur le même axe, plutôt que des axes orthogonaux.
ali_m

1
En regardant votre nuage de points, je vois que vous perdez beaucoup d'informations au centre de votre "tache d'encre". Vous devez faire quelque chose, soit en appliquant une transformation (logarithme?) Soit avec la carte de santé que je suggère.
Dirk Horsten du

Désolé! Votre suggestion est tout à fait raisonnable - je n'ai tout simplement pas fait un assez bon travail pour expliquer ce que je recherche. Oui, un tracé à deux dimensions (nuage de points, carte thermique, tracé de contour, etc.) ferait un bon travail pour représenter la densité des points d'échantillonnage, mais je pense que c'est plus d'informations que je n'ai vraiment besoin d'afficher. Tout ce que je dois faire, c'est montrer que les valeurs des «barres» sont généralement plus élevées que celles des «points». Je cherche le moyen le plus simple de le montrer tout en préservant la nature appariée des données.
ali_m

La diagonale sur le diagramme de chattes n'indique-t-elle pas assez bien la direction?
Dirk Horsten du

Non, mais j'ai peut-être des attentes déraisonnables :-)
ali_m
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.