Verifica se le distribuzioni multidimensionali sono uguali


15

Diciamo che ho due o più popolazioni campione di vettori a valore continuo n-dimensionali. Esiste un modo non parametrico per verificare se questi campioni provengono dalla stessa distribuzione? In tal caso, esiste una funzione in R o Python per questo?


2
Il test di Kolmogorov-Smirnov è un tipico strumento non parametrico per verificare se due distribuzioni sono uguali. Non ne ho familiarità, ma Wikipedia si riferisce a Justel, A., Peña, D. e Zamar, R. (1997) Un test multivariato di Kolmogorov-Smirnov di bontà di adattamento, Statistics & Probability Letters, 35 (3), 251-259 . per un'estensione multivariata di questo test.
Macro,

1
C'è una domanda CV che si occupa di questo in due dimensioni: stats.stackexchange.com/questions/25946/… . Anche in due dimensioni, non esiste un modo standard per farlo.
Flounderer,

Risposte:


8

Ho fatto molte ricerche su due campioni multivariati quando mi sono reso conto che il test Kolmogorov-Smirnov non era multivariato. Quindi ho esaminato il test Chi, il T ^ 2 di Hotelling, il criterio Anderson-Darling, Cramer-von Mises, Shapiro-Wilk, ecc. Devi stare attento perché alcuni di questi test si basano sul confronto dei vettori per essere dello stesso lunghezza. Altri sono usati solo per rifiutare l'assunzione della normalità, non per confrontare due distribuzioni campione.

La soluzione principale sembra confrontare le funzioni di distribuzione cumulativa dei due campioni con tutti i possibili ordini che, come si può sospettare, è molto intensivo dal punto di vista computazionale, nell'ordine dei minuti per una singola analisi di un campione contenente alcune migliaia di record:

https://cran.r-project.org/web/packages/Peacock.test/Peacock.test.pdf

Come afferma la documentazione di Xiao, il test di Fasano e Franceschini è una variante del test di Pavone:

http://adsabs.harvard.edu/abs/1987MNRAS.225..155F

Il test di Fasano e Franceschini era specificamente inteso per essere meno intensivo dal punto di vista computazionale, ma non ho trovato un'implementazione del loro lavoro in R.

Per quelli di voi che vogliono esplorare gli aspetti computazionali del test Peacock contro Fasano e Franceschini, date un'occhiata agli algoritmi computazionalmente efficienti per il test bidimensionale di Kolmogorov – Smirnov


Cos'è la distribuzione cumulativa per i multivariati?
Aksakal,

2
F(X,y)=P(X<X,Y<y)pF(X,y)=Σio=1nio(Xio<X,Yio<y)/n

2
Bello e conciso, AdamO. Il test Peacock sembra decisamente sciocco nel non fare la potatura, come fanno Fasano e Franceschini. Speriamo che qualcuno decida di codificarlo un giorno per R. È particolarmente utile per la velocità quando si hanno ulteriori record decomposti, forse per una variabile categoriale, e si desidera vedere se le decomposizioni sono effettivamente tratte da diverse distribuzioni.
L Fischman,


1

Sì, ci sono modi non parametrici di test se due campioni multivariati provengono dalla stessa distribuzione congiunta. Citerò i dettagli esclusi quelli menzionati da L Fischman . Il problema di base che si sta ponendo può essere definito come un "problema a due campioni" e attualmente sono in corso numerose ricerche su riviste come Journal of Machine Learning Research e Annals of Statistics e altri. Con la mia scarsa conoscenza di questo problema, posso dare indicazioni come segue

  • Un modo recente di testare i set di campioni multivariati è attraverso la massima discrepanza media (MMD); letteratura correlata: Arthur Gretton 2012 , Bharath 2010 e altri. Altri metodi correlati sono disponibili in questi articoli di ricerca. Se interessati, consulta gli articoli che citano questi articoli, per avere un quadro generale dello stato dell'arte in questo problema. E SÌ, per questo ci sono implementazioni R.

Se il tuo interesse è confrontare vari set di punti (set di campioni) con il set di punti di riferimento, per vedere quanto si avvicinano al set di punti di riferimento, puoi usare la f-divergenza .

  • Un caso speciale popolare di questo è la divergenza di Kullback-Leibler . Questo è usato in molti regimi di apprendimento automatico. Questo può essere fatto di nuovo in due modi np; attraverso l'approccio parzen window (kernel) e gli stimatori PDF K-Neighbor più vicini.

Potrebbero esserci anche altri modi per avvicinarsi, questa risposta non è in alcun modo un trattamento completo della tua domanda;)

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.