データの探索
データを探索すると、変数を個別に理解し、それらがどのように相互作用するかを理解するのに役立ちます。
データを探索するには、次のステップを実行します:head
メソッドを使用して、トレーニング・セットの最初の観測を視覚化してデータを理解します。 次の例では、median_income
列を使用します。from oraclesai import enable_geodataframes enable_geodataframes(z) X = block_groups["MEDIAN_INCOME"] z.show(X.head())
出力は次のようになります:
- 空間ウェイトを定義して、隣接するロケーションにおける各変数の動作を把握します(隣接するロケーション間の関係を確立します)。
K-Nearest Neighborアプローチを使用します。これは、観測ごとに最も近いK観測が隣接とみなされることを示します。
from oraclesai.weights import KNNWeightsDefinition # Define spatial weights weights_definition = KNNWeightsDefinition(k=10)
- グローバル空間自動相関を計算します。
MoranのI統計は空間的自己相関の測定です。 データセット全体に適用された場合、グローバル空間自動相関を計算します。
- 正の値と有意の値は、空間クラスタリングが存在することを示します。空間クラスタリングでは、類似した値のリージョンが一緒になり、空間依存性の影響が反映されます。
- 負および有意な値は、空間分散またはチェッカ・ボード・パターンの存在を示し、空間異質性の影響を反映します。
次のコードでは、ジオメトリを除く、トレーニング・セット内のすべての変数の空間ラグを計算します。
from oraclesai.analysis import MoranITest from oraclesai.weights import SpatialWeights # Create spatial weights from definition spatial_weights = SpatialWeights.create(X["geometry"].values, weights_definition) # Run the Moran's I test moran_test = MoranITest.create(X, spatial_weights, column_name="MEDIAN_INCOME") # Print the Moran's I and the p-value print("Moran's I = ", moran_test.i) print("p_value = ", moran_test.p_value)
プログラムの出力は次のようになります:
Moran's I = 0.6086540661785302 p_value = 0.001
正および有意の値は、同じような収入を持つ観測のクラスタで表される空間依存の存在を示します。 ただし、このようなクラスタのロケーションは示されません。
- ローカル空間的自己相関分析を計算します。
クラスタを検索するには、Local Indicators of Spatial Association (LISA)メソッドを使用します。 このアルゴリズムは、観察ごとにローカルMoranのI統計を計算します。
- 正のローカルMoranのI統計を持つロケーションは、ホット・スポットまたはコールド・スポットを表す、類似した値(高い値または低い値)を持つ近傍の存在を示します。
- 負のローカルMoranの値を持つロケーションは、異なる値を持つ隣接ロケーションを示します。低い値で囲まれた高い値、または高い値で囲まれた低い値で空間外れ値を表すことができます。
LocalMoranITest
クラスは、特定の特徴および空間重みに基づいて、各観測のローカル空間自動相関索引を計算します。 次のコードは、データセット内の最初の10個の観測のローカル自動相関インデックスとp値を出力します。from oraclesai.analysis import LocalMoranITest # Run the Local Moran's I test local_moran_test = LocalMoranITest.create(X, spatial_weights, column_name="MEDIAN_INCOME") # Print the Local Moran's I and p-values print("Local Moran's I = ", local_moran_test.i_list[:10]) print("p_values = ", local_moran_test.p_values[:10])
コードの出力は次のようになります:
Local Moran's I = [-0.28929661 -0.24813967 0.53874783 2.50789083 2.59829807 0.96529687 0.62729663 0.79068262 -0.00862826 -0.11777731] p_values = [0.025 0.003 0.001 0.001 0.001 0.019 0.015 0.088 0.336 0.119]