II-‐ Autocorréla-on Spa-ale Généralités • Lorsqu’on étudie une variable géoréférencée {Y (s), s ∈ S } , ce qui se passe dans une localisation particulière dépend de ce qui se passe dans d’autres localisations. Ces interactions sont d’autant plus fortes que les localisations concernées sont plus proches. • Autocorrélation spatiale= corrélation d’une variable géoréférencée avec elle-même. Permet de mesurer le degré de ressemblance entre observa-ons voisines • L’ Autocorrélation spatiale peut être: – Positive: les valeurs de la variable dans des lieux proches se ressemblent et dans des lieux éloignés sont dissemblables – Négative dans le cas contraire (phénomène d’évitement) Généralités Généralités • Dans la suite du cours, on s’intéresse à des données laticielles : S est discret fixé à n points (par exemple, S est un ensemble de zones géographiques) • On note (y1,…yn) les données dont on dispose sur le phénomène Y sur les n points de S. On considère qu’il s’agit d’une réalisation du vecteur aléatoire {Y (s), s ∈ S } . • On étudie la loi de {Y (s), s ∈ S } Généralités • Exemple : données sids du package spdep (mort subite du nourrisson en caroline du nord) ü Données de type "Spa-alPolygonsDataFrame" . Ce type d’objet peut contenir à la fois des données de localisa-ons géographiques et des données classiques sous la forme d’un tableau de données. Les localisa-ons sont repérées par le couple longitude-‐la-tude et u-lisent ici la référence NAD27. nc_file=system.file("etc/shapes/sids.shp", package="spdep")[1] llCRS=CRS("+proj=longlat +datum=NAD27") nc.sids = readShapeSpa-al(nc_file, ID="FIPSNO", proj4string=llCRS) ü Le format .shp présuppose qu’on a 3 fichiers : *.shp, *.shx, and *.dbf, Le premier con-ent les données géométriques (cartographie), le deuxième les index des enregistrements du fichier .shp, le troisième les a_ributs. Les centres des régions sont accessible avec la fonc-on coordinates(), et peuvent être u-lisées pour placer des labels sur la carte. Généralités Contenu de nc.sids : SP_ID : Spa-alPolygons ID CNTY_ID : county ID east : eas-ngs, county seat, miles, local projec-on north : northings, county seat, miles, local projec-on L_id : Cressie and Read (1985) L index M_id : Cressie and Read (1985) M index names : County names AREA : County polygon areas in degree units PERIMETER : County polygon perimeters in degree units CNTY_ : Internal county ID NAME : County names FIPS : County ID FIPSNO : County ID CRESS_ID : Cressie papers ID BIR74 : births, 1974-‐78 SID74 : SID deaths, 1974-‐78 NWBIR74 : non-‐white births, 1974-‐78 BIR79 : births, 1979-‐84 SID79 : SID deaths, 1979-‐84 NWBIR79 : non-‐white births, 1979-‐84 names(nc.sids) [1] "SP_ID" "CNTY_ID" "east" "north" "L_id" "M_id" "names" "AREA" "PERIMETER" "CNTY_" "NAME" "FIPS" "FIPSNO" "CRESS_ID" "BIR74" [16] "SID74" "NWBIR74" "BIR79" "SID79" "NWBIR79" Généralités Contours des unités géographiques (comtés) plot(nc.sids, axes=TRUE) text(coordinates(nc.sids), label=nc.sids$FIPSNO, cex=0.5) -tle("Fron-ères des comtés, Caroline du nord") 37005 37073 37029 37009 37131 37171 37169 37157 3703337145 37053 37185 37181 37091 37139 37077 37083 37189 37143 37193 37197 37041 37067 37081 37069 37011 37015 37135 37001 37063 37121 37127 37065 3702737003 37059 37115 37199 37117 3718737177 37097 37057 37183 37055 37023 37151 37195 37037 37111 37035 37159 37147 37013 37087 37021 37095 37101 37079 37173 37109 37105 37161 37025 37085 37191 37075 37089 37045 37123 37167 37125 37071 37099 37149 37119 37107 37049 37175 37113 37137 37039 37043 37103 37093 37051 37163 37179 3700737153 37061 37165 37031 37133 37155 37017 37141 37047 34°N 35°N 36°N 37°N 38°N Frontières des comtés, Caroline du nord 37129 32°N 33°N 37019 84°W 82°W 80°W 78°W 76°W Généralités • Les différentes étapes d’une étude de l’autocorréla@on spa@ale ü Choix d’un critère de voisinage : Déterminer les aires liées entre elles (dépend de la connaissance du problème étudié) ü Choix d’ une matrice de poids : Assigner des poids aux aires qui sont liées ü Mise en oeuvre de tests sta-s-ques en u-lisant ce_e matrice de poids, pour examiner l’autocorréla-on spa-ale. No-on de voisinage • Généralités ü Pour mesurer la ressemblance entre lieux proches, il faut définir une no-on de voisinage entre localisa-ons ́de S. ü On peut définir différentes no-ons de voisinage, selon l’idée que l’on se fait du problème étudié, qui impacteront le résultat des analyses de l’autocorréla-on. ü Un type donné de voisinage pourra être représenté par un graphe, appelé graphe de voisinage : à chaque observa-on spa-ale (zone géographique par ex ), on associe un nœud du graphe (centre de la zone). Les nœuds correspondant à deux zones voisines sont reliés par un arc. No-on de voisinage Exemple : Ajout du système de voisinage aux données nc.sids (voisinage proposé par Cressie et Chan (1989), stocké dans le fichier ncCC89.gal) • Créa-on de l’objet ncCC89 de classe neigborhood gal_file=system.file("etc/weights/ncCC89.gal", package="spdep")[1] ncCC89=read.gal(gal_file, region.id=nc.sids$FIPSNO) Les systèmes de voisinage sont généralements stockés dans des fichiers .gal lus sous R avec la fonc-on read.gal(). L’objet ainsi crée est un objet de classe « nb » (neigborhood). Il s’agit d’une liste de listes, une pour chaque observa-on, contenant une liste de voisins et d’autres informa-ons, comme l’iden-fiant de la région. Contenu résumé de l’objet ncCC89 est un objet de classe “nb” summary(ncCC89) Neighbour list object: Number of regions: 100 Number of nonzero links: 394 Percentage nonzero weights: 3.94 Average number of links: 3.94 2 regions with no links: 37055 37095 Link number distribu-on: 0 1 2 3 4 5 6 7 8 2 3 14 18 28 21 7 6 1 3 least connected regions: 37019 37031 37133 with 1 link 1 most connected region: 37041 with 8 links No-on de voisinage Créa@on du graphe de voisinage plot(nc.sids, border="grey") plot(ncCC89, coordinates(nc.sids), add=TRUE, col="blue") No-on de voisinage • Les différentes no@ons de voisinage v Con@güité ü No-on fréquemment u-lisée lorsque les données portent sur des zones géographiques. ü Distance de con-güité entre deux zones = nombre minimal de fron-ères qu’il faut franchir pour aller de l’intérieur de l’une à l’intérieur de l’autre. ü La no-on de con-güité repose sur celle de fron-ère partagée q Deux zones sont dites con-gües à l’ordre k (lag k) si leur distance de con-güité est égale à k (analogue spa-al de la défini-on des retards (lag) en séries temporelles) q CP: deux zones sont dites con-gües (à l’ordre 1) si elles ont une fron-ère commune. 2/15/20 No-on de voisinage Spatial weights matrices Neighborhoods can be defined in a number of ways ü Défini-on d’une fron-ère partagée Contiguity (common boundary) Distance (distance band, K-nearest neighbors) What is a “shared” boundary? How many “neighbors” to include, what distance do we use? General weights (social distance, distance decay) La zone centrale La zone centrale La zone centrale a 4 voisins dans a 4 voisins dans a 8 voisins dans les direc-ons les direc-ons les direc-ons N-‐S et E-‐O N-‐E/S-‐O et N-‐O/S-‐E N-‐S, E-‐O N-‐E/S-‐O, N-‐O/S-‐E Common weights measures Most common is using binary connectivity based on No-on de voisinage ü Exemple : voisins de 5? 1 4 7 • • • 2 3 5 6 8 9 Voisinage de type « rook » : 2,4,6,8 Voisinage de type « bishop »: 1,3,7,9 Voisinage de type « queen » 1,2,3,4,6,7,8,9. No-on de voisinage ü Exemple Créa+on d’un voisinage de type queen sids_nbq=poly2nb(nc.sids) ; sids_nbq Neighbour list object: Number of regions: 100 Number of nonzero links: 490 Percentage nonzero weights: 4.9 Average number of links: 4.9 Créa+on d’un voisinage de type rook sids_nbr=poly2nb(nc.sids, queen=FALSE) Sids_nbr Neighbour list object: Number of regions: 100 Number of nonzero links: 462 Percentage nonzero weights: 4.62 Average number of links: 4.62 Graphes de voisinage coords=coordinates(nc.sids) par(mfrow=c(3,1)) plot(nc.sids) plot(sids_nbq, coords, add=T, col=2) legend("bo_om","queen", text.col=2) plot(nc.sids) plot(sids_nbr, coords, add=T, col=3) legend("bo_om","rook", text.col=3) plot(nc.sids) plot(sids_nbq, coords, add=T, col=2) plot(sids_nbr, coords, add=T, col=3) legend("bo_om",c("queen","rook"), text.col=c(2,3)) queen rook queen rook No-on de voisinage Répar++on des liens de voisinage qq=table(card(sids_nbq)); qq 2 3 4 5 6 7 8 9 8 15 17 23 19 14 2 2 barplot(qq, col=2,main="répar--on du nombre de liens par région") 5 10 15 20 répartition du nombre de liens par région 0 Contenu du fichier “nb” créé summary(sids_nbq) Neighbour list object: Number of regions: 100 Number of nonzero links: 490 Percentage nonzero weights: 4.9 Average number of links: 4.9 Link number distribu-on: 2 3 4 5 6 7 8 9 8 15 17 23 19 14 2 2 8 least connected regions: 37041 37043 37053 37055 37129 37137 37149 37177 with 2 links 2 most connected regions: 37097 37125 with 9 links 2 3 4 5 6 7 8 9 No-on de voisinage Distance based neighbors k nearest neighbors dCan also choose the k nearest points as neighbors v Voisinage basé sur une istance > coords<-coordinates(sids_SP) > u IDs<-row.names(as(sids_SP, "data.frame")) Nécessite que l’on ait choisi ne distance dij entre lieux i et j (euclidienne, ou autre). > sids_kn1<-knn2nb(knearneigh(coords, k=1), row.names=IDs) sids_kn2<-knn2nb(knearneigh(coords, k=2), ü Méthode des k voisins >les plus proches (k-‐nearest neighbors) : On row.names=IDs) choisit comme voisinage les k voisins l>es sids_kn4<-knn2nb(knearneigh(coords, plus proches de l’observa-on i au sk=4), ens drow.names=IDs) e la distance dij. > plot(sids_SP) k=2 > plot(sids_kn2, coords, add=T) k=3 k=1 ü Méthode des voisins à distance radiale : On chosit comme voisins de i les points j situés à moins d’une distance d: 0 ≤ d ij ≤ d ü Voisinage global : On choisit l’ensemble de tous les autres points de S comme voisins de i. 1 No-on de voisinage ü Exemple Créa+on d’un voisinage basé sur les k (=1,2,4) plus proches voisins IDs=row.names(as(nc.sids, "data.frame")) library(RANN) sids_kn1=knn2nb(knearneigh(coords, k=1), row.names=IDs) Neighbour list object: Number of regions: 100 Number of nonzero links: 100 Percentage nonzero weights: 1 Average number of links: 1 Non-‐symmetric neighbours list sids_kn2=knn2nb(knearneigh(coords, k=2), row.names=IDs) sids_kn4=knn2nb(knearneigh(coords, k=4), row.names=IDs) par(mfrow=c(3,1)) plot(nc.sids, main="k=1") plot(sids_kn1, coords, add=T) plot(nc.sids, main="k=2") plot(sids_kn2, coords, add=T) plot(nc.sids, main="k=4") plot(sids_kn4, coords, add=T) k=1 k=2 k=4 Créa+on d’un voisinage à distance radiale Fonc-on dnearneigh (): Iden-fie les voisins d’un point par la distance euclidienne entre une borne inférieure et une borne supérieure • Fonc-on nbdists (): Etant donnée la liste des voisins de chaque point (donnée dans un fichier de voisinage de classe nb, cf sec-on voisinage) retourne les distances euclidiennes entre le point et chaque voisins via une liste de même forme. nbdists(sids_kn1, coords) sont voisins les points à une distance < à max(dist) [[1]] [1] 0.2766561 [[2]] [1] 0.2607982 [[3]] [1] 0.2914539 …………... dist=unlist(nbdists(sids_kn1, coords)) summary(dist) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.1197 0.2582 0.2964 0.2910 0.3239 0.4226 sids_kd2=dnearneigh(coords, d1=0, d2=1*max(dist), row.names=IDs) • No-on de voisinage • Choix per@nent d’un voisinage : • Lorsque les zones sont très hétérogènes, les k plus proches voisins ne conviennent pas car les distances entre points peuvent être très dissemblables • La con-güité est inadaptée à des données portant sur des points : contrairement au cas des zones, la détermina-on de la con-guïté entre deux points n’a guère de sens. • • Il faut choisir une méthode ne laissant pas trop de points isolés En réalité, on peut généralement supposer que toutes les observa-ons (et pas seulement celles qui sont les plus proches les unes des autres) interagissent les unes avec les autres, même si leur ac-on s’amoindrit avec la distance. Considérer que le voisinage est S en-er est donc per-nent lorsque S n’est pas trop grand. Matrice de poids • Généralités ü Une matrice de poids permet de quan-fier les rela-ons de voisinage entre points i.e. d’affecter un poids à chaque voisin. Sa structure dépend de la no-on de voisinage choisie ü Différents types de matrice de poids selon le voisinage choisi: v Matrices binaires: Matrice de con-guité, Matrice de distance radiale, Matrice basée sur les k plus proches voisins,… v Matrice de poids générales: lorsque le voisinage est S tout en-er. Elles sont généralement basées sur une distance. Matrice de poids • Forme générale d’une matrice de poids n= nombre de localisa-ons. ! # # # # # W =# # # # ## " 0 ... w1i ... 0 wi1 ... ... w1 j ... 0 ... ... ... wij ... ... ... w j1 ... w ji 0 ... ... 0 ... ... ... wn1 ... wni ... ... ... wnj ... w1n $& ... ... & & ... win & & ... ... & ... w jn & & 0 ... & ... 0 && % ü wij est d’autant plus élevé que j a une influence importante sur i. n ü Généralement la matrice est standardisée en ligne : ∑ wij = 1 j=1 Matrice de poids v Propriétés : ü Les matrices de poids sont souvent standardisées en ligne, en par-culier lorsqu’elles sont binaires. -‐ Permet de créer des poids propor-onnels dans le cas où les aires n’ont pas le même nombre de voisins : Une matrice de poids non standardisée fait varier l’influence des observa-ons. Les zones ayant beaucoup de voisins sont sur-‐ pondérées en comparaison avec celles qui en ont peu. -‐ Facilite les calculs des sta-s-ques de tests et permet de comparer les résultats obtenus avec différentes matrices de poids ü Les matrices de poids peuvent être ou non symétriques (la non symétrie est approprié lorsque les rela-ons étudiées sont des rela-ons de diffusion ou des rela-ons de type centre -‐ périphérie). Matrice de poids • Les différents types de matrices de poids v Matrices binaires ² Matrice de con-guité : !# 0 si i et j ne sont pas contigus W = (wij ), wij = " #$ 1 si i et j sont contigus Con-guité au sens d’une défini-on donnée de la fron-ère commune (rook, queen, bishop). n ü Le nombre de régions con-gues à i est alors Li = ∑ wij j=1 ü Une matrice de con-guité est généralement symétrique Matrice de poids ² Matrice de distance radiale " 1 si 0 ≤ d ≤ d $ ij W = (wij ), wij = # $% 0 si d ij > d ü généralement symétrique ² Matrice basée sur les k-‐plus proches voisins : Soit N k (i) L’ensemble des k voisins les plus proches de i. "$ 1 si j ∈ N (i) k W = (wij ), wij = # $% 0 sinon ü généralement pas symétrique Matrice de poids v Matrices de distances générales ² Distance puissance ² Distance exponen-elle W = (wij ), wij = dij− β , β > 0 W = (wij ), wij = exp(−β dij ), β > 0 ² Autres distances : Ex: Les poids reflètent l’appartenance de deux individus à la même catégorie sociale. W = (wij ), wij = 1 yi − y j où yi et yj sont des observa-ons sur des caractéris-ques socio-‐économiques per-nentes (revenu par tête , % de la popula-on dans un groupe racial ou ethnique,…). B 100 10000 490 980 10696 Matrice de poids v Exemple de calcul d’une matrice de poids Binary vs. row-standardized A binary weights matrix looks like: Observation 1 has Observation 2 has Observation 3 has Observation 4 has neighbor 2 neighbors 3 and 4 neighbors 1 and 2 neighbor 2, 3 and 4 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 A row-standardized matrix it looks like: 0 1 0 0 0 0 .5 .5 .5 .5 0 0 0 .33 .33 .33 Matrice de poids v Créa@on d’une matrice de poids avec R: nb2listw(neighbours, glist=NULL, style="W", zero.policy=FALSE) ü Arguments: • neighbours: un objet de classe ’nb’ (voisinage) • glist: liste de poids généraux correspondant aux voisins • style: peut prendre les valeurs W, B, C, U, and S (W si l’on veut une matrice standardisée, B si l’on veut une matrice binaire, le défaut est W) • zero.policy: si FALSE, arrête avec un message d’erreur dès qu’il y a un point sans voisins. Si TRUE permetde prendre en compte les points isolés (sans voisin). ü • • • Renvoie un objet de classe listw, comprenant: style : le style neighbours: la liste des voisins de chaque localisa-on weights : la liste des poids des voisins de chaque localisa-on Matrice de poids v Exemples : ü Créa+on d’une matrice de con+guité standardisée (type queen) sids_nbq_w=nb2listw(sids_nbq) Characteris-cs of weights list: Neighbour list object: Number of regions: 100 Number of nonzero links: 490 Percentage nonzero weights: 4.9 Average number of links: 4.9 Weights style: W Weights constants summary: N nn S0 S1 S2 W 100 10000 100 44.65023 410.4746 nn, S0, S1 and S2 (cf précédemment) sont plusieurs indicateurs calculés sur la matrice des poids et u-lisés dans le calcul des sta-s-ques d’autocorréla-ons spa-ales (cf après) Matrice de poids ü Créa+on d’une matrice de con+guité non standardisée (type queen) sids_nbq_wb= nb2listw(sids_nbq, style="B") sids_nbq_wb$weights Créa+on d’une matrice des deux plus proches voisins non standardisée sids_kn2_w= nb2listw(sids_kn2, style="B") sids_kn2_w$neig [[1]] [1] 0.1666667 0.1666667 0.1666667 0.1666667 0.1666667 Neighbour list object: 0.1666667 Number of regions: 100 [[2]] Number of nonzero links: 200 [1] 0.25 0.25 0.25 0.25 [[3]] Percentage nonzero weights: 2 [1] 0.3333333 0.3333333 0.3333333 Average number of links: 2 [[4]] Non-‐symmetric neighbours list [1] 0.25 0.25 0.25 0.25 [[5]] [1] 0.3333333 0.3333333 0.3333333 ……… Chaque sous-‐liste correspond à une localisa-on et ses poids en ligne Matrice de poids ü Créa+on d’une matrice de distance radiale sids_kd2_w=nb2listw(sids_kd2, style="B") sids_kd2_w$weight [[1]] [1] 1 1 1 1 [[2]] [1] 1 1 1 1 [[3]] [1] 1 1 [[4]] [1] 1 1 1 Matrice de poids • Variable décalée (lag) : ü La i° variable décalée mesure de l’effet global sur la i° observa-on des autres points de l’espace ; Si W est une matrice de poids et Y = (Y1, ..., Yn)’ est le vecteur colonne des n observa-ons de la variable spa-alisée Y(s), la i° variable décalée n vaut: zi = (WY )i = ∑ wijY j j=1 On note dans la suite n S0 = ∑ n ∑w ij i=1 i=1,i≠ j S1 = n wi. = ∑ wij 1 n n (wij + w ji ) 2 ∑ ∑ 2 i=1 i= j j=1 n ( S2 = ∑ wi. + w.i i=1 ) ü Lorsque la matrice de poids W est une matrice standardisée, la i°variable spa-ale décalée con-ent la moyenne pondérée des valeurs prises par Y sur les régions voisines à la région i. De plus, n n n n et z= 1 1 1 zi = ∑∑ wijY j = ∑Y j = y ∑ n i=1 n j=1 i=1 n j=1 S0 = n Matrice de poids Le modèle CAR stationnaire Exemple de construction de W • jj On définit pour tout i un facteur de pondération tel que wij est grand lorsque i est proche de j . Exemple : Voisinage "tour" d’ordre 1 : 1 4 7 2 5 8 3 6 9 w51 = w53 = w57 = w59 = 0 w52 = w54 = w56 = w58 = 1/4. Donc z5 = 1 (Y2 + Y4 + Y6 + Y8 ) 4 1 z1 = (Y2 + Y4 ) 2 Matrice de poids ü Créa-on de la variable SID décalée pour chaque lieu avec matrice de con-guité queen standardisée wy=lag.listw(sids_nbq_w, nc.sids$SID79) [1] 11.000000 10.500000 4.333333 7.750000 3.666667 6.400000 5.166667 5.200000 21.400000 9.666667 5.142857 10.142857 12.800000 7.666667 2.666667 14.333333 6.500000 9.833333 [19] 12.875000 1.333333 1.000000 2.000000 15.400000 10.000000 6.000000 9.333333 1.500000 1.000000 13.428571 8.000000 Tests d’autocorréla-on spa-ale • Les différents tests mesurant l’autocorréla@on spa@ale : ü Tests pour variables qualita-ves: test de couleur des cartes ü Tests globaux d’autocorréla-on spa-ale : les valeurs sont-‐elles globalement (sur l’ensemble du site) posi-vement (néga-vement) corrélées? Deux indices principaux : I de Moran et C de Geary. I préféré à C, en raison d’une stabilité générale plus grande. ü Tests locaux d’associa-on spa-ale (LISA): La valeur observée en i est-‐elle associée posi-vement aux valeurs des localisa-ons voisines (ressemblances) ou néga-vement (dissemblance)? Indices LISA : Décomposent l’indice global de façon à iden-fier la contribu-on individuelle de chaque lieu. Perme_ent de détecter les poches locales d’autocorréla-on spa-ale Tests d’autocorréla-on spa-ale • Tests globaux d’autocorréla@on spa@ale : On veut tester : H0 : independance entre les valeurs de Y prises sur les différentes localisa-ons (spa-al randomness) contre H1 : associa-on ü associa+on posi+ve : les valeurs de Y proches ont tendance à être regroupées dans l’espace (agréga-on) ü associa+on néga+ve : les voisins tendent à être dissemblables (structure en damier) RQ : Les résultats de ces tests dépendent du choix de la matrice W variance fornormal each region Regional x/y mean valuesand all come from distributions w/same Regional x/y values all come from normal distributions w/same mean and variance for each regionthe data on map and compute Randomly rearrange I many mean and variance for each region times, would haveon a normal Randomly rearrange the data map anddistribution compute I many Randomly rearrange the data on map and compute I many times, would have a normal Why? Because distribution we use the normal distribution totimes, calculate the p-value would have a normal distribution Why? Because we use the normal distribution to calculate the p-value Why? Because we use the normal distribution to calculate the p-value Tests d’autocorréla-on spa-ale v I de Moran (1950) Moran’sla Iplus classique d’associa-on spa-ale, analogue au Durbin-‐Watson de ü Sta-s-que Moran’s I I the mean Product Moran’s of the deviation from séries temporelles for all pairs of adjacent regions (w =1) n Product of the deviation from the mean nfor all pairs of adjacent regions (wij=1) ij Product of the deviation from the mean for all pairs of adjacent regions (wij=1) n n n wij ( yi y )( y j y ) n n w ( y − y)( y − y) n wij ( yi i 1i yj )( y j ny ) n ij i j wij ( yi y )( y j y ) I i 1 i j i 1 i j I n 2 i=1 j=1 I n I = ( y y ) w ij i n 2 ( yi y)i21 wij i j n 2 ( yi y ) wij i 1 i j S0 ( yi − y) i 1 i j n n ∑∑ ∑ Essentially a measure of Sum of the weights (count variance regions Essentially a measure of across theSum of all(count adjacenti=1 pairs) of the weights Essentially a measure of variance across the regions of all adjacent pairs) variance across the regions Sum of the weights (count n = number of regions of all adjacent pairs) • n = number I a des ofvregions aleurs comprises entre -‐1 ent =1number of regions w = measure of spatial proximity between region i and j • wij = I measure est dij’autant lus grand que d es valeurs s emblables tendent à se regrouper dans des of spatialpproximity between region iwand j ij = measure of spatial proximity between region i and j • • lieux proches (a_rac-on) I est d’autant plus pe-t que des valeurs dissemblables tendent à se regrouper dans des lieux proches (répulsion) Lorsque I est proche de 0, la répar--on des valeurs de Y se fait au hasard : il y a absence de corréla-on spa-ale. 18 18 AVen@on : le I de Moran dépend du choix de la matrice W et peut être affecté par le niveau d’aggréga-on (effet d’échelle) ainsi que par la forme des unités spa-ales 18 Tests d’autocorréla-on spa-ale ü Loi de la sta-s-que de test sous H0 sous l’hypothèse de normalité (N) q (N): on suppose que les observa-ons (y1,..yn) sont des réalisa-ons d’un vecteur gaussien à composantes i.i.d sous H0. avec Z= I − E N (I ) → N (0,1) sous H0 VN (I ) 1 n −1 n 2 S1 − nS2 + 3S02 2 VN (I ) = − E N (I ) 2 2 S0 (n −1) E N (I ) = − Tests d’autocorréla-on spa-ale ü Loi de la sta-s-que de test sous H0 sous Hypothèse de Randomisa9on (R) q (R): Lorsqu’on répar-t plusieurs fois les données au hasard sur la carte (permuta-on des lieux) et qu’on calcule I à chaque fois, la répar--on des valeurs I obtenues est à peu près gaussienne. Z= I − E R (I ) → N (0,1) sous H0 VR (I ) 1 n −1 n (n 2 − 3n + 3)S1 − nS2 + 3S02 − K (n 2 − n)S1 − 2nS2 + 6S02 E R (I ) = − VN (I ) = ( ) 2 0 S (n −1)(n − 2)(n − 3) n K= ( n∑ ( yi − y ) 4 i=1 # n & %% ∑ ( yi − y ) 2 (( $ i=1 ' 2 )−E 2 R (I ) Tests d’autocorréla-on spa-ale ü Loi de la sta-s-que de test sous H0 en l’absence d’hypothèse sur la distribu@on de I q Si on a un doute sur N ou R, on simule la loi de I par Bootstrap pour es-mer la p-‐ value. Algorithme : 1) On calcule I. 2) On exécute B fois la tâche suivante : On permute aléatoirement les observa-ons et on recalcule I : on ob-ent un ensemble de B valeurs de l’indice de Moran (I1 ,..., I B ) 3) La p-‐value du test est le pourcentage de valeurs générées supérieures à I : Nombre de b / I b > I B Tests d’autocorréla-on spa-ale ü Exemples Test de Moran avec hypothèse N : moran.test(nc.sids$SID79, listw=sids_nbq_w, alterna-ve="two.sided", randomisa-on=FALSE) Moran's I test under normality Pour un test à 5%, on reje_e H0 dès que p-‐value<5% H0: a bsence data: nc.sids$SID79 d’autocorréla-on weights: sids_nbq_w H1: corréla-on Moran I sta-s-c standard deviate = 2.5927, p-‐value = 0.009524 alterna-ve hypothesis: two.sided sample es-mates: Ecart-‐type de la sta-s-que de Valeur de I Moran I sta-s-c Expecta-on Variance VarN(I) moran sous H0 lorsque (N) vraie 0.158977893 -‐0.010101010 0.004252954 EN(I) Conclusion : on reje_e H0 : il existe une autocorréla-on spa-ale globale, qui est posi-ve (signe de l’indice) Tests d’autocorréla-on spa-ale Test de Moran avec hypothèse R : moran.test(nc.sids$SID79, listw=sids_nbq_w, alterna-ve="two.sided") Moran's I test under randomisa-on data: nc.sids$SID79 weights: sids_nbq_w Moran I sta-s-c standard deviate = 2.6926, p-‐value = 0.00709 alterna-ve hypothesis: two.sided sample es-mates: Moran I sta-s-c Expecta-on Variance 0.158977893 -‐0.010101010 0.003943149 Conclusion : on reje_e H0 : il existe une autocorréla-on spa-ale globale, qui est posi-ve (signe de l’indice) Tests d’autocorréla-on spa-ale Test de Moran par bootstrap: bperm=moran.mc(nc.sids$SID79,listw=sids_nbq_w, nsim=999) Monte-‐Carlo simula-on of Moran's I data: nc.sids$SID79 B Rang de la valeur de I parmi weights: sids_nbq_w les valeurs générées number of simula-ons + 1: 1000 sta-s-c = 0.159, observed rank = 990, p-‐value = 0.01 alterna-ve hypothesis: greater H0 : absence d’autocorréla-on H1 : autocorréla-on posi-ve Tests d’autocorréla-on spa-ale Monte Carlo Moran’s I • > mean(bperm$res[1:999]) [1] -0.0130007 > var(bperm$res[1:999]) [1] 0.004201103 > summary(bperm$res[1:999]) Min, Max, Median, Quartiles > hist(bperm$res, freq=TRUE, breaks=20, xlab="Simulated Moran's I") > abline(v=0, col=“red”) Tests d’autocorréla-on spa-ale v Indice de Geary C (1954) n C= n (n −1)∑∑ wij ( yi − y j ) 2 ) i=1 i=1 n 2S0 ∑ ( yi − y) 2 i=1 ü ü ü ü C est compris entre O et 3 Des valeurs <1 indique une autocorrélation spatiale positive Des valeurs >1 indique une autocorrélation spatiale négative Des valeurs proches de 1 indiquent une absence d’autocorrélation positive Tests d’autocorréla-on spa-ale ü Loi de la sta-s-que sous H0 q Sous les hypothèses (N) ou (R), q Sinon, bootstrap Z= C − E(C) → N (0,1) sous H0 V (C) Tests d’autocorréla-on spa-ale Test de Geary C sous l’hypothèse R geary.test(nc.sids$SID79, listw=sids_nbq_w, alterna-ve="two.sided") Geary's C test under randomisa-on data: nc.sids$SID79 weights: sids_nbq_w Geary C sta-s-c standard deviate = 2.1501, p-‐value = 0.03155 alterna-ve hypothesis: two.sided sample es-mates: Geary C sta-s-c Expecta-on Variance 0.829864635 1.000000000 0.006261663 Conclusion : Au seuil 5% on reje_e H0: il existe une autocorréla-on spa-ale (posi-ve car C<1) Tests d’autocorréla-on spa-ale v Choix de la sta@s@que de test ü l’indice de Geary est plus sensible aux points aberrants ü l’approxima-on gaussienne est meilleure pour I que pour G Tests d’autocorréla-on spa-ale v Autocorrélogramme Une autocorréla-on spa-ale posi-ve signifie qu’à une valeur élevée de yi correspondent des valeurs élevées dans les zones con-guës ou courte distance. Un moyen u-le de représenter les valeurs successives de l’indice d’autocorréla-on spa-ale (généralement I) en fonc-on de la distance ou de différents ordres de con-guïté est le corrélogramme. ü L’Autocorrélogramme de Moran permet de visualiser la façon dont l’autocorréla-on change avec l’éloignement des lieux. La distance entre deux lieux est mesurée via la matrice de poids. • Pour chaque valeur h de distance (qui dépend du type de voisinage choisi), on détermine un W(h) qui vaut 1 si la distance vaut h, 0 sinon • on calcule un indice de moran I(h) appelé corrélogramme de Moran • On regarde alors comment évolue l'autocorréla-on avec l'ordre du voisinage. Cela permet d'appréhender des structures plus complexes, opérant a différentes échelles. Tests d’autocorréla-on spa-ale ü CP : Distance de con-guité : Lorsqu'on mesure l'autocorréla-on, on mesure le lien entre la valeur observée en un point et les valeurs observées aux points voisins. Dans le graphe de con-guité, les voisins sont définis par deux points reliés par une arête. On parle de voisinage d'ordre 1. On peut aussi définir un voisinage d'ordre 2 qui consiste à prendre comme voisin d'un point, les voisins d'ordre 1 de ses voisins d'ordre 1. Ainsi de suite. On a alors distance h=con-guité d’ordre h Tests d’autocorréla-on spa-ale 0.2 0.1 0.0 -0.2 -0.1 Moran's I • 0.3 nc.sids$SID79 1 2 3 4 5 6 7 8 lags Le profil (ou la courbure) de l’autocorrélogramme est en général monotone décroissant. La courbure des indices correspondant à la vitesse à laquelle décroît l’indice. • La valeur maximale (à distance minimale), ici de 0,157, est le I de Moran (moran. Test) du premier voisinage. • La portée (ici voisinage à l’ordre 5) est le niveau au delà duquel l’indice s’annule ou change de signe . Tests d’autocorréla-on spa-ale ü Rq : Graphe des voisinages de con-guité d’ordres 1 à h nb.lag=nblag(sids_nbq,2) (h=2) [[1]] Neighbour list object: Number of regions: 100 Number of nonzero links: 490 Percentage nonzero weights: 4.9 Average number of links: 4.9 [[2]] Neighbour list object: Number of regions: 100 Number of nonzero links: 868 Percentage nonzero weights: 8.68 Average number of links: 8.68 par(mfrow=c(2,1)) plot(nc.sids) ; plot(nb.lag[[1]], coords, add=T, col=2, main="h=1") plot(nc.sids) ;plot(nb.lag[[2]], coords, add=T, col=2, main="h=2") Tests d’autocorréla-on spa-ale cor=sp.correlogram(sids_nbq, nc.sids$SID79, order=8, method="I", style="W") Spa-al correlogram for nc.sids$SID79 method: Moran's I es-mate expecta-on variance standard deviate Pr(I) two sided 1 0.1589779 -‐0.0101010 0.0039431 2.6926 0.00709 ** 2 0.1048517 -‐0.0101010 0.0023014 2.3962 0.01657 * 3 0.0596812 -‐0.0101010 0.0017727 1.6574 0.09744 . 4 0.0127441 -‐0.0101010 0.0016063 0.5700 0.56868 5 0.0312701 -‐0.0101010 0.0016498 1.0185 0.30842 6 -‐0.0377728 -‐0.0101010 0.0018493 -‐0.6435 0.51991 7 -‐0.0759001 -‐0.0101010 0.0021352 -‐1.4240 0.15446 8 -‐0.1188161 -‐0.0101010 0.0024119 -‐2.2136 0.02685 * -‐-‐-‐ Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Tests d’autocorréla-on spa-ale nc.sids$SID79 0.0 -0.1 -0.2 Moran's I 0.1 0.2 0.3 plot(cor) • La portée de l’autocorréla-on posi-ve est de 5 (voisinage d’ordre 5). On observe une légère auto-‐corréla-on néga-ve après lag 6. 1 2 3 4 5 lags 6 7 8 2 Tests d’autocorréla-on spa-ale • 2/ Tests locaux d’autocorréla@on spa@ale (LISA) : Perme_ent de porter un regard plus précis sur les varia-ons sous-‐régionales, indépendamment de la structure spa-ale d’ensemble. Local Moran’s I Local II Local Moran’s Moran’s Used to determine if local autocorrelation exists around ü Permet, pour chaque région i, dregion e déterminer si il existe ifulocal ne autocorréla-on locale Used determine autocorrelationexists exists around each I to Used to determine if local autocorrelation around Local Moran’s I dans un voisinage de i. region Returns aneach I value for IIeach region each region to sdetermine if local autocorrelation exists around ü Souvent u-lisé après un test global pour voir i an II value Used an each region region Returns Returns value for for each Often used after global Moran’s I to see if: region I – le phénomène Y est homogène sur S (dans each ce cas, les sta-s-ques locales ont des valeurs similaires sur Often used after global Moran’s tosimilar seeif:if:across regions) Often used after global Moran’s II to see Returns an I value for (local each region The study area is homogeneous statistics chaque région), ou non. The study area isisglobal homogeneous (local statistics similaracross regions) studyafter area homogeneous (local statistics similar regions) Often used to see if: There are local that contribute to a Isignificant globalacross statistic – il existe des abéra-ons locales responsables de lThe a outliers significa-vité de la Moran’s sta-s-que globale. There are local that contribute contribute toaasignificant significant globalstatistic statistic are area localisoutliers outliers that to global The study homogeneous (local statistics similarNeighborhood across regions) – Rq : peuvent être pra-qués même n en dThere ’autocorréla-on globale ( yl’absence y ) i There that contribute to a significant Specified global statistic Neighborhood Neighborhood nn((yyiiare wyijlocal )( youtliers by the Ii j y) 2 Specified I w y ) Neighborhood Specified bybythethe I ( y y ) weights matrix ( yi i i y ) n( yj i y ) 22 ijij jj v Indices locaux de Moran: n 1 I = ∑ Ii S0 i=1 ü Rq : Ii = Ii j n j wij ( y j y) jj((yyii y)2 ( yThe ithy )point for j i j n( yi − y )∑ wij ( y j − y ) The ith point pointfor for point for The ith which we calculate I i i=1 which we calculateIIiIi i we calculate calculate which n ∑( y j=1 j in the − y ) 2 The j pointsThe jj points points The points ininthe the local neighborhood local neighborhood local neighborhood neighborhood Specified by the weightsmatrix matrix weights weights matrix 2/ v Tests locaux de Moran ü Pour chaque localisa-on i, on teste : H(i)0 : independance entre la valeur de Y dans la localisa-on i et celle de ses voisins contre H(i)1 : associa-on locale entre la valeur de Y prise par i et celles de ses voisins ü La sta-s-que de test u-lisée est Ii. Elle est posi-ve (resp. néga-f) dans les régions ayant des valeurs similaires (resp. différentes) ü La distribu-on de Ii sous H0 n’est pas Gaussienne et la randomisa-on ne marche pas. On u-lise l’approxima-on par « points de selles » (cf. Tiefelsdorf (2000; 2002)) pour approcher ce_e loi. Tests d’autocorréla-on spa-ale fips=order(nc.sids$FIPSNO ) nclocI=localmoran(nc.sids$SID79, sids_nbq_w) pp=printCoefmat(data.frame(nclocI[fips,], row.names=nc.sids$NAME[fips]), check.names=FALSE) Ii E.Ii Var.Ii Z.Ii Pr.z...0.! Alamance 0.07913669 -0.01010101 0.14471804 0.23457787 0.4073! Alexander -0.15454000 -0.01010101 0.22126296 -0.30706484 0.6206! Alleghany 0.24506455 -0.01010101 0.29780788 0.46757790 0.3200! Anson 0.03019857 -0.01010101 0.22126296 0.08567343 0.4659! Ashe 0.44551026 -0.01010101 0.29780788 0.83488444 0.2019! Avery 0.18605116 -0.01010101 0.17533601 0.46844387 0.3197! Beaufort 0.15808868 -0.01010101 0.14471804 0.44211784 0.3292! Bertie 0.12055810 -0.01010101 0.17533601 0.31203559 0.3775! Bladen -0.49749291 -0.01010101 0.17533601 -1.16397260 0.8778! Brunswick -0.03501441 -0.01010101 0.29780788 -0.04565254 0.5182! Buncombe -0.35214166 -0.01010101 0.12284806 -0.97587361 0.8354! …………………………………….. Donne une indica-on sur La contribu-on de chaque région I à l’autocorréla-on globale I, et le sens de celle-‐ci. Une p-‐valeur <5% met en évidence une autocorréla-on locale significa-ve (répulsion si néga-ve, a_rac-on si posi-ve) RQ : sum(pp[,1])/100 0.1589779 (I de Moran) Tests d’autocorréla-on spa-ale v Diagramme de Moran (Moran sca_erplot) : Permet à la fois une analyse globale et une analyse locale par la répar--on des points au sein de quatre quadrants. ü Relie les valeurs de Y (axe des x) à celles de la variable décalée WY, représentant la valeur moyenne de Y sur les voisins (axe des y) Les trois dimensions du processus d’intégration régionale en Europe… Figure 1 : Le diagramme de Moran Décalage spatial standardisé ü Les quatre quadrants du diagramme correspondent aux 4 types d’associa-on locale pouvant exister entre les régions et leurs voisins LH HH 0 Variable standardisée LL HL ² Associa-ons posi-ves (Ii>0) : aggloméra-on locale de valeurs semblables -‐ HH (high-‐high): région à valeur de Y élevée entourée de régions à valeurs de Y similaires et élevées (ces régions sont appelées hot spots) -‐ LL (low-‐low) : région à valeur de Y faible entourée de régions à valeurs de Y similaires et faibles (cold spots) Les quadrants HH5 et LL sont associés à une autocorrélation spatiale positive car ils indiquent un regroupement spatial de valeurs similaires. En revanche, les quadrants LH et HL représentent une autocorrélation spatiale négative car ils indiquent un regroupement spatial de valeurs dissemblables. Par conséquent, le diagramme de Moran peut être utilisé pour visualiser les localisations atypiques, c'est-à-dire les régions qui se trouvent dans les quadrants LH et HL. Une des limites de cet outil est qu’il ne fournit pas d'information sur la significativité des regroupements spatiaux. Celle-ci est obtenue à l'aide d'indicateurs locaux d’association spatiale. 1.3 Les indicateurs locaux d’association spatiale (LISA) Pour toutes nos analyses, nous utilisons des matrices standardisées en lignes, dès lors, la moyenne des statistiques locales de Moran est égale à la statistique globale du I de Moran6. Anselin [1995] définit un indicateur local d’association spatiale ou « LISA » comme toute statistique satisfaisant deux critères. Premièrement, le LISA donne une indication sur le regroupement spatial significatif de valeurs similaires autour de chaque observation. Deuxièmement, la somme des LISA associés à toutes les observations est proportionnelle à un indicateur global d’association spatiale. ² Associa-ons néga-ves (Ii<0) : aggloméra-on locale de valeurs dissemblables -‐ HL (high-‐low) : région à valeur de Y élevée entourée de régions à valeurs de Y similaires et faibles (atypiques locaux) -‐ LH (low-‐high) : : région à valeur de Y faible entourée de régions à valeurs de Y similaires et élevées(atypiques locaux) Anselin fournit une version locale de la statistique région i, elle s'écrit de la façon suivante : Ii 5 6 xi x m0 wij ( x j j x ) avec m0 xi x 2 , du I de Moran. Pour chaque /N i A noter que « élevé » (resp. « faible ») signifie au-dessus (resp. en dessous) de la moyenne européenne. La démonstration de cette propriété est établie par Anselin [1995]. -8- [1] Tests d’autocorréla-on spa-ale ü Propriétés du diagramme de Moran ² La pente de la droite de régression du nuage de points (regression de WY sur Y) correspond au I de Moran ² La valeur moyenne de (Y, WY) se situe à l’intersec-on des axes (x,y) ü U-lisa-on ² Permet de détecter des points aberrants ² La densité des quadrants permet voir le processus spa-al dominant ² La non linéarité permet d’appréhender le degré d’homogénéité du processus spa-al : Un ajustement faible du nuage (R2 de la régression de WY sur Y faible) indique une inhomogénéité importante du phénomène Y (poches locales) et de sa dépendance spa-ale (non-‐sta-onarité) • Remarque : il est intéressant de normaliser Y avant de faire le graphique pour pouvoir ainsi comparer plusieurs diagrammes de Moran entre eux. Le graphique est alors centré en (0,0) Tests d’autocorréla-on spa-ale 10 15 20 Mecklenburg Wake 0 Guilford Cumberland 10 20 30 40 50 nc.sids$SID79 1.5 Commentaires : les Outliers contribuent à affaiblir l’associa-on spa-ale posi-ve -‐ Hoke, Bladen, Lincon : faible taux de morts subites entourées de voisins ayant un fort taux -‐ Wake, Guilford, Cumberland : fort taux de morts subites entourées de voisins ayant un faible taux Hoke Bladen Lincoln 0.5 Gaston Mecklenburg Wake Guilford Cumberland -0.5 spatially lagged as.vector(nc) Gaston 5 nci=moran.plot (nc.sids$SID79, sids_nbq_w, labels=as.character (nc.sids$NAME)) nc=scale(nc.sids$SID79) ncis=moran.plot (as.vector(nc), sids_nbq_w, labels=as.character (nc.sids$NAME)) Hoke Bladen Lincoln 0 valeurs sta+s+quement significa+ves (p<0.05) spatially lagged nc.sids$SID79 ü Exemple : ² Tracer du diagramme de Moran avec surlignage des -1 0 1 2 as.vector(nc) 3 4 5 Tests d’autocorréla-on spa-al ² Cartographie des valeurs du I de Morans locI=cut(nclocI[,1], breaks=c(min(nclocI[,1]), 0, max(nclocI[,1])), labels=c("nega-f", "posi-f"), include.lowest=TRUE) plot(nc.sids, col=c(3,5)[locI]) legend("topright", legend=c("I Nega-f", "I Posi-f"), fill=c(3,5), bty="n", y.intersp=0.8) I Negatif I Positif Tests d’autocorréla-on spa-al ² Cartographie des voisinages influants (points atypiques de la régression de wy sur y) infl=apply(nci$is.inf, 1, any) (permet de repérer les points atypiques de la régression) y =nc.sids$SID79 lhy =cut(y, breaks=c(min(y), mean(y), max(y)), labels=c("L", "H"), include.lowest=TRUE) wy= lag(sids_nbq_w, nc.sids$SID79) lhwy=cut(wy, breaks=c(min(wy), mean(wy), max(wy)), labels=c("L", "H"), include.lowest=TRUE) lhlh = interac-on(lhy, lhwy, infl, drop=TRUE) cols =rep(1, length(lhlh)) cols[lhlh == "H.L.TRUE"] = 2 cols[lhlh == "L.H.TRUE"] =3 cols[lhlh == "H.H.TRUE"] =4 plot(nc.sids, col=c(5,3,8,6)[cols]) legend("topright", legend=c("None", "HL", "LH", "HH"), fill=c(5,3,8,6), bty="n", y.intersp=0.8) None HL LH HH
© Copyright 2025 ExpyDoc