Wie beurteilen Sie die Ähnlichkeit zweier Histogramme?


33

Wie beurteilen wir anhand von zwei Histogrammen, ob sie ähnlich sind oder nicht?

Reicht es aus, nur die beiden Histogramme zu betrachten? Bei der einfachen Eins-zu-Eins-Zuordnung tritt das Problem auf, dass ein Histogramm, das sich geringfügig unterscheidet und geringfügig verschoben ist, nicht das gewünschte Ergebnis liefert.

Irgendwelche Vorschläge?


2
Was bedeutet "ähnlich"? Der Chi-Quadrat-Test und der KS-Test testen beispielsweise, ob zwei Histogramme nahezu identisch sind. Aber "ähnlich" könnte bedeuten, "die gleiche Form zu haben" und alle Unterschiede in Bezug auf Position und / oder Maßstab zu ignorieren. Könnten Sie Ihre Absicht klarstellen?
Whuber

Antworten:


8

Eine aktuelle Veröffentlichung, die es wert sein könnte, gelesen zu werden, ist:

Cao, Y. Petzold, L. Genauigkeitsbeschränkungen und die Messung von Fehlern in der stochastischen Simulation chemisch reagierender Systeme, 2006.

Obwohl sich dieser Aufsatz auf den Vergleich stochastischer Simulationsalgorithmen konzentriert, besteht die Hauptidee darin, zwei Histogramme zu vergleichen.

Sie können das PDF über die Webseite des Autors aufrufen.


Hallo, es ist ein nettes Papier, danke für den PDF-Link. Ich werde dieses Papier sicher durchgehen.
Mew 3.4

12
Anstatt eine Referenz anzugeben, wäre es gut, wenn Sie die Hauptpunkte des Papiers zusammenfassen würden. Links sterben, daher könnte Ihre Antwort in Zukunft für Nicht-Abonnenten dieser Zeitschrift unbrauchbar werden (und die überwiegende Mehrheit der Menschen sind Nicht-Abonnenten).
Tim

27

Es gibt viele Abstandsmaße zwischen zwei Histogrammen. Eine gute Kategorisierung dieser Maßnahmen finden Sie in:

K. Meshgi und S. Ishii, „Erweitern des Histogramms der Farben mit Gittern, um die Verfolgungsgenauigkeit zu verbessern“, in Proc. von MVA'15, Tokio, Japan, Mai 2015.

Die beliebtesten Entfernungsfunktionen sind hier aufgeführt:

  • L0 oder Hellinger Distanz

DL0=ichh1(ich)h2(ich)

  • L1 , Manhattan oder City Block Distance

DL1=ich|h1(ich)-h2(ich)|

  • L=2 oder euklidischer Abstand

DL2=ich(h1(ich)-h2(ich))2

  • L oder Chybyshev Entfernung

DL=meinxich|h1(ich)-h2(ich)|

  • L p oder Bruchdistanz (Teil der Minkowski-Distanzfamilie)p

DLp=(ich|h1(ich)-h2(ich)|p)1/p und0<p<1

  • Histogrammschnittpunkt

