J'ai un problème similaire à la question posée ici:
Comment mesurer la non-uniformité d'une distribution?
J'ai un ensemble de distributions de probabilité sur les jours de la semaine. Je veux mesurer la proximité de chaque distribution (1 / 7,1 / 7, ..., 1/7).
Pour le moment, j'utilise une réponse à la question ci-dessus; une norme L2, qui a la valeur 1 lorsque la distribution a la masse 1 pour l'un des jours, et est minimisée pour (1 / 7,1 / 7, ..., 1/7). Je redimensionne linéairement ceci de sorte qu'il se situe entre 0 et 1, puis je le retourne de sorte que 0 signifie parfaitement non uniforme et 1 signifie parfaitement uniforme.
Cela fonctionne assez bien, mais j'ai un problème avec cela; il traite chaque jour de la semaine également comme une dimension dans l'espace 7-Dim, donc il ne tient pas compte de la proximité des jours; en d'autres termes, il donne le même score à (1 / 2,1 / 2,0,0,0,0,0) et (1 / 2,0,0,1 / 2,0,0,0) pair bien que, dans un certain sens, ce dernier soit plus "étalé" et uniforme et devrait idéalement obtenir un score plus élevé. Il y a évidemment la complication supplémentaire que l'ordre des jours est circulaire.
Comment puis-je modifier cette heuristique pour tenir compte de la proximité des jours?
Réponses:
La distance du moteur terrestre , également connue sous le nom de métrique de Wasserstein, mesure la distance entre deux histogrammes. Essentiellement, il considère un histogramme comme un certain nombre de tas de saleté et évalue ensuite la quantité de saleté dont on a besoin pour se déplacer et la distance (!) Pour transformer cet histogramme en l'autre. Vous mesureriez la distance entre votre distribution et une distribution uniforme au cours des jours de la semaine.
Cela explique bien sûr la proximité des jours - il est plus facile de déplacer la "saleté" du lundi au mardi que du lundi au jeudi, donc (1 / 2,0,0,1 / 2,0,0,0) aurait un distance du moteur terrestre inférieure à la distribution uniforme par rapport à un histogramme concentré le lundi et le mardi.
Ce que cela ne fait pas , c'est considérer la "circularité" de la semaine, c'est-à-dire que le samedi et le dimanche sont aussi proches que le dimanche et le lundi. Pour cela, vous devez rechercher une distance de déplacement de la terre définie sur les distributions de masse de probabilité circulaire . Cela devrait être possible en utilisant une approche d'optimisation appropriée.
EDIT: Dans R, le
emd
package calcule les distances entre les histogrammes du moteur de la Terre.Vous pouvez résoudre le problème de la "circularité" de manière assez simple (bien que ponctuelle).
Cela prend en charge la circularité au détriment de quelques calculs supplémentaires.
Cependant, je considérerais toujours cela comme un moyen potentiellement utile pour au moins considérer la circularité d'une certaine manière - certainement mieux que simplement utiliser un seul histogramme et définir la semaine comme allant du dimanche au samedi ou d'une autre manière arbitraire. De plus, bien que certains liens ci-dessus révèlent des implémentations pour la distance circulaire du moteur de terre, je n'en connais pas pour R, qui est probablement le langage le plus utilisé ici.
la source