ローカル空間的自己相関分析
ローカル空間的自己相関分析は、各観察とその周辺の関係を測定します。
MoranのI統計は、データセット全体の異なるロケーションでの変数の全体的な動作を理解するのに役立ちますが、特定の観察とその周囲の関係は説明しません。 たとえば、MoranのI統計の正の値はクラスタの存在を示しますが、クラスタがどこにあるかを示したり、特定のロケーションにある変数の類似度を近傍とともに説明したりすることはありません。 ローカル空間的自己相関分析は、特定の観察とその周囲の関係を説明するときに、このギャップを埋めます。
ローカルMoranのI統計は、特定の観測のローカル空間的自己相関分析を表し、次の式によって示されます。
MoranのI統計は、すべてのローカルMoranのIの合計を空間的重みで割ったものです。
正のローカルMoranのI統計は、隣接するロケーションとの類似性を示します。高い値で囲まれた高い値または低い値で囲まれた低い値のいずれかです。
負のローカルMoranのI統計は、隣接するロケーションとの差異を表します。低い値の周りの高い値または高い値で囲まれた低い値のいずれかです。 このメトリックは、データセット内の外れ値を識別するのに役立ちます。
oraclesai.analysis
内のLocalMoranITest.create
関数は、データセット内の各観測のローカルMoranのI統計を計算します。
詳細は、「Oracle Spatial AI Python APIリファレンス」のLocalMoranITestクラスを参照してください。
次のコードでは、LocalMoranITest.create
関数を使用して、block_groups
データセットの各観測値のMEDIAN_INCOME
列のローカル空間自動相関を計算します。 クラスは、空間ウェイトを使用して近隣のロケーションから値を取得し、ローカルMoranのIをコンピュートします。
from oraclesai.analysis import LocalMoranITest
from oraclesai.weights import SpatialWeights, KNNWeightsDefinition
spatial_weights = SpatialWeights.create(block_groups["geometry"].values, KNNWeightsDefinition(k=5))
local_moran_test = LocalMoranITest.create(block_groups, spatial_weights, column_name="MEDIAN_INCOME")
print(f"Local Moran's I: {local_moran_test.i_list[:10]}")
print(f"p-values: {local_moran_test.p_values[:10]}")
前述のコードは、ローカルMoranのIおよびデータセットの最初の10個の観測に対応するp値を出力します。
Local Moran's I: [-0.09208001 -0.16105385 0.34887379 2.13410581 2.53000192 0.96564933
0.77039582 1.04246212 -0.01040734 -0.11960612]
p-values: [0.28 0.069 0.011 0.011 0.001 0.054 0.023 0.102 0.342 0.19 ]