# 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
wW

libpysal spatial weightsobject

yarray

numpy array with dimensionality conforming to w (see examples)

Returns
wyarray

array of numeric values for the spatial lag

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.        ]])