Comment évaluer la similitude de deux histogrammes?


33

À partir de deux histogrammes, comment pouvons-nous évaluer s'ils sont similaires ou non?

Est-il suffisant de simplement regarder les deux histogrammes? La simple correspondance un à un pose le problème suivant: si un histogramme est légèrement différent et légèrement décalé, nous n'obtiendrons pas le résultat souhaité.

Aucune suggestion?


2
Que veut dire "similaire"? Le test Khi-deux et le test KS, par exemple, déterminent si deux histogrammes sont proches de l’ identique. Mais "similaire" pourrait signifier "avoir la même forme", en ignorant les différences de localisation et / ou d'échelle. Pourriez-vous clarifier votre intention?
whuber

Réponses:


8

Un article récent qui mérite d'être lu est:

Cao, Y. Petzold, L. Limitations de précision et mesure des erreurs dans la simulation stochastique de systèmes à réaction chimique, 2006.

Bien que cet article se concentre sur la comparaison des algorithmes de simulation stochastiques, l’idée principale est essentiellement de savoir comment comparer deux histogrammes.

Vous pouvez accéder au pdf à partir de la page Web de l'auteur.


Bonjour, c'est un beau papier, merci de nous avoir donné un lien pdf .. Je vais sûrement parcourir ce papier ..
Mew 3.4

12
Au lieu de fournir une référence, il serait bon que vous résumiez les points principaux du document. Les liens mourant, votre réponse pourrait devenir inutile pour les non-abonnés de ce journal (et la grande majorité de la population humaine est constituée de non-abonnés).
Tim

28

Il existe de nombreuses mesures de distance entre deux histogrammes. Vous pouvez lire une bonne catégorisation de ces mesures dans:

K. Meshgi et S. Ishii, «Extension de l'histogramme des couleurs avec des maillages pour améliorer la précision du suivi», dans Proc. of MVA'15, Tokyo, Japon, mai 2015.

Les fonctions de distance les plus populaires sont listées ici pour plus de commodité:

  • L0 Distance ou Hellinger

DL0=ih1(i)h2(i)

  • L1 , Manhattan ou City Block Distance

DL1=i|h1(i)h2(i)|

  • L=2 ou distance euclidienne

DL2=i(h1(i)h2(i))2

  • L ou distance de Chybyshev

DL=maxi|h1(i)h2(i)|

  • L ou distance fractionnelle (partie de la famille de distance Minkowski)p

DLp=(i|h1(i)h2(i)|p)1/p 0 < p < 1 et0<p<1

  • Intersection d'histogramme

