libpysal.weights.lag_spatial¶
- 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:
- wy
array
array of numeric values for the spatial lag
- wy
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.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.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.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.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. ]])