Distribuzioni limitate
Ri dati della vita reale sono spesso delimitati da un determinato dominio. Ad esempio, attributi come età, peso o durata sono sempre valori non negativi. In tali scenari, un KDE standard uniforme potrebbe non riuscire a catturare accuratamente la vera forma della distribuzione, specialmente se c’è una discontinuità di densità al confine.
In 1D, con l’eccezione di alcuni casi esotici, le distribuzioni limitate hanno tipicamente domini limitati su un lato (ad esempio valori positivi) o su due lati (ad esempio intervallo uniforme).
Come illustrato nel grafico seguente, i kernel non sono in grado di stimare i bordi della distribuzione uniforme e fuoriescono dal dominio delimitato.
Nessuna soluzione pubblica pulita in Python
USfortunatamente, le librerie Python pubbliche più popolari come scipy
E scikit-learn
al momento non affrontano questo problema. Esistono problemi su GitHub e richieste pull che trattano questo argomento, ma purtroppo sono rimasti irrisolti per un bel po’ di tempo.
Nella R,
kde.boundary
consente la stima della densità del kernel per dati limitati.
Esistono vari modi per tenere conto della natura limitata della distribuzione. Descriviamo quelli più popolari: Riflessione, Ponderazione e Trasformazione.
Avvertimento:
Per motivi di leggibilità, ci concentreremo sul dominio limitato da unità, vale a dire(0,1)
. Ricordarsi di standardizzare i dati e ridimensionare la densità in modo appropriato nel caso generale(a,b)
.
Soluzione: riflessione
TIl trucco consiste nell’aumentare l’insieme dei campioni riflettendoli oltre i confini sinistro e destro. Ciò equivale a riflettere le code dei kernel locali per mantenerli nel dominio delimitato. Funziona meglio quando la derivata della densità è zero al confine.
La tecnica della riflessione implica anche l’elaborazione di un numero di punti campione tre volte superiore.
I grafici seguenti illustrano il trucco della riflessione per tre distribuzioni standard: uniforme, triangolo rettangolo e radice quadrata inversa. Fa un ottimo lavoro nel ridurre la distorsione ai confini, anche per la singolarità della distribuzione della radice quadrata inversa.
NB La firma di
basic_kde
è stato leggermente aggiornato per consentire di fornire facoltativamente il proprio parametro di larghezza di banda invece di utilizzare la regola empirica di Silverman.
Soluzione: ponderazione
TIl trucco di riflessione presentato sopra prende le code che perdono dal kernel locale e le aggiunge nuovamente al dominio delimitato, in modo che le informazioni non vadano perse. Tuttavia, potremmo anche calcolare quanta parte del nostro kernel locale è andata persa al di fuori del dominio delimitato e sfruttarla per correggere la distorsione.
Per un numero molto elevato di campioni, KDE converge alla convoluzione tra il kernel e la densità reale, troncata dal dominio delimitato.
Se x
si trova al confine, verrà effettivamente utilizzata solo metà dell’area del kernel. Intuitivamente, vorremmo normalizzare il nucleo di convoluzione per farlo integrare a 1 sul dominio limitato. L’integrale sarà vicino a 1 al centro dell’intervallo limitato e scenderà a 0,5 vicino ai bordi. Ciò spiega la mancanza di nuclei vicini ai confini.
Analogamente alla tecnica della riflessione, i grafici seguenti illustrano il trucco della ponderazione per tre distribuzioni standard: uniforme, triangolo rettangolo e radice quadrata inversa. Funziona in modo molto simile al metodo di riflessione.
Da un punto di vista computazionale, non è necessario elaborare un numero di campioni 3 volte superiore, ma è necessario valutare la normale funzione di densità cumulativa nei punti di previsione.
Trasformazione
TIl trucco di trasformazione mappa i dati delimitati in uno spazio illimitato, dove KDE può essere applicato in sicurezza. Ciò si traduce nell’utilizzo di una funzione kernel diversa per ciascun campione di input.
La funzione logit sfrutta il logaritmo per mappare l’intervallo unitario (0,1)
all’intero asse reale.
Quando si applica una trasformazione f
su una variabile casuale X
la densità risultante può essere ottenuta dividendo per il valore assoluto della derivata di f
.
Possiamo ora applicarlo al caso speciale della trasformazione logit per recuperare la distribuzione di densità da quella stimata nello spazio logit.
Analogamente alle tecniche di riflessione e ponderazione, i grafici seguenti illustrano il trucco di ponderazione per tre distribuzioni standard: uniforme, triangolo rettangolo e radice quadrata inversa. Si comporta piuttosto male creando grandi oscillazioni ai confini. Tuttavia, gestisce molto bene la singolarità della radice quadrata inversa.
Fonte: towardsdatascience.com