機械翻訳について

空間コロケーション分析

空間コロケーションは、同じ空間レイヤーと、多くの場合異なる空間レイヤーからの異なるクラスの点フィーチャ間の関係を測定および分析します。

典型的な例は、McDonaldやChipotleなどの異なるレストランが共存しているかどうかを判断することです。 McDonaldのレストランが地下鉄の駅やショッピング・センターとコロケーションされているか、人口密度や収入レベルとどのように関係しているかを特定するには、さらなる分析が必要です。 これらは、サイト選択、サイト最適化、およびコストの最小化において企業を支援します。

コロケーション解析は、ローカル・コロケーション量(LCLQ)統計を使用して、点フィーチャの2つのカテゴリ(AとB)間の近接パターンを測定するツールです。 関心カテゴリ(カテゴリA)の機能ごとに、そのLCLQスコアが計算されます。

  • LCLQスコアが1より大きいカテゴリAのポイントは、近所のカテゴリBのポイントを持つ可能性が高くなります(ランダムではありません)。
  • LCLQスコアが1未満であるカテゴリAのポイントは、近所にカテゴリBのポイントを持つ可能性が(ランダムよりも)低くなります。
  • LCLQスコアが1である点は、近傍内のカテゴリの割合が、研究領域全体のカテゴリの割合を表すことを示します。

LCLQスコアは、フィーチャ・ポイントが共存、隔離、または未定義のいずれであるかを示します。 次の表に、考えられるシナリオを示します。

LCLQタイプ 説明
コロケート - 重要 LCLQスコアが1より大きく、p値が0.05より小さいか、p値がNoneです。
コロケート - 重要でない LCLQスコアが1より大きく、p値が0.05以上です。
独立 - 重要 LCLQスコアは、0.05より小さいp値またはNoneのp値を持つ1以下です。
独立 - 重要でない LCLQスコアは、0.05以上のp値を持つ1以下です。
未定義 フィーチャ・ポイントには、ネイバー・カテゴリのネイバーがありませんでした。

コロケーション関係は対称ではありません。 カテゴリAとカテゴリBを比較するときに計算されるLCLQスコアは、カテゴリBとカテゴリAを比較するときに計算されるLCLQスコアとは異なります。

次の表に、コロケーション分析の実行に必要なパラメータの一部を示します。

パラメータ 説明
feature_data ポイント機能を持つデータ。
spatial_weights_definition 近隣のロケーション間の関係を定義します。 隣人から情報を取得する必要があります。
interest_category 対象カテゴリのフィールドと値を示す2つの値。 interest_categoryおよびneighbor_categoryパラメータが定義されている場合、コロケーション分析は、feature_dataで指定されたデータからこれらの値を使用して実行されます。
neighbor_category 隣接するカテゴリのフィールドと値を示す2つの値。
neighbor_feature_data 定義されている場合、interest_categoryおよびneighbor_categoryパラメータは無視されます。 関心のあるカテゴリはfeature_dataのポイント機能ですが、他のカテゴリはこのパラメータで定義されたポイント機能です。
n_permutations コロケーションの四分位数スコアの重要度レベルの計算に使用される順列の数。 Noneの場合、重要度レベルは計算されず、Noneが返されます。 順列数を増やすと、処理時間も長くなります。
is_time_window_analysis 時間ウィンドウ分析が必要かどうかを示すブール・パラメータ。
interest_time_window 対象カテゴリのフィールドstart-timeおよびend-timeを示します。
neighbor_time_widow 隣接するカテゴリのフィールドstart-timeおよびend-timeを示します。

コロケーション分析の結果は、Pandas DataFrameと次の列で構成されます:

説明
row_index 対象となるカテゴリを含むDataFrame内の監視の索引。
lclq LCLQスコア。
t_stat LCLQスコアに関連付けられたt統計。
p_value LCLQスコアに関連付けられたp値で、LCLQスコアの重要度レベルを示します。
lclq_type コロケーション・タイプ(前の表を参照)。

詳細は、「Oracle Spatial AI Python APIリファレンス」spatial_colocation_analysis関数を参照してください。

次の例では、schools SpatialDataFrameを使用して、データをSpatialDataFrameの2つのインスタンスに分割 - XおよびY。2つの異なるクラスを表し、2つのクラス間のコロケーション分析を実行します。 コロケーション分析では隣接するロケーションを使用してLCLQスコアを計算するため、空間重みを定義する必要があります。

from oraclesai.weights import KernelBasedWeightsDefinition
from oraclesai.preprocessing import spatial_train_test_split
from oraclesai.analysis import spatial_colocation_analysis

# Split the data to create two different classes.
X, Y, _, _, _, _ = spatial_train_test_split(schools, y="", test_size=0.3, random_state=32)

# Define spatial weights
spatial_weights_definition = KernelBasedWeightsDefinition(k=25, fixed=False, function="gaussian")

# Execute colocation analysis between the two classes
colocation_analysis = spatial_colocation_analysis(X, spatial_weights_definition, neighbor_feature_data=Y, n_permutations=20)

# Print the result
print(colocation_analysis[:10])

前述のコードは、LCLQスコアおよび重要度レベルを含む、Xの最初の10個の観測のコロケーション分析の結果を出力します。

   row_index      lclq    t_stat   p_value              lclq_type
0          2  1.054835       NaN       NaN  COLOCATED_SIGNIFICANT
1          3  0.948375  4.358899  0.000338   ISOLATED_SIGNIFICANT
2          4  0.944819  4.358899  0.000338   ISOLATED_SIGNIFICANT
3          6  1.113996  4.358899  0.000338  COLOCATED_SIGNIFICANT
4          7  1.013247       NaN       NaN  COLOCATED_SIGNIFICANT
5          9  0.999595 -4.358899  0.000338   ISOLATED_SIGNIFICANT
6         10  1.078993 -4.358899  0.000338  COLOCATED_SIGNIFICANT
7         11  1.012721       NaN       NaN  COLOCATED_SIGNIFICANT
8         14  0.978001  4.358899  0.000338   ISOLATED_SIGNIFICANT
9         20  0.961042 -4.358899  0.000338   ISOLATED_SIGNIFICANT