Disons que j'ai deux ou plusieurs populations d'échantillons de vecteurs à valeurs continues à n dimensions. Existe-t-il un moyen non paramétrique de tester si ces échantillons proviennent de la même distribution? Si oui, existe-t-il une fonction en R ou en python pour cela?
15
Réponses:
Je viens de faire beaucoup de recherches sur les tests à deux échantillons multivariés lorsque j'ai réalisé que le test de Kolmogorov-Smirnov n'était pas multivarié. J'ai donc regardé le test du Chi, le T ^ 2 de Hotelling, le critère d'Anderson-Darling, de Cramer-von Mises, de Shapiro-Wilk, etc. longueur. D'autres ne servent qu'à rejeter l'hypothèse de normalité, et non à comparer deux distributions d'échantillons.
La principale solution semble comparer les fonctions de distribution cumulative des deux échantillons avec toutes les ordonnances possibles qui, comme vous pouvez le soupçonner, sont très gourmandes en calcul, de l'ordre des minutes pour une seule exécution d'un échantillon contenant quelques milliers d'enregistrements:
https://cran.r-project.org/web/packages/Peacock.test/Peacock.test.pdf
Comme l'indique la documentation de Xiao, le test de Fasano et Franceschini est une variante du test Peacock:
http://adsabs.harvard.edu/abs/1987MNRAS.225..155F
Le test de Fasano et Franceschini était spécifiquement destiné à être moins intensif en calcul, mais je n'ai trouvé aucune implémentation de leur travail dans R.
Pour ceux d'entre vous qui souhaitent explorer les aspects informatiques du test Peacock versus Fasano et Franceschini, consultez les algorithmes efficaces en termes de calcul pour le test bidimensionnel de Kolmogorov-Smirnov
la source
Le package R np (non paramétrique) a un test pour l'égalité des densités de données continues et catégoriques utilisant la densité au carré intégrée. Li, Maasoumi et Racine (2009)
Ainsi que pdf conditionnel np dans la section 6 .
la source
Oui, il existe des moyens non paramétriques de tester si deux échantillons multivariés proviennent de la même distribution conjointe. Je mentionnerai des détails à l'exclusion de ceux mentionnés par L Fischman . Le problème de base que vous posez peut être appelé un `` problème à deux échantillons '' et de nombreuses recherches sont actuellement en cours dans des revues telles que Journal of Machine Learning Research et Annals of Statistics et d'autres. Avec mon peu de connaissances sur ce problème, je peux donner des directives comme suit
Si votre intérêt est de comparer différents ensembles de points (ensembles d'échantillons) avec l'ensemble de points de référence, pour voir à quel point ils se rapprochent de l'ensemble de points de référence, vous pouvez utiliser la f-divergence .
Il peut également y avoir d'autres façons d'approcher, cette réponse n'est en aucun cas un traitement global de votre question;)
la source