pysal.lib.weights.lag_categorical

pysal.lib.weights.lag_categorical(w, y, ties='tryself')[源代码]

分类变量的空间滞后运算符。

构造最常见的相邻观测类别,用它们的权重强度加权。

参数:
w : W

Pysal空间权重对象

y : 可迭代的

具有符合w的维数的类别(int或string)的可Iterable集合(参见示例)

ties : STR

描述解析关系时要使用的方法的字符串。默认情况下,选项为“Tryself”,焦点观察的类别包括在其邻居中,以尝试打破平局。如果这不能解决平局,则随机选择赢家。要使用随机选择来打破关系,请传递“随机”来代替。

返回
-
包含最常见相邻观测值的(n x k)列向量

笔记

对于任何数据类型,这适用于沿列轴的唯一元素数小于数组中元素数的任何数组。这意味着例程应该处理np.unique()可以比较的任何数据类型。

实例

建立描述3x3规则格的9x9权重矩阵。将一个分类变量列表延迟到没有关联的位置。

>>> import pysal.lib
>>> import numpy as np
>>> np.random.seed(12345)
>>> w = pysal.lib.weights.lat2W(3, 3)
>>> y = ['a','b','a','b','c','b','c','b','c']
>>> y_l = pysal.lib.weights.spatial_lag.lag_categorical(w, y)
>>> np.array_equal(y_l, np.array(['b', 'a', 'b', 'c', 'b', 'c', 'b', 'c', 'b']))
True

显式地将y重新整形为(9x1)数组并再次计算滞后

>>> yvect = np.array(y).reshape(9,1)
>>> yvect_l = pysal.lib.weights.spatial_lag.lag_categorical(w,yvect)
>>> check = np.array( [ [i] for i in  ['b', 'a', 'b', 'c', 'b', 'c', 'b', 'c', 'b']] )
>>> np.array_equal(yvect_l, check)
True

计算9x2类别矩阵的滞后

>>> y2 = ['a', 'c', 'c', 'd', 'b', 'a', 'd', 'd', 'c']
>>> ym = np.vstack((y,y2)).T
>>> ym_lag = pysal.lib.weights.spatial_lag.lag_categorical(w,ym)
>>> check = np.array([['b', 'd'], ['a', 'c'], ['b', 'c'], ['c', 'd'], ['b', 'd'], ['c', 'c'], ['b', 'd'], ['c', 'd'], ['b', 'c']])
>>> np.array_equal(check, ym_lag)
True