Trouver des grappes d'un ensemble de points autour d'un autre ensemble de points d'une couche différente?

10

Je veux voir s'il y a un regroupement d'un certain type de bâtiments (x) autour d'un autre type de bâtiments (y).

Les deux fichiers de points sont dans des couches différentes.

Je ne peux pas savoir quel outil j'utiliserais pour ce faire.

Nikki
la source

Réponses:

9

Aucun des outils prêts à l'emploi d'ArcGIS (ou de tout autre SIG, AFAIK) ne fera le travail correctement.

Dans un problème comme celui-ci, vous devez quantifier ce que vous entendez par «clustering», puis vous devez poser un modèle de probabilité pour évaluer si le degré de clustering mesuré pourrait avoir été produit par des hasards accidentels.

Comme exemple de procédure, vous pouvez choisir de mesurer le regroupement en termes de distances typiques entre les bâtiments de type x et le bâtiment de type y le plus proche . Il s'agit d'un calcul simple: il suffit de représenter les deux ensembles de bâtiments par des couches de points distinctes et d'effectuer une jointure spatiale des Y aux X. Le tableau d'attribut, qui a encore un enregistrement pour chaque type x bâtiment, comprendra maintenant la distance au plus proche y . Vous pouvez utiliser la distance moyenne comme mesure.

Tester si cela pourrait être le résultat du hasard est plus difficile. Une interprétation plausible de ce cadre est que la présence antérieure de bâtiments de type y a encouragé le développement de bâtiments de type x relativement proches des y . Sinon, nous pourrions émettre l'hypothèse que les bâtiments de type x auraient pu être construits partout où d' autres bâtiments sont également apparus. Cela conduit au test de permutation simple suivant . Créez une couche de points de tous les emplacements possibles où des bâtiments de type x peuvent être apparus. Cette couche pourrait être l'emplacement de tous les bâtiments de la zone érigés pendant la même période que le xles bâtiments étaient (y compris les x bâtiments eux-mêmes, bien sûr). Joignez spatialement la couche y pour obtenir les distances au bâtiment de type y le plus proche . Le reste du calcul fonctionne hors de la table attributaire: les calculs géographiques sont effectués. Ce que vous allez faire est d'utiliser à plusieurs reprises un générateur de nombres aléatoires pour prélever un simple échantillon aléatoire de tous ces bâtiments, chaque échantillon ayant exactement autant d'éléments que vous avez de bâtiments de type x . Calculez la distance moyenne pour cet échantillon. Répétez jusqu'à ce que vous ayez de nombreuses statistiques de distance moyenne. Si presque toutes ces distances moyennes obtenues au hasard sont supérieures à la distance moyenne que vous avez mesurée pour le xde type bâtiments, vous pouvez conclure que les x ne sont pas regroupés par hasard: l'effet est réel.

(De tels calculs sont mieux programmés sur une plate-forme adaptée à de telles fins, comme `` R '', mais presque tous les logiciels informatiques peuvent être mis en service, même Excel. La programmation est très, ne nécessitant guère plus que de savoir comment écrire des boucles et sélectionner éléments de tableaux au hasard.)

Cette approche de test de permutation est supérieure aux solutions préprogrammées car elle tient explicitement compte des schémas de développement des bâtiments dans ce domaine. Si vous ne le faites pas, vous souvent y trouver des preuves « importantes » de regroupement, mais vous ne pouvez pas conclure quoi que ce soit utile de lui, parce que le regroupement peut avoir été causé par d' autres facteurs tels que les modèles de routes, les lieux de des sites propices au développement, et bien d'autres choses.

whuber
la source
1
Je me rends compte que cette réponse est un peu abstraite. Lorsque j'aurai plus de temps, j'essaierai de créer une illustration réaliste.
whuber
Pour ceux qui utilisent R, je recommande de donner au package spatstat ( cran.r-project.org/web/packages/spatstat/index.html ) une analyse de cluster.
om_henners
2

