Existe-t-il une version à plusieurs échantillons ou une alternative au test de Kolmogorov-Smirnov?

12

Je compare la distribution de taille des arbres dans six paires de parcelles où une parcelle a reçu un traitement et l'autre un contrôle. En utilisant un test de Kolmogorov-Smirnov sur chaque paire de parcelles, je trouve que varie de à 0,75 . Existe-t-il des méthodes appropriées pour traiter toutes les répliques ensemble, comme une extension multi-échantillon du test KS, ou existe-t-il un test de suivi approprié? Ou devrais-je simplement conclure quelque chose comme "La distribution des tailles diffère considérablement (p <0,05 ) dans 2 paires de parcelles et marginalement ( p = 0,59 ) dans une paire de parcelles."0,0003707 0,75 ( p < 0,05 p = 0,59p0.00037070.75(p<0.05p=0.59

N Brouwer
la source
2
Que voulez-vous comparer à propos de ces distributions, qu'elles diffèrent par leur tendance centrale ou qu'elles diffèrent par leur forme? J'ai tendance à penser que KS concerne davantage la forme / nature d'une distribution, mais quelque chose comme le test de Friedman peut déterminer que les échantillons diffèrent dans leur tendance centrale.
gung - Rétablir Monica

Réponses:

13

Il existe en fait plusieurs exemples de tests KS. Par exemple, un r-échantillon Kolmogorov-Smirnov-Test avec qui, je crois, a un bon pouvoir. Une pré-impression de ce beau papier est disponible ici . Je connais également les K-Sample Analogues des Kolmogorov-Smirnov et Cramer-V. Tests Mises (mais ils ont moins de puissance pour autant que je sache).r2

Momo
la source
5
Eh bien, l'inconvénient de ce "beau" document de Böhm et Hornik est qu'il n'y a pas d'implémentation accessible au public pour autant que je sache. Le calcul est suffisamment complexe pour que vous ne souhaitiez pas l'implémenter vous-même. J'ai envoyé un mail aux auteurs et leur ai demandé mais ils n'ont pas répondu. Notez que Hornik est membre du groupe R Core Developers ... Si quelqu'un connaît une implémentation, veuillez poster un lien ici!
Laryx Decidua
8

Il existe un package R kSamples qui vous donne, entre autres, un test Anderson-Darling non paramétrique à k-échantillon. L'hypothèse nulle est que tous les k échantillons proviennent de la même distribution qui n'a pas besoin d'être spécifiée. Vous pouvez peut-être l'utiliser.

Petit exemple de comparaison d'échantillons distribués normaux et gamma mis à l'échelle afin qu'ils aient la même moyenne et la même variance:

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"
Laryx Decidua
la source
4

Quelques approches:

Utilisez les valeurs de p par paire, mais ajustez-les pour des comparaisons multiples en utilisant quelque chose comme les réglages de Bon Feroni ou False Discovery Rate (le premier sera probablement un peu trop conservateur). Ensuite, vous pouvez être sûr que ceux qui sont encore sensiblement différents ne sont probablement pas dus aux tests multiples.

Vous pouvez créer un test global dans la saveur de KS en trouvant la plus grande distance entre l'une des distributions, c'est-à-dire tracer tous les cdf empiriques et trouver la plus grande distance de la ligne la plus basse à la ligne la plus haute, ou peut-être la distance moyenne ou une autre signification mesure. Ensuite, vous pouvez déterminer si cela est significatif en effectuant un test de permutation: regroupez toutes les données dans un grand bac, puis divisez-les au hasard en groupes avec les mêmes tailles d'échantillon que vos groupes d'origine, recalculez la statistique sur les données permutées et répétez le processus plusieurs fois (environ 999). Ensuite, voyez comment vos données d'origine se comparent aux ensembles de données permutés. Si la statistique des données d'origine se situe au milieu de celle permutée, il n'y a pas de différence significative trouvée, mais si elle est au bord, ou au-delà de celles permutées, il se passe quelque chose d'important (mais cela ne vous dit pas lesquelles sont différentes). Vous devriez probablement essayer cela avec des données simulées où vous savez qu'il y a une différence assez grande pour être intéressante juste pour vérifier la puissance de ce test pour trouver les différences intéressantes.

Greg Snow
la source