pysal.explore.giddy.directional.
Rose
(Y, w, k=8)[源代码]¶基于玫瑰图的定向Lisa推理。
对于在两个时间点具有lisa值的n个单元,rose类提供lisa向量、它们的可视化和基于计算的推理。
参数: |
|
---|---|
属性: |
|
方法
permute \([排列,可选]) |
生成交换空间排列,用于对Lisa向量进行推理。 |
plot \([属性,ax]) |
绘制玫瑰图。 |
plot_origin () |
绘制从同一原点开始的Lisa值位置转换的向量。 |
plot_vectors \([箭头]) |
在极坐标图的散点图象限内,绘制Lisa值位置转换的矢量。 |
__init__
(Y, w, k=8)[源代码]¶空间关联局部指标玫瑰图的计算。
参数: |
|
---|
笔记
基于 [RMA11] .
实例
构建用于说明定向Lisa分析的数据。数据是1969-2009年期间美国48个较低的州的数据,包括按照全国平均水平标准化的人均收入。
在中加载逗号分隔的数据文件并转换为numpy数组
>>> import pysal.lib
>>> from pysal.explore.giddy.directional import Rose
>>> import matplotlib.pyplot as plt
>>> file_path = pysal.lib.examples.get_path("spi_download.csv")
>>> f=open(file_path,'r')
>>> lines=f.readlines()
>>> f.close()
>>> lines=[line.strip().split(",") for line in lines]
>>> names=[line[2] for line in lines[1:-5]]
>>> data=np.array([list(map(int,line[3:])) for line in lines[1:-5]])
文件的底部有区域数据,在这个示例中我们不需要这些数据,因此我们将只对那些与状态名匹配的记录进行子集。
>>> sids=list(range(60))
>>> out=['"United States 3/"',
... '"Alaska 3/"',
... '"District of Columbia"',
... '"Hawaii 3/"',
... '"New England"',
... '"Mideast"',
... '"Great Lakes"',
... '"Plains"',
... '"Southeast"',
... '"Southwest"',
... '"Rocky Mountain"',
... '"Far West 3/"']
>>> snames=[name for name in names if name not in out]
>>> sids=[names.index(name) for name in snames]
>>> states=data[sids,:]
>>> us=data[0]
>>> years=np.arange(1969,2009)
现在我们把国家收入换算成国家平均收入
>>> rel=states/(us*1.)
从外部gal文件创建连续矩阵,并对结果权重进行行标准化
>>> gal=pysal.lib.io.open(pysal.lib.examples.get_path('states48.gal'))
>>> w=gal.read()
>>> w.transform='r'
以我国第一年和最后一年的收入数据为区间进行定向分析
>>> Y=rel[:,[0,-1]]
设置用于玫瑰图基于置换推理的随机种子生成器,以便我们可以复制示例结果
>>> np.random.seed(100)
调用rose函数来构造动态lisa统计的方向直方图。我们将使用四个圆形区域作为柱状图
>>> r4=Rose(Y,w,k=4)
柱状图的截止点是什么?以弧度为单位
>>> r4.cuts
array([0. , 1.57079633, 3.14159265, 4.71238898, 6.28318531])
每个扇区中有多少向量落下
>>> r4.counts
array([32, 5, 9, 2])
我们可以测试这些计数是否不同于如果焦点单元的运动和它的空间滞后之间没有关联的预期。
为此,我们称之为 permute 对象的方法
>>> r4.permute()
然后检查 p 阿蒂布特:
>>> r4.p
array([0.04, 0. , 0.02, 0. ])
重复练习,但现在8个部门而不是4个部门
>>> r8 = Rose(Y, w, k=8)
>>> r8.counts
array([19, 13, 3, 2, 7, 2, 1, 1])
>>> r8.permute()
>>> r8.p
array([0.86, 0.08, 0.16, 0. , 0.02, 0.2 , 0.56, 0. ])
默认为双面选项。有一个选择的方向替代反映积极的共同运动的焦点系列及其空间滞后。在这种情况下,象限i和象限i i i中的矢量数量应比预期大得多,而象限i i和象限iv中的矢量数量应比预期低得多。
>>> r8.permute(alternative='positive')
>>> r8.p
array([0.51, 0.04, 0.28, 0.02, 0.01, 0.14, 0.57, 0.03])
最后,还有一个第二方向的选择来检验焦点单元及其滞后向相反方向移动的假设。
>>> r8.permute(alternative='negative')
>>> r8.p
array([0.69, 0.99, 0.92, 1. , 1. , 0.97, 0.74, 1. ])
我们可以调用Plot方法将定向Lisa可视化为一个以起始相对收入为条件的玫瑰图:
>>> fig1, _ = r8.plot(attribute=Y[:,0])
>>> plt.show(fig1)
(Source code, png, hires.png, pdf)
方法
__init__ \(Y、W、K和) |
空间关联局部指标玫瑰图的计算。 |
permute \([排列,可选]) |
生成交换空间排列,用于对Lisa向量进行推理。 |
plot \([属性,ax]) |
绘制玫瑰图。 |
plot_origin () |
绘制从同一原点开始的Lisa值位置转换的向量。 |
plot_vectors \([箭头]) |
在极坐标图的散点图象限内,绘制Lisa值位置转换的矢量。 |