Bien sûr, votre méthode d'analyse des données doit dépendre du problème de fond motivant l'analyse.

Mais voici quelques idées:

Depuis ESRI:

Fonctionnement de l'analyse de grappes spatiales multi-distances: la fonction k de Ripley (statistiques spatiales) , où i et j dans l'équation dénoteraient vos bâtiments x et y. La fonction K de Ripley fournira une inférence probabiliste.

De l'informatique:

Il existe des algorithmes complexes pour la découverte de modèles de colocalisation que vous pouvez google.

b_dev
la source
L '"idée de complot simple" est intéressante mais vous avez besoin de quelque chose pour la comparer: en elle-même, il est difficile d'en extraire des informations utiles. La fonction K de Ripley est également un outil utile, mais malheureusement dans de nombreux cas, elle reflète simplement la géométrie de l'ensemble de données. Avec des maisons dans une zone suburbaine ou rurale, qui tendent à se situer le long de caractéristiques linéaires (routes), la fonction K montrera clairement un regroupement "significatif" pour cette seule raison. En tant que tel, il ne révèle rien d'utile sur les maisons, sinon qu'elles sont construites près des routes!
whuber
@whuber 1er merci pour l'explication du problème de la fonction K de Ripley. Deuxièmement, lorsque nous voyons un graphique des cours des actions au fil du temps, nous pouvons rechercher des tendances générales à la hausse ou à la baisse ou au hasard, nous pouvons également repérer les moments où il y a eu de fortes baisses ou augmentations et demander pourquoi. Un graphique de la façon dont la concentration des bâtiments change en fonction des changements de distance peut être utilisé de la même manière. Il peut être utilisé pour rechercher des pointes de concentration, ce qui est une preuve contre une distribution aléatoire, il peut également être utilisé pour concentrer les recherches sur les pointes curieuses.
b_dev
Tu as raison. Mon point est que l'intrigue en soi ne nous dit rien sur le clustering. Peut-être une bonne analogie (plutôt que les cours des actions) est la carte choroplèthe du nombre de cas de cancer du rein par état 2000-2010 aux États-Unis. Cela aussi ne nous dit rien sur le regroupement (géographique) car il ne tient pas compte des variations de population entre les États. De même, un tracé croisé a besoin d'une normalisation ou d'une référence appropriée pour être interprétable. Les tendances générales, les pointes, etc., pourraient simplement refléter les schémas géographiques de tous les emplacements des bâtiments.
whuber
@whuber Vous avez raison. Après avoir lu votre commentaire ci-dessus, j'ai décidé que mon idée de tracé simple ne fournirait pas beaucoup d'informations, du moins comme elle a été décrite, donc je l'ai supprimée afin de ne pas confondre les gens. Je crois maintenant que Joint Count Statistic est la méthode la plus simple pour aborder le problème.
b_dev
2

Je n'ai jamais fait d'analyse de grappe dans SIG moi-même, mais serait-il plus facile si vous créiez des points / polygones pour représenter une grappe donnée de X et / ou Y. Par exemple, si vous créiez des points pour signifier la construction de Y, vous pourriez alors utilisez l' outil Distance de point pour obtenir tous les points du bâtiment X à une distance donnée de vos emplacements d'origine.

Sinon, la création d'un tampon autour des bâtiments de type Y et la sélection de tous les bâtiments de type X obtiendront le même résultat si vous ne disposez pas d'ArcInfo.

Nathanus
la source
0

Vous pouvez combiner les deux couches en ajoutant une colonne binaire (0,1) pour identifier si le bâtiment provient de X ou Y.

À partir de là, en utilisant GeoDa, vous pouvez identifier l'auto-corrélation spatiale locale (clustering) et déterminer si elle était élevée-basse (une couche regroupée autour de l'autre couche) basse-haute (l'inverse) ou haute-haute ou basse-basse (auto- clustering). Guide de l'utilisateur ici (.pdf)

raphael
la source