¿Cómo evaluar la similitud de dos histogramas?

33

Dados dos histogramas, ¿cómo evaluamos si son similares o no?

¿Es suficiente simplemente mirar los dos histogramas? El mapeo simple uno a uno tiene el problema de que si un histograma es ligeramente diferente y ligeramente cambiado, no obtendremos el resultado deseado.

¿Alguna sugerencia?

Mew 3.4
fuente
2
¿Qué significa "similar"? La prueba de chi cuadrado y la prueba de KS, por ejemplo, prueban si dos histogramas son casi idénticos. Pero "similar" podría significar "tener la misma forma", ignorando cualquier diferencia de ubicación y / o escala. ¿Podrías aclarar tu intención?
whuber

Respuestas:

8

Un artículo reciente que puede valer la pena leer es:

Cao, Y. Petzold, L. Limitaciones de precisión y medición de errores en la simulación estocástica de sistemas de reacción química, 2006.

Aunque el objetivo de este trabajo es comparar algoritmos de simulación estocástica, esencialmente la idea principal es cómo comparar dos histogramas.

Puede acceder al pdf desde la página web del autor.

csgillespie
fuente
Hola, su papel agradable, gracias por dar pdf link .. Yo seguramente va a ir a través de este trabajo ..
Mew 3.4
12
En lugar de proporcionar una referencia, sería bueno si resumiera los puntos principales del documento. Los enlaces mueren, por lo que en el futuro su respuesta podría ser inútil para los no suscriptores de esta revista (y la gran mayoría de la población humana son los no suscriptores).
Tim
28

Hay muchas medidas de distancia entre dos histogramas. Puede leer una buena categorización de estas medidas en:

K. Meshgi y S. Ishii, "Ampliando el histograma de colores con cuadrícula para mejorar la precisión de seguimiento", en Proc. de MVA'15, Tokio, Japón, mayo de 2015.

Las funciones de distancia más populares se enumeran aquí para su conveniencia:

  • L0 0 o Distancia Hellinger

reL0 0=yoh1(yo)h2(yo)

  • L1 , Manhattan o distancia de la cuadra de la ciudad

reL1=yoEl |h1(yo)-h2(yo)El |

  • L=2 o distancia euclidiana

reL2=yo(h1(yo)-h2(yo))2

  • L o Chybyshev Distancia

reL=metrounaXyoEl |h1(yo)-h2(yo)El |

  • L p o Distancia fraccional (parte de la familia de distancia Minkowski)pags

reLpags=(yoEl |h1(yo)-h2(yo)El |pags)1/ /pags y0 0<pags<1

  • Intersección de histograma

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

  • Distancia cosenoidal

DCO=1ih1(i)h2(i)

  • Distancia Canberra

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

  • Coeficiente de correlación de Pearson

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

  • Divergancia Kolmogorov-Smirnov

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

  • Distancia de partido

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

  • Cramer-von Mises Distancia

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

  • χ2 Estadísticas

Dχ2=i(h1(i)h2(i))2h1(i)+h2(i)

  • Bhattacharyya Distancia

DBH=1ih1(i)h2(i) y hellinger

  • Acorde Cuadrado

DSC=i(h1(i)h2(i))2

  • Divergancia Kullback-Liebler

DKL=ih1(i)logh1(i)m(i)

  • Divergencia de Jefferey

