Misura l'uniformità di una distribuzione nei giorni feriali


11

Ho un problema simile alla domanda posta qui:

Come si misura la non uniformità di una distribuzione?

Ho una serie di distribuzioni di probabilità durante i giorni della settimana. Voglio misurare quanto è vicina ogni distribuzione (1 / 7,1 / 7, ..., 1/7).

Al momento sto usando una risposta dalla domanda precedente; una norma L2, che ha valore 1 quando la distribuzione ha massa 1 per uno dei giorni ed è minimizzata per (1 / 7,1 / 7, ..., 1/7). Sto ridimensionando linearmente questo in modo che sia compreso tra 0 e 1, quindi capovolgendolo in modo che 0 significhi perfettamente non uniforme e 1 significhi perfettamente uniforme.

Funziona abbastanza bene, ma ho un problema con esso; tratta ogni giorno della settimana equamente come una dimensione nello spazio 7-Dim, quindi non tiene conto della vicinanza dei giorni; in altre parole, dà lo stesso punteggio a (1 / 2,1 / 2,0,0,0,0,0) e (1 / 2,0,0,1 / 2,0,0,0) anche sebbene in un certo senso quest'ultimo sia più "sparso" e uniforme e dovrebbe idealmente ottenere un punteggio più alto. C'è ovviamente l'ulteriore complicazione che l'ordinamento dei giorni è circolare.

Come posso modificare questa euristica per tenere conto della vicinanza dei giorni?


1
Il tuo esempio di (1 / 2,1 / 2,0,0,0,0,0) e (1 / 2,0,0,1 / 2,0,0,0) non sono uniformi allo stesso modo , quindi non dovrebbe importare se sei interessato solo a verificare la non uniformità. Quindi forse vuoi provare qualcosa di più che non è stato dichiarato esplicitamente nella tua domanda? A proposito, l' entropia è una misura di uniformità.
Tim

Grazie Tim, ho provato ad usare Entropy ma ho scoperto che l'euristica sopra menzionata funzionava meglio per i miei scopi. Non sono sicuro di come chiamare la proprietà di una distribuzione di probabilità nei giorni feriali a cui sono interessato, tranne per il fatto che dovrebbe incapsulare la "diffusione" delle probabilità nel corso della settimana.
EBartrum,

Risposte:


15

La distanza del movimento terra , nota anche come metrica di Wasserstein, misura la distanza tra due istogrammi. In sostanza, considera un istogramma come un numero di mucchi di terra e quindi valuta la quantità di terra che uno deve muovere e quanto (!) Per trasformare questo istogramma nell'altro. Misurerai la distanza tra la tua distribuzione e una uniforme durante i giorni della settimana.

Questo ovviamente spiega la vicinanza dei giorni: è più facile spostare lo "sporco" dal lunedì al martedì che dal lunedì al giovedì, quindi (1 / 2,0,0,1 / 2,0,0,0) avrebbe un distanza inferiore del movimento terra dalla distribuzione uniforme rispetto a un istogramma concentrato il lunedì e il martedì.

Ciò che non fa è considerare la "circolarità" della settimana, ovvero che sabato e domenica sono vicini quanto la domenica e il lunedì. Per questo, dovresti cercare una distanza del movimento terra definita sulle distribuzioni di massa della probabilità circolare . Ciò dovrebbe essere fattibile utilizzando un approccio di ottimizzazione adeguato.


EDIT: in R, il emdpacchetto calcola le distanze del movimento terra tra gli istogrammi.

Puoi affrontare il problema della "circolarità" in un modo abbastanza semplice (anche se ad hoc).

  • d1
  • d2
  • d3
  • ...
  • d1,,d7

Questo si occupa della circolarità a spese di un paio di calcoli aggiuntivi.

di

Tuttavia, lo considererei comunque un modo potenzialmente utile per considerare almeno la circolarità in qualche modo - sicuramente meglio che usare semplicemente un singolo istogramma e definire la settimana come andare da domenica a sabato o in qualche altro modo arbitrario. Inoltre, mentre alcuni link sopra mostrano implementazioni per la distanza circolare del movimento terra, non ne sono a conoscenza per R, che è probabilmente il linguaggio più usato qui.


3
d1,,d7di

@JiK: buon punto, e uno che mi è venuto in mente anche dopo aver perso la connettività ieri. Ho chiarito la mia risposta per sottolineare che si tratta di un hack e non di una vera distanza circolare del movimento terra.
Stephan Kolassa,

1
Molte grazie, infatti sono riuscito a implementare una distanza circolare del movimento terra in R con il pacchetto emd e la funzione emd2d, definendo la mia funzione di distanza, quindi non ho dovuto usare l'hack che hai menzionato. Questo e 'esattamente quello che stavo cercando! Un'altra questione insignificante: come dovrei chiamarla? Come Tim ha detto sopra, non dovrei chiamare questa uniformità. Quale sarebbe un nome appropriato per questa euristica?
EBartrum,

1
L2
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.