pysal.explore.giddy.markov.
LISA_Markov
(y, w, permutations=0, significance_level=0.05, geoda_quads=False)[源代码]¶空间关联局部指标的马尔可夫
参数: |
|
---|
实例
>>> import pysal.lib
>>> import numpy as np
>>> from pysal.explore.giddy.markov import LISA_Markov
>>> f = pysal.lib.io.open(pysal.lib.examples.get_path("usjoin.csv"))
>>> years = list(range(1929, 2010))
>>> pci = np.array([f.by_col[str(y)] for y in years]).transpose()
>>> w = pysal.lib.io.open(pysal.lib.examples.get_path("states48.gal")).read()
>>> lm = LISA_Markov(pci,w)
>>> lm.classes
array([1, 2, 3, 4])
>>> lm.steady_state
array([0.28561505, 0.14190226, 0.40493672, 0.16754598])
>>> lm.transitions
array([[1.087e+03, 4.400e+01, 4.000e+00, 3.400e+01],
[4.100e+01, 4.700e+02, 3.600e+01, 1.000e+00],
[5.000e+00, 3.400e+01, 1.422e+03, 3.900e+01],
[3.000e+01, 1.000e+00, 4.000e+01, 5.520e+02]])
>>> lm.p
array([[0.92985458, 0.03763901, 0.00342173, 0.02908469],
[0.07481752, 0.85766423, 0.06569343, 0.00182482],
[0.00333333, 0.02266667, 0.948 , 0.026 ],
[0.04815409, 0.00160514, 0.06420546, 0.88603531]])
>>> lm.move_types[0,:3]
array([11, 11, 11])
>>> lm.move_types[0,-3:]
array([11, 11, 11])
现在只考虑一个或两个Lisa端点具有重要意义的移动
>>> np.random.seed(10)
>>> lm_random = LISA_Markov(pci, w, permutations=99)
>>> lm_random.significant_moves[0, :3]
array([11, 11, 11])
>>> lm_random.significant_moves[0,-3:]
array([59, 43, 27])
任何小于49的值表示至少有一个Lisa端点是显著的。例如,第一个空间单元在前三个和最后一个树间隔(根据lm.move_类型)期间经历了类型11(ll,ll)的转换,但是,这些转换中的最后三个在每个转换的开始和结束年份都涉及到不明显的Lisa。
测试Y的移动是否独立于WY的移动
>>> "Chi2: %8.3f, p: %5.2f, dof: %d" % lm.chi_2
'Chi2: 1058.208, p: 0.00, dof: 9'
Lisa的实际转换
>>> lm.transitions
array([[1.087e+03, 4.400e+01, 4.000e+00, 3.400e+01],
[4.100e+01, 4.700e+02, 3.600e+01, 1.000e+00],
[5.000e+00, 3.400e+01, 1.422e+03, 3.900e+01],
[3.000e+01, 1.000e+00, 4.000e+01, 5.520e+02]])
空y和wy下Lisa的预期转换正在相互独立地移动。
>>> lm.expected_t
array([[1.12328098e+03, 1.15377356e+01, 3.47522158e-01, 3.38337644e+01],
[3.50272664e+00, 5.28473882e+02, 1.59178880e+01, 1.05503814e-01],
[1.53878082e-01, 2.32163556e+01, 1.46690710e+03, 9.72266513e+00],
[9.60775143e+00, 9.86856346e-02, 6.23537392e+00, 6.07058189e+02]])
如果要根据geoda定义lisa类,则 geoda_quad 选项必须设置为true
>>> lm.q[0:5,0]
array([3, 2, 3, 1, 4])
>>> lm = LISA_Markov(pci,w, geoda_quads=True)
>>> lm.q[0:5,0]
array([2, 3, 2, 1, 4])
属性: |
|
---|
方法
spillover \([象限,邻居在]) |
在Lisa Markov中检测扩散的溢出位置。 |
__init__
(y, w, permutations=0, significance_level=0.05, geoda_quads=False)[源代码]¶初始化自身。请参阅帮助(键入(self))以获得准确的签名。
方法
__init__ \(Y,W[,排列,…]) |
初始化自身。 |
spillover \([象限,邻居在]) |
在Lisa Markov中检测扩散的溢出位置。 |
属性
steady_state |