D=1i(min(h1(i),h2(i))min(|h1(i)|,|h2(i)|)

  • Cosinus Distance

DCO=1ih1(i)h2(i)

  • Distance de Canberra

DCB=i|h1(i)h2(i)|min(|h1(i)|,|h2(i)|)

  • Coefficient de corrélation de Pearson

DCR=i(h1(i)1n)(h2(i)1n)i(h1(i)1n)2i(h2(i)1n)2

  • Divergence de Kolmogorov-Smirnov

DKS=maxi|h1(i)h2(i)|

  • Match distance

DMA=i|h1(i)h2(i)|

  • Distance de Cramer-von Mises

DCM=i(h1(i)h2(i))2

  • χ2 Statistiques

χ2=Σje(h1(je)-h2(je))2h1(je)+h2(je)

  • Distance Bhattacharyya

BH=1-Σjeh1(je)h2(je) & hellinger

  • Accord carré

SC=Σje(h1(je)-h2(je))2

  • Divergance de Kullback-Liebler

KL=Σjeh1(je)logh1(je)m(je)

  • Jefferey Divergence

J=Σje(h1(je)logh1(je)m(je)+h2(je)logh2(je)m(je))

  • Earth Mover's Distance (C’est le premier membre de Transports distance qui intègre l’information de binning au loin, pour plus d’informations, veuillez vous reporter à l’article susmentionné ou à l’ entrée Wikipedia .UNE

EM=mjenFjejΣje,jFjejUNEjejsvousmje,jFjej ΣjFjejh1(je),ΣjFjejh2(j),Σje,jFjej=mjen(Σjeh1(je)Σjh2(j)) et représente le flux de àFjejjej

  • Distance quadratique

QU=Σje,jUNEjej(h1(je)-h2(j))2

  • Distance quadratique-chi

QC=Σje,jUNEjej(h1(je)-h2(je)(ΣcUNEcje(h1(c)+h2(c)))m)(h1(j)-h2(j)(ΣcUNEcj(h1(c)+h2(c)))m) et000

Une implémentation Matlab de certaines de ces distances est disponible dans mon référentiel GitHub: https://github.com/meshgi/Histogram_of_Color_Advancements/tree/master/distance Vous pouvez également rechercher des gars comme Yossi Rubner, Ofir Pelé, Marco Cuturi et Haibin Ling pour plus de distances de pointe.

Mise à jour: Une explication alternative pour les distances apparaît ici et là dans la littérature, je les énumère donc par souci d'exhaustivité.

  • Canberra distance (une autre version)

CB=Σje|h1(je)-h2(je)||h1(je)|+|h2(je)|

  • Dissimilarité de Bray-Curtis, distance de Sorensen (puisque la somme des histogrammes est égale à un, elle est égale à )L0

BC=1-2Σjeh1(je)=h2(je)Σjeh1(je)+Σjeh2(je)

  • Distance Jaccard (c.-à-d. Intersection sur l'union, une autre version)

jeOU=1-Σjemjen(h1(je),h2(je))ΣjemuneX(h1(je),h2(je))


Bienvenue sur notre site! Merci pour cette contribution.
whuber


Merci, une liste est magnifique, alors qu'elle ne permet pas de créer un opérateur de comparaison pour l'histogramme, par exemple pour dire celahist1 < hist2
Olha Pavliuk

22

La réponse standard à cette question est le test du chi carré . Le test KS concerne les données non liées, pas les données combinées. (Si vous disposez de données non liées, utilisez un test de style KS, mais si vous ne disposez que de l'histogramme, le test KS n'est pas approprié.)


Vous avez raison de dire que le test KS n'est pas approprié pour les histogrammes lorsqu'il est compris comme un test d'hypothèse sur la distribution des données sous-jacentes, mais je ne vois aucune raison pour que la statistique KS ne fonctionne pas correctement en tant que mesure de la similitude de deux. histogrammes.
whuber

Une explication de la raison pour laquelle le test de Kolmogorov-Smirnov n'est pas approprié avec des données regroupées serait utile.
naught101

Cela peut ne pas être aussi utile dans le traitement d'images que dans l'évaluation statistique de l'ajustement. Souvent, dans le traitement d'images, un histogramme de données est utilisé comme descripteur pour une région d'une image, l'objectif étant de laisser une distance entre les histogrammes pour refléter la distance entre les zones d'image. On peut en savoir très peu, voire rien du tout, sur les statistiques de population générales des données d’image sous-jacentes utilisées pour obtenir l’histogramme. Par exemple, les statistiques de population sous-jacentes lors de l'utilisation d'histogrammes de gradients orientés varieraient considérablement en fonction du contenu réel des images.
Ely

1
Stochtastic a répondu à naught101: stats.stackexchange.com/a/108523/37373
Lapis

10

Vous recherchez le test de Kolmogorov-Smirnov . N'oubliez pas de diviser les hauteurs de barre par la somme de toutes les observations de chaque histogramme.

Notez que le test KS indique également une différence si, par exemple, les moyennes des distributions sont décalées les unes par rapport aux autres. Si la translation de l'histogramme le long de l'axe des x n'est pas significative dans votre application, vous souhaiterez peut-être soustraire d'abord la moyenne de chaque histogramme.


1
La soustraction de la moyenne modifie la distribution nulle de la statistique KS. @David Wright soulève néanmoins une objection valable à l'application du test KS aux histogrammes.
whuber

7

Comme le fait remarquer David dans sa réponse, le test du khi-carré est nécessaire pour les données regroupées, car le test KS suppose des distributions continues. En ce qui concerne la raison pour laquelle le test KS est inapproprié (commentaire de naught101), la question de la question dans la littérature de statistiques appliquées mérite d’être soulevée ici.

Un échange amusant a commencé avec l'affirmation ( García-Berthou et Alcaraz, 2004 ) qu'un tiers des articles de Nature contenaient des erreurs statistiques. Cependant, un article ultérieur ( Jeng, 2006 , " Erreur dans les tests statistiques d'erreur dans les tests statistiques " - peut-être mon titre de papier préféré de tous les temps) a montré que Garcia-Berthou et Alcaraz (2005) ont utilisé des tests KS sur des données discrètes, ce qui conduit à leur rapporter des valeurs p inexactes dans leur méta-étude. Le document Jeng (2006) fournit une discussion intéressante sur la question, montrant même que l’on peut modifier le test KS pour qu’il fonctionne avec des données discrètes. Dans ce cas particulier, la distinction se résume à la différence entre une distribution uniforme du dernier chiffre sur [0,9], P(x)=1

P(X)=19, (0X9)
(dans le test KS incorrect) et une distribution en peigne de fonctions delta, (sous la forme correcte modifiée) . À la suite de l'erreur initiale, Garcia-Berthou et Alcaraz (2004) ont incorrectement rejeté la valeur nulle, alors que le test du ki-carré et du test du SK modifié ne le fait pas. Dans tous les cas, le test du khi-carré est le choix standard dans ce scénario, même si KS peut être modifié pour fonctionner ici.
P(X)=1dixΣj=09δ(X-j)

-1

Vous pouvez calculer la corrélation croisée (convolution) entre les deux histogrammes. Cela prendra en compte de légères traductions.


1
Cela est automatiquement signalé comme étant de mauvaise qualité, probablement parce que c'est trop court. À l’heure actuelle, il s’agit plus d’un commentaire que d’une réponse à nos normes. Pouvez-vous développer? Nous pouvons aussi en faire un commentaire.
gung - Rétablir Monica

Étant donné que les histogrammes sont des représentations assez instables des données et qu'ils ne représentent pas des probabilités utilisant uniquement la hauteur (ils utilisent la surface ), on peut raisonnablement s'interroger sur l'applicabilité, la généralité ou l'utilité de cette approche, à moins d'indications plus précises.
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.