J'ai plus de 3000 vecteurs sur une grille bidimensionnelle, avec une distribution discrète approximativement uniforme. Certaines paires de vecteurs remplissent une certaine condition. Remarque: la condition n'est applicable qu'aux paires de vecteurs, pas aux vecteurs individuels. J'ai une liste d'environ 1500 de ces paires, appelons-le groupe 1. Le groupe 2 contient toutes les autres paires de vecteurs. Je veux savoir si la distance entre les vecteurs d'une paire du groupe 1 est nettement inférieure à la distance moyenne entre deux vecteurs. Comment puis je faire ça?
Test statistique : le théorème central limite est-il applicable à mon cas? Autrement dit, puis-je prendre des moyennes d'échantillons de distances et utiliser le test t de Student pour comparer des moyennes d'échantillons qui remplissent la condition avec des moyennes d'échantillons qui ne remplissent pas la condition? Sinon, quel test statistique serait approprié ici?
Taille de l'échantillon et nombre d'échantillons : Je comprends qu'il y a deux variables ici, pour chacun des deux groupes, je dois prélever n échantillons de la taille m et prendre la moyenne de chacun des échantillons. Existe-t-il un moyen de choisir n et m selon des principes ? Doivent-ils être aussi grands que possible? Ou devraient-ils être aussi peu que possible, tant qu'ils montrent la signification statistique? Devraient-ils être les mêmes pour chacun des deux groupes? Ou devraient-ils être plus grands pour le groupe 2, qui contient beaucoup plus de paires de vecteurs?
Réponses:
La question des différences «significatives» toujours suppose toujours un modèle statistique pour les données. Cette réponse propose l'un des modèles les plus généraux qui soit cohérent avec les informations minimales fournies dans la question. En bref, cela fonctionnera dans un large éventail de cas, mais ce n'est peut-être pas toujours le moyen le plus puissant pour détecter une différence.
Trois aspects des données comptent vraiment: la forme de l'espace occupé par les points; la répartition des points dans cet espace; et le graphe formé par les paires de points ayant la "condition" - que j'appellerai le groupe "traitement". Par «graphique», j'entends la configuration des points et des interconnexions impliquée par les paires de points dans le groupe de traitement. Par exemple, dix paires de points ("arêtes") du graphique pourraient impliquer jusqu'à 20 points distincts ou aussi peu que cinq points. Dans le premier cas, deux arêtes ne partagent pas un point commun, tandis que dans le second cas, les arêtes sont constituées de toutes les paires possibles entre cinq points.
Pour déterminer si la distance moyenne entre les bords du groupe de traitement est «significative», nous pouvons considérer un processus aléatoire dans lequel tous les points sont permutés au hasard par une permutation . Cela permute également les arêtes: l'arête est remplacée par . L'hypothèse nulle est que le groupe de traitement des bords apparaît comme l'une de ces permutations. Dans l'affirmative, sa distance moyenne devrait être comparable aux distances moyennes figurant dans ces permutations. Nous pouvons assez facilement estimer la distribution de ces distances moyennes aléatoires en échantillonnant quelques milliers de toutes ces permutations.σ ( v i , v j ) ( v σ ( i ) , v σ ( j ) ) 3000 ! ≈ 10 21024n = 3000 σ ( vje, vj) ( vσ( i ), vσ( j )) 3000 ! ≈ 1021024
(Il est à noter que cette approche fonctionnera, avec seulement des modifications mineures, avec n'importe quelle distance ou même n'importe quelle quantité associée à chaque paire de points possible. Elle fonctionnera également pour tout résumé des distances, pas seulement la moyenne.)
Pour illustrer, voici deux situations impliquant points et bords dans un groupe de traitement. Dans la rangée supérieure, les premiers points de chaque bord ont été choisis au hasard parmi les points, puis les deuxièmes points de chaque bord ont été choisis indépendamment et au hasard parmi les points différents de leur premier point. Au total, points sont impliqués dans ces arêtes.28 100 100 - 1 39 28n = 100 28 100 100−1 39 28
Dans la rangée du bas, huit des points ont été choisis au hasard. Les bords se composent de toutes les paires possibles d'entre eux.28100 28
Les histogrammes à droite montrent les distributions d'échantillonnage pour permutations aléatoires des configurations. Les distances moyennes réelles des données sont marquées par des lignes rouges verticales en pointillés. Les deux moyennes sont cohérentes avec les distributions d'échantillonnage: aucune ne se situe loin à droite ou à gauche.10000
Les distributions d'échantillonnage diffèrent: bien qu'en moyenne les distances moyennes soient les mêmes, la variation de la distance moyenne est plus importante dans le second cas en raison des interdépendances graphiques entre les bords. C'est une des raisons pour lesquelles aucune version simple du théorème central limite ne peut être utilisée: le calcul de l'écart type de cette distribution est difficile.
Voici des résultats comparables aux données décrites dans la question: points sont répartis approximativement uniformément dans un carré et de leurs paires sont dans le groupe de traitement. Les calculs n'ont pris que quelques secondes, démontrant leur praticabilité.1500n=3000 1500
Les paires de la rangée du haut ont de nouveau été choisies au hasard. Dans la rangée du bas, tous les bords du groupe de traitement n'utilisent que les points les plus proches du coin inférieur gauche. Leur distance moyenne est tellement inférieure à la distribution d'échantillonnage que cela peut être considéré comme statistiquement significatif.56
En général, la proportion des distances moyennes à la fois la simulation et le groupe de traitement qui sont égales ou supérieures à la distance moyenne du groupe de traitement peut être considéré comme la p-valeur de ce test de permutation non paramétrique.
Il s'agit du
R
code utilisé pour créer les illustrations.la source
mean(c(sim, stat) <= stat)
oumean(c(sim, stat) >= stat)
selon le cas.stat
le milieu de la distribution, dans les deux sens? Quelque chose commep.value <- mean(abs(c(sim, stat)-mean(sim)) >= abs(stat-mean(sim)))
.