libpysal.weights.
lag_spatial
(w, y)[source]¶Spatial lag operator.
If w is row standardized, returns the average of each observation’s neighbors; if not, returns the weighted sum of each observation’s neighbors.
Parameters: |
|
---|---|
Returns: |
|
Examples
Setup a 9x9 binary spatial weights matrix and vector of data; compute the spatial lag of the vector.
>>> import libpysal
>>> import numpy as np
>>> w = libpysal.weights.lat2W(3, 3)
>>> y = np.arange(9)
>>> yl = libpysal.weights.spatial_lag.lag_spatial(w, y)
>>> yl
array([ 4., 6., 6., 10., 16., 14., 10., 18., 12.])
Row standardize the weights matrix and recompute the spatial lag
>>> w.transform = 'r'
>>> yl = libpysal.weights.spatial_lag.lag_spatial(w, y)
>>> yl
array([2. , 2. , 3. , 3.33333333, 4. ,
4.66666667, 5. , 6. , 6. ])
Explicitly define data vector as 9x1 and recompute the spatial lag
>>> y.shape = (9, 1)
>>> yl = libpysal.weights.spatial_lag.lag_spatial(w, y)
>>> yl
array([[2. ],
[2. ],
[3. ],
[3.33333333],
[4. ],
[4.66666667],
[5. ],
[6. ],
[6. ]])
Take the spatial lag of a 9x2 data matrix
>>> yr = np.arange(8, -1, -1)
>>> yr.shape = (9, 1)
>>> x = np.hstack((y, yr))
>>> yl = libpysal.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. ]])