Пространственная регрессия, «w должен быть объектом pysal.W» - PullRequest
0 голосов
/ 17 апреля 2019

Когда я пытаюсь выполнить анализ пространственной авторегрессии, у меня возникают проблемы с функцией веса.Я пытался создать матрицу "w" с помощью KNN, однако при запуске у меня появляется следующее:

"w должен быть объектом pysal.W"

Это первый раз, когда яработает над SAR.Так что я так растерялся.

u = data['X']
v = data['y']
Coordinates = list(zip(u,v))

kd = pysal.lib.cg.kdtree.KDTree(np.array(Coordinates))
w = pysal.lib.weights.KNN(kd, 2)
ag=ps.spreg.ML_Lag(y, X, wnn2)
print (lag.summary)

Как я могу это исправить?

---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-81-f18e3bd7bfd8> in <module>
----> 1 ag=ps.spreg.ML_Lag(y, X, wnn2)
      2 print (lag.summary)

~\Anaconda3\envs\projenv\lib\site-packages\pysal\spreg\ml_lag.py in __init__(self, y, x, w, method, epsilon, spat_diag, vm, name_y, name_x, name_w, name_ds)
    544         n = USER.check_arrays(y, x)
    545         USER.check_y(y, n)
--> 546         USER.check_weights(w, y, w_required=True)
    547         x_constant = USER.check_constant(x)
    548         method = method.upper()

~\Anaconda3\envs\projenv\lib\site-packages\pysal\spreg\user_output.py in check_weights(w, y, w_required)
    455             raise Exception("A weights matrix w must be provided to run this method.")
    456         if not isinstance(w, weights.W):
--> 457             raise Exception("w must be a pysal.W object")
    458         if w.n != y.shape[0]:
    459             raise Exception("y must be nx1, and w must be an nxn PySAL W object")

Исключение: w должен быть объектом pysal.W

...