pysal.lib.weights.lag_spatial

pysal.lib.weights.lag_spatial(w, y)[源代码]

空间滞后运算符。

如果w是行标准化的,则返回每个观测的邻居的平均值;如果不是,则返回每个观测的邻居的加权和。

参数:
w : W

pysal.lib空间权重对象

y : 数组

尺寸符合w的numpy数组(参见示例)

返回:
wy : 数组

空间滞后的数值数组

实例

设置9x9二进制空间权重矩阵和数据向量;计算向量的空间滞后。

>>> import pysal.lib
>>> import numpy as np
>>> w = pysal.lib.weights.lat2W(3, 3)
>>> y = np.arange(9)
>>> yl = pysal.lib.weights.spatial_lag.lag_spatial(w, y)
>>> yl
array([ 4.,  6.,  6., 10., 16., 14., 10., 18., 12.])

行标准化权重矩阵并重新计算空间滞后

>>> w.transform = 'r'
>>> yl = pysal.lib.weights.spatial_lag.lag_spatial(w, y)
>>> yl
array([2.        , 2.        , 3.        , 3.33333333, 4.        ,
       4.66666667, 5.        , 6.        , 6.        ])

将数据向量显式定义为9x1并重新计算空间延迟

>>> y.shape = (9, 1)
>>> yl = pysal.lib.weights.spatial_lag.lag_spatial(w, y)
>>> yl
array([[2.        ],
       [2.        ],
       [3.        ],
       [3.33333333],
       [4.        ],
       [4.66666667],
       [5.        ],
       [6.        ],
       [6.        ]])

以9x2数据矩阵的空间滞后为例

>>> yr = np.arange(8, -1, -1)
>>> yr.shape = (9, 1)
>>> x = np.hstack((y, yr))
>>> yl = pysal.lib.weights.spatial_lag.lag_spatial(w, x)
>>> yl
array([[2.        , 6.        ],
       [2.        , 6.        ],
       [3.        , 5.        ],
       [3.33333333, 4.66666667],
       [4.        , 4.        ],
       [4.66666667, 3.33333333],
       [5.        , 3.        ],
       [6.        , 2.        ],
       [6.        , 2.        ]])