DJD=i(h1(i)logh1(i)m(i)+h2(i)logh2(i)m(i))

  • Distancia del transportador de tierra (este es el primer miembro de las distancias de transporte que integran la información de agrupación A en la distancia, para obtener más información, consulte el documento mencionado anteriormente o la entrada de Wikipedia .

DEM=minfiji,jfijAijsumi,jfij jfijh1(i),jfijh2(j),i,jfij=min(ih1(i)jh2(j)) yfij representa el flujo de i aj

  • Distancia cuadrática

DQU=i,jAij(h1(i)h2(j))2

  • Distancia cuadrática de chi

DQC=i,jAij(h1(i)h2(i)(cAci(h1(c)+h2(c)))m)(h1(j)h2(j)(cAcj(h1(c)+h2(c)))m)000

Una implementación de Matlab de algunas de estas distancias está disponible en mi repositorio de GitHub: https://github.com/meshgi/Histogram_of_Color_Advancements/tree/master/distance. También puede buscar personas como Yossi Rubner, Ofir Pele, Marco Cuturi y Haibin Ling más distancias de vanguardia.

Actualización: la explicación alternativa de las distancias aparece aquí y allá en la literatura, así que las enumero aquí por razones de integridad.

  • Distancia Canberra (otra versión)

DCB=i|h1(i)h2(i)||h1(i)|+|h2(i)|

  • DL0

DBC=12ih1(i)=h2(i)ih1(i)+ih2(i)

  • Distancia Jaccard (es decir, intersección sobre unión, otra versión)

DIOU=1imin(h1(i),h2(i))imax(h1(i),h2(i))

Kourosh Meshgi
fuente
¡Bienvenido a nuestro sitio! Gracias por este aporte.
whuber
Aquí está el enlace de papel: mva-org.jp/Proceedings/2015USB/papers/14-15.pdf
Neves
Gracias, una lista es maravillosa, aunque no permite crear un operador de comparación para el histograma, por ejemplo, decir esohist1 < hist2
Olha Pavliuk
22

La respuesta estándar a esta pregunta es la prueba de ji cuadrado . La prueba KS es para datos no enlazados, no para datos agrupados. (Si tiene los datos no enlazados, entonces utilice una prueba de estilo KS, pero si solo tiene el histograma, la prueba KS no es apropiada).

David Wright
fuente
Tiene razón en que la prueba KS no es apropiada para histogramas cuando se entiende como una prueba de hipótesis sobre la distribución de los datos subyacentes, pero no veo ninguna razón por la cual la estadística KS no funcionaría bien como una medida de igualdad de dos histogramas
whuber
Sería útil una explicación de por qué la prueba de Kolmogorov-Smirnov no es apropiada con datos agrupados.
naught101
Esto puede no ser tan útil en el procesamiento de imágenes como en la evaluación estadística de ajuste. A menudo, en el procesamiento de imágenes, se usa un histograma de datos como descriptor para una región de una imagen, y el objetivo es que la distancia entre histogramas refleje la distancia entre parches de imagen. Es posible que se conozca poco, o posiblemente nada en absoluto, sobre las estadísticas generales de población de los datos de imagen subyacentes utilizados para obtener el histograma. Por ejemplo, las estadísticas de población subyacentes cuando se usan histogramas de gradientes orientados diferirían considerablemente en función del contenido real de las imágenes.
ely
1
Stochtastic respondió a la pregunta de naught101: stats.stackexchange.com/a/108523/37373
Lapis
10

Estás buscando la prueba de Kolmogorov-Smirnov . No olvide dividir las alturas de las barras por la suma de todas las observaciones de cada histograma.

Tenga en cuenta que la prueba KS también informa una diferencia si, por ejemplo, las medias de las distribuciones se desplazan entre sí. Si la traducción del histograma a lo largo del eje x no tiene sentido en su aplicación, es posible que primero desee restar la media de cada histograma.

Jonas
fuente
1
Restar la media cambia la distribución nula de la estadística KS. @David Wright plantea una objeción válida a la aplicación de la prueba KS a los histogramas de todos modos.
whuber
7

Como señala la respuesta de David, la prueba de ji cuadrado es necesaria para los datos agrupados, ya que la prueba KS supone distribuciones continuas. Con respecto a por qué la prueba KS es inapropiada (comentario de naught101), ha habido una discusión sobre el tema en la literatura de estadística aplicada que vale la pena plantear aquí.

P(x)=19, (0x9)
P(x)=110j=09δ(xj)
Estocástico
fuente
-1

Puede calcular la correlación cruzada (convolución) entre ambos histogramas. Eso tendrá en cuenta ligeras traducciones.

Juan Manuel Tonello
fuente
1
Esto se marca automáticamente como de baja calidad, probablemente porque es muy corto. En la actualidad es más un comentario que una respuesta según nuestros estándares. ¿Puedes ampliarlo? También podemos convertirlo en un comentario.
gung - Restablece a Monica
Dado que los histogramas son representaciones de datos bastante inestables , y también porque no representan probabilidades usando solo la altura (usan el área ), uno podría cuestionar razonablemente la aplicabilidad, generalidad o utilidad de este enfoque a menos que se proporcione una guía más específica.
whuber