我想在 pysal 中创建一个基于距离的空间权重矩阵,然后将其输入到 pysal 的“spreg”子模块的空间回归方法中。以下是一个小的可重现代码示例:
import numpy as np
import pysal
position=np.random.standard_normal((1000,2))
y_=np.random.standard_normal((1000,1))
X_=np.random.standard_normal((1000,10))
kd = pysal.lib.cg.KDTree(position)
spweights = pysal.lib.weights.Kernel(kd, bandwidth=None, fixed=False, k=4,
function='triangular', eps=1.000000, ids=None,
diagonal=False, distance_metric='euclidean', radius=None)
models_GM_Error_Het=pysal.model.spreg.GM_Error_Het(y=y_,x=X_,w=spweights,max_iter=2,epsilon=1e-8)
python 返回的错误是“异常:对角线上的所有条目都必须等于 0”。另一方面,仅使用仅具有二进制权重的 k-最近邻权重,
import numpy as np
import pysal
position=np.random.standard_normal((1000,2))
y_=np.random.standard_normal((1000,1))
X_=np.random.standard_normal((1000,10))
kd = pysal.lib.cg.KDTree(position)
spweights2 = pysal.lib.weights.KNN(kd, 4)
models_GM_Error_Het=pysal.model.spreg.GM_Error_Het(y=y_,x=X_,w=spweights2,max_iter=2,epsilon=1e-8)
工作正常。如何修改上面的代码?