Мой друг и я пытаемся вычислить Local Moran's I, используя PySAL для следующего примера, взятого из лекций профессора Косберга (доступен по этой ссылке, стр. 5: https://www.uni-kassel.de/fb07/fileadmin/datas/fb07/5-Institute/IVWL/Kosfeld/lehre/spatial/Spatial_Econometrics_with_R.pdf)
При вычислении местного индекса Морана вручную по формуле, приведенной на прилагаемом рисунке ...
Формула Местный индекс Морана I
... мы получить следующие значения, используя стандартизацию строк: Область 1: 0,625, Область 2: 0,139 Область 3: 0,139 Область 4: 0,139 Область 5: 1,25 и эти значения при вычислении без стандартизации строк: Область 1: 1,25, Область 2 : 0,417 Область 3: 0,417 Область 4: 0,417 Область 5: 1,25
(значения, которые мы вычислили вручную, являются теми же результатами, что и проф. Косберг в своих заметках, между прочим.)
При попытке вычислить это с помощью Pysal-Esda-Moran_Local значения, которые мы получаем, разные (со стандартизацией строк) => Область 1: 0,5, Область 2: 0,111 Область 3: 0,111 Область 4: 0,111 Область 5: 1
Используемый нами код прилагается (обратите внимание: значения глобального индекса, полученные из PySAL, полностью совпадают с теми, которые мы вычислили вручную)
Почему мы получаем такие совершенно разные значения, когда делаем это вручную и вычисляем с помощью PySAL ?? Может ли кто-нибудь подсказать и помочь, пожалуйста? Большое спасибо.
С уважением!
КОД:
import pysal
from pysal.lib import weights
from pysal.explore import esda
from esda.moran import Moran, Moran_Local
neighbors = {0:[1,2],1:[0,2,3], 2:[0,1,3],3:[1,2,4],4:[3]}
weigths = {0:[1,1],1:[1,1,1], 2:[1,1,1],3:[1,1,1],4:[1]}
#weigths = {0:[0.5,0.5],1:[0.333,0.333,0.333], 2:[0.333,0.333,0.333],3:[0.333,0.333,0.333],4:[1]}
y = ([[8,6,6,3,2]])
#Spatial Weights calculation
w = pysal.lib.weights.W(neighbors,weigths)
#w = pysal.lib.weights.W(neighbors)
#Morans'I calculation
moran = Moran(y, w, transformation='r')
#Observed Value
print("Observed Global Moran I")
print (moran.I)
print("\n")
#Expected Morans'I
print("Expected Global Moran I")
print (moran.EI)
print("\n")
print("p-value Normal Global Moran I")
print (moran.p_norm)
print("\n")
# Var-value under normal assumption
print("Variance Normal Global Moran I")
print (moran.VI_norm)
print("\n")
# z-value under normal assumption
print("Z Score Normal Global Moran I")
print(moran.z_norm)
print("\n")
lisa = Moran_Local(y,w,transformation='r')
#Observed Value
print("Observed Local Moran I")
print (lisa.Is)
print("\n")
#Expected Morans'I
print("Expected Local Moran I")
print (lisa.EI_sim)
print("\n")
print("p-value Local Moran I")
print (lisa.p_sim)
print("\n")
# Var-value under
print("Variance Local Moran I")
print (lisa.VI_sim)
print("\n")
# z-value
print("Z Score Local Moran I")
print(lisa.z_sim)
print("\n")