Esiste una versione a più campioni o un'alternativa al test di Kolmogorov-Smirnov?


12

Sto confrontando la distribuzione dimensionale degli alberi in sei coppie di trame in cui una trama ha ricevuto un trattamento e l'altra un controllo. Utilizzando un test di Kolmogorov-Smirnov su ciascuna coppia di grafici, trovo che compreso tra e . Esistono metodi appropriati per gestire insieme tutti i replicati, come un'estensione multi-campione del test KS o esiste un test di follow-up appropriato? O dovrei semplicemente concludere qualcosa del tipo "La distribuzione delle dimensioni differisce in modo significativo ) in 2 coppie di grafici e marginalmente ( ) in una coppia di grafici".0.0003707 0,75 ( p < 0,05 p = 0,59p0.00037070.75(p<0.05p=0.59


2
Che cosa vuoi confrontare su queste distribuzioni, che differiscono nella tendenza centrale o che differiscono nella forma? Tendo a pensare a KS come a qualcosa di più sulla forma / natura di una distribuzione, ma qualcosa come il test di Friedman può determinare che i campioni differiscono nella tendenza centrale.
gung - Ripristina Monica

Risposte:


13

In realtà ci sono alcuni test KS di esempio multipli. Ad esempio, un campione di Kolmogorov-Smirnov-Test con che, credo, ha un buon potere. Una prestampa di quella bella carta è disponibile qui . Conosco anche analoghi K-Sample di Kolmogorov-Smirnov e Cramer-V. Test di Mises (ma hanno meno potere per quanto ne so).r2


5
Bene, lo svantaggio di quel "bellissimo" documento di Böhm e Hornik è che per quanto ne so non è disponibile alcuna implementazione pubblicamente disponibile. La matematica è abbastanza complessa che non ti piacerebbe implementarla da solo. Ho inviato per posta gli autori e ho chiesto loro, ma non hanno risposto. Nota che Hornik è un membro del gruppo R Core Developers ... Se qualcuno conosce un'implementazione, ti preghiamo di pubblicare un link qui!
Laryx Decidua,

8

Esiste un pacchetto R kSamples che ti offre, tra le altre cose, un test Anderson-Darling k-sample non parametrico. L'ipotesi nulla è che tutti i k campioni provenissero dalla stessa distribuzione che non ha bisogno di essere specificato. Forse puoi usarlo.

Piccolo esempio sul confronto tra campioni distribuiti normali e gamma ridimensionati in modo che abbiano la stessa media e varianza:

library("kSamples")
set.seed(142)
samp.num <- 100
alpha <- 2.0; theta <- 3.0  # Gamma parameters shape and scale, using Wikipedia notation
gam.mean <- alpha * theta # mean of the Gamma
gam.sd <- sqrt(alpha) * theta # S.D. of the Gamma
norm.data <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)  # Normal with the same mean and SD as the Gamma
gamma.data <- rgamma(samp.num, shape=alpha, scale=theta)
norm.data2 <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)
norm.data3 <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)
ad.same <- ad.test(norm.data,norm.data2,norm.data3) # "not significant, p ~ 0.459"
ad.diff <- ad.test(gamma.data,norm.data2,norm.data3) # "significant, p ~ 0.00066"

4

Un paio di approcci:

Usa i valori p a coppie ma modificali per confronti multipli usando qualcosa come Bonmetoni o False Discovery rate di regolazione (il primo sarà probabilmente un po 'troppo conservativo). Quindi puoi essere sicuro che quelli che sono ancora significativamente diversi non sono probabilmente dovuti ai test multipli.

Puoi creare un test generale nel sapore di KS trovando la distanza più grande tra una qualsiasi delle distribuzioni, ovvero tracciare tutti i cdf empirici e trovare la distanza più grande dalla linea più in basso alla linea più in alto, o forse la distanza media o qualche altra significativa misurare. Quindi puoi scoprire se ciò è significativo eseguendo un test di permutazione: raggruppa tutti i dati in 1 grande contenitore, quindi dividerli casualmente in gruppi con le stesse dimensioni del campione dei tuoi gruppi originali, ricalcola la stat sui dati permutati e ripeti il ​​processo molte volte (circa 999). Quindi vedere come i dati originali vengono confrontati con i set di dati consentiti. Se la statistica dei dati originali cade nel mezzo di quelli consentiti, allora non vengono rilevate differenze significative, ma se è al limite, o al di là di quelli permutati, c'è qualcosa di significativo (ma questo non ti dice quali sono diversi). Probabilmente dovresti provarlo con dati simulati in cui sai che esiste una differenza abbastanza grande da essere interessante solo per verificare la potenza di questo test per trovare le differenze interessanti.

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.