La formule du I global de Moran est la suivante:
où i est un index des unités d'analyse (fondamentalement, les unités de mesure de votre carte, ou dans votre cas pixels dans le raster) et j est un index des voisins de chaque unité de carte. La formule du Moran local I est extrêmement similaire, sauf que puisque le Moran local I est calculé séparément pour chaque unité d'analyse indexée par i , dans la partie supérieure de la fraction, vous n'avez pas besoin de additionner i :
Les valeurs de et seront réparties autour de la moyenne, donc, intuitivement, sur l'ensemble de la zone d'étude, les grappes hautes et basses se compenseront et le Moran's I global sera contraint de se situer entre -1 et 1. Mais pour le Moran's I local, un cluster (élevé, faible, peu importe) sera composé de valeurs où et s'écartent considérablement de la moyenne, et donc la partie supérieure de la fraction dans la deuxième équation sera grande en valeur absolue, beaucoup plus grande que l' écart global par rapport à la moyenne capturée dans la partie inférieure de la fraction par .
Dans votre exemple construit, vous pouvez le voir clairement. Les lignes du haut sont des valeurs faibles, les lignes du milieu sont proches de la moyenne et les lignes du bas sont des valeurs élevées. Par conséquent, comme démontré dans votre deuxième graphique, le I de Moran local est élevé dans les lignes du haut et du bas, car ces lignes contiennent des valeurs loin de la moyenne. Le I local de Moran est proche de 0 dans les rangées du milieu, car ces valeurs sont toutes proches de la moyenne. Votre exemple ne montre pas de dispersion (le motif en damier classique), donc le Moran local I n'est négatif nulle part.
Calculons à la main pour l'un des pixels. Le pixel numéro 15 a huit voisins avec les valeurs 4, 5, 6, 14, 16, 24, 25, 26. Donc:
x = 1:100
Ii = length(x) *
(15 - mean(x)) *
sum(1 * (c(4, 5, 6, 14, 16, 24, 25, 26) - mean(x))) /
sum((x - mean(x))^2)
Ii
# [1] 12.09961
Soit dit en passant, cela n'égale pas la même valeur pour le pixel 15 produit par MoranLocal
:
x1[15]
# 1.512451
Au début, je pensais avoir fait quelque chose de mal, alors j'ai créé une grille vectorielle 10x10 au format vectoriel qui était exactement l'analogue du raster 10x10 et l'ai exécutée à travers la localmoran
fonction dans le package spdep
. Il s'avère que le MoranLocal
calcul s'effectue à l' aide d'une matrice de poids standardisée sur les lignes, alors que la formule I incluse ci-dessus est basée sur l'utilisation d'une matrice de contiguïté simple de la reine binaire. spdep
vous donne le contrôle de ces options. En utilisant la matrice standardisée en ligne, les sont 1/8 (huit voisins à 1/8 chaque somme à 1), donc:
x = 1:100
Ii = length(x) *
(15 - mean(x)) *
sum(0.125 * (c(4, 5, 6, 14, 16, 24, 25, 26) - mean(x))) /
sum((x - mean(x))^2)
Ii
# [1] 1.512451
La source originale du Moran's I local est Anselin (1995), "Local Indicators of Spatial Association — LISA" (semble être en libre accès).