D=1-ich(michn(h1(ich),h2(ich))michn(|h1(ich)|,|h2(ich)|)

  • Kosinusabstand

DCO=1-ichh1(ich)h2(ich)

  • Canberra Entfernung

DCB=ich|h1(ich)-h2(ich)|michn(|h1(ich)|,|h2(ich)|)

  • Pearson-Korrelationskoeffizient

DCR=ich(h1(ich)-1n)(h2(ich)-1n)ich(h1(ich)-1n)2ich(h2(ich)-1n)2

  • Kolmogorov-Smirnov Divergance

DKS=meinxich|h1(ich)-h2(ich)|

  • Spielabstand

DMEIN=ich|h1(ich)-h2(ich)|

  • Cramer-von-Mises Entfernung

DCM=ich(h1(ich)-h2(ich))2

  • χ2

Dχ2=ich(h1(ich)-h2(ich))2h1(ich)+h2(ich)

  • Bhattacharyya Entfernung

DBH=1-ichh1(ich)h2(ich)

  • Quadratischer Akkord

DSC=ich(h1(ich)-h2(ich))2

  • Kullback-Liebler Divergance

DKL=ichh1(ich)lOGh1(ich)m(ich)

  • Jefferey Divergenz

DJD=ich(h1(ich)lOGh1(ich)m(ich)+h2(ich)lOGh2(ich)m(ich))

  • EIN

DEM=michnfichjich,jfichjEINichjsumich,jfichj jfichjh1(ich),jfichjh2(j),ich,jfichj=michn(ichh1(ich)jh2(j))fichjichj

  • Quadratischer Abstand

DQ.U=ich,jEINichj(h1(ich)-h2(j))2

  • Quadratic-Chi Entfernung

DQ.C=ich,jEINichj(h1(ich)-h2(ich)(cEINcich(h1(c)+h2(c)))m)(h1(j)-h2(j)(cEINcj(h1(c)+h2(c)))m)000

Eine Matlab-Implementierung einiger dieser Entfernungen ist in meinem GitHub-Repository verfügbar: https://github.com/meshgi/Histogram_of_Color_Advancements/tree/master/distance Sie können auch nach Leuten wie Yossi Rubner, Ofir Pele, Marco Cuturi und Haibin Ling suchen mehr Entfernungen auf dem neuesten Stand der Technik.

Update: Eine alternative Erklärung für die Entfernungen erscheint hier und da in der Literatur, deshalb liste ich sie hier der Vollständigkeit halber auf.

  • Canberra Entfernung (eine andere Version)

DCB=ich|h1(ich)-h2(ich)||h1(ich)|+|h2(ich)|

  • DL0

DBC=1-2ichh1(ich)=h2(ich)ichh1(ich)+ichh2(ich)

  • Jaccard Distance (Schnittpunkt über Union, andere Version)

DichOU=1-ichmichn(h1(ich),h2(ich))ichmeinx(h1(ich),h2(ich))


Willkommen auf unserer Webseite! Vielen Dank für diesen Beitrag.
whuber

Hier ist der Link zum Artikel
neves

Danke, ist eine Liste wunderbar, während es keinen Vergleichsoperator für Histogramm erstellen lässt, zum Beispiel zu sagen , dasshist1 < hist2
Olha Pavliuk

22

Die Standardantwort auf diese Frage ist der Chi-Quadrat-Test . Der KS-Test bezieht sich auf nicht kategorisierte Daten, nicht auf kategorisierte Daten. (Wenn Sie die nicht kategorisierten Daten haben, verwenden Sie auf jeden Fall einen KS-Test. Wenn Sie jedoch nur das Histogramm haben, ist der KS-Test nicht geeignet.)


Sie haben Recht, dass der KS-Test nicht für Histogramme geeignet ist, wenn er als Hypothesentest über die Verteilung der zugrunde liegenden Daten verstanden wird, aber ich sehe keinen Grund, warum die KS- Statistik als Maß für die Gleichheit von zwei nicht gut funktioniert Histogramme.
Whuber

Eine Erklärung, warum der Kolmogorov-Smirnov-Test mit Daten aus Gruppen nicht geeignet ist, wäre hilfreich.
Naught101

Dies ist bei der Bildverarbeitung möglicherweise nicht so hilfreich wie bei der statistischen Anpassung. Bei der Bildverarbeitung wird häufig ein Histogramm von Daten als Deskriptor für einen Bereich eines Bildes verwendet, und das Ziel besteht darin, dass ein Abstand zwischen Histogrammen den Abstand zwischen Bildfeldern widerspiegelt. Über die allgemeine Bevölkerungsstatistik der zugrunde liegenden Bilddaten, die zum Abrufen des Histogramms verwendet wurden, ist möglicherweise wenig oder überhaupt nichts bekannt. Beispielsweise würde sich die zugrunde liegende Bevölkerungsstatistik bei Verwendung von Histogrammen mit orientierten Verläufen je nach tatsächlichem Inhalt der Bilder erheblich unterscheiden.
ely

1
Die Frage von naught101 wurde von Stochtastic beantwortet: stats.stackexchange.com/a/108523/37373
Lapis

10

Sie suchen den Kolmogorov-Smirnov-Test . Vergessen Sie nicht, die Balkenhöhen durch die Summe aller Beobachtungen jedes Histogramms zu dividieren.

Beachten Sie, dass der KS-Test auch dann einen Unterschied meldet, wenn zB die Mittelwerte der Verteilungen gegeneinander verschoben sind. Wenn die Übersetzung des Histogramms entlang der x-Achse in Ihrer Anwendung nicht sinnvoll ist, möchten Sie möglicherweise zuerst den Mittelwert von jedem Histogramm subtrahieren.


1
Das Subtrahieren des Mittelwerts ändert die Nullverteilung der KS-Statistik. @David Wright erhebt dennoch einen berechtigten Einwand gegen die Anwendung des KS-Tests auf Histogramme.
Whuber

7

Wie Davids Antwort darauf hinweist, ist der Chi-Quadrat-Test für gruppierte Daten erforderlich, da der KS-Test kontinuierliche Verteilungen voraussetzt. In Bezug auf die Unangemessenheit des KS-Tests (Kommentar von naught101) wurde das Problem in der Literatur zur angewandten Statistik erörtert, das hier zur Sprache gebracht werden sollte.

P(x)=19, (0x9)
P(x)=110j=09δ(x-j)

-1

Sie können die Kreuzkorrelation (Faltung) zwischen beiden Histogrammen berechnen. Dabei werden geringfügige Übersetzungen berücksichtigt.


1
Dies wird automatisch als minderwertig markiert, wahrscheinlich weil es so kurz ist. Gegenwärtig ist es nach unseren Maßstäben eher ein Kommentar als eine Antwort. Können Sie es erweitern? Wir können daraus auch einen Kommentar machen.
gung - Wiedereinsetzung von Monica

Da es sich bei Histogrammen um recht instabile Darstellungen von Daten handelt und sie auch keine Wahrscheinlichkeiten darstellen, bei denen nur die Höhe verwendet wird (sie verwenden den Bereich ), kann die Anwendbarkeit, Allgemeingültigkeit oder Nützlichkeit dieses Ansatzes vernünftigerweise in Frage gestellt werden, sofern keine spezifischeren Leitlinien bereitgestellt werden.
whuber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.