「時空のホットスポット:洞察力の新たな次元を開放する方法」

「時空のホットスポット:洞察力の新たな次元を開放するスタイルの秘訣」

あなたはデータの80%には空間的な要素があり、ほぼ100%には時間的な次元があるという統計を聞いたことがあるかもしれません。しかし、それらの相互作用を効果的に分析するにはどうすればいいのでしょうか?

空間時間のクラスタリングはそのようなアプローチの一つです。

この手法は、空間的および時間的なパターンの両方を分析し、企業が隠れたトレンドを発見し、より詳細なレベルでの意思決定を行うための情報を提供します。空間と時間の両方においてです。

しかし、それはどのように機能し、組織でそれを使用してより良い意思決定をすることができるのでしょうか?このアプローチを利用して強力なビジネスインサイトを素早く生成するためのステップバイステップガイドを読み続けてください!

空間時間クラスタリングとは何ですか?

食品配達会社のアナリストであると想像してください。あなたの仕事は?配達を最適化することです。それをするためには、どの場所に多くの配達があるかを知る必要があります-つまり、クラスタまたはホットスポット-だからこそ、配達ドライバーを配置することができます。簡単ですよね?

しかし待てよ。3つの主要な場所にはクラスタがあります。中心ビジネス地区、ナイトライフのホットスポット、住宅地域です。これらの場所は、一日の中で異なる時間帯において需要レベルが異なる可能性があります。これらの場所全てに対してより多くの配達ドライバーを派遣するだけでは、多くの無駄な時間(したがってお金)が発生します。

これは空間時間クラスタリングの完璧なユースケースです。この手法は、ホットスポットがどこにあり、いつあるのかを教えてくれます。この情報は、利益率が低い場合に重要な意思決定に洞察力を加えることができます。

空間時間クラスタリングはどのように機能しますか?

まず、クラスタまたはホットスポットについて話しましょう。

ホットスポット分析は、空間テーブル内の各フィーチャーのユーザー定義の近隣を取り、その近隣内の値が全体のテーブル全体よりも有意に高いか低いかを計算して、空間パターンの強度を特定および測定します。最も一般的な2つのホットスポットアルゴリズムは、統計ツールであるGetis-Ord* vs Moran’s Iです。これについては、こちらの完全なガイドで詳細をご確認いただけます。

2つのマップの横並びの比較。左のマップはサンフランシスコ周辺の生のフットフォールデータを示し、右のマップはこのデータのホットスポットを示しています。

生のフットフォールカウントデータ(左) vs Getis-Ord* ホットスポット(右)。

空間時間クラスタリングはほぼ同じ方法で機能しますが、時間的な要素も考慮して値が統計的に有意かどうかを評価します。

当社のAnalytics Toolbox for Google BigQuery には、それを行うための関数が含まれています。それにより、空間時間のGetis-Ord Gi*(GI*)統計量を計算します。正のGI*値は、近隣の値がテーブル全体よりも有意に高いことを示し、つまりホットスポットであることを示します。負のGI*値は逆を示します。これについての詳細は、ドキュメントで確認できます。

これはあなたが必要としているものですか?ステップバイステップのチュートリアルを読み続けてください!

空間時間クラスタリング:ステップバイステップガイド

このガイドに従うためには、2つのものが必要です。まず、CARTOアカウントが必要です。もしお持ちでない場合は、こちらで無料の14日間試用版にサインアップできます。

さらに、調査したいデータセットが必要です!空間と時間の両方の次元を持つデータセットであればどれでも機能します。この例では、2012年から現在までにニューヨーク市で発生した180万件の車両衝突の空間的な時間的なトレンドを見ていきます(以下のマップで可視化されています)。特定の地域が特定の時間帯により多くの車両衝突を経験しているかどうかを調査します。この例は、交通計画や都市設計などのユースケースに役立ちます。

この例に従いたい場合は、こちらでデータにアクセスできます。

ステップ1:データの前処理

まず、データがまだクラウド上にない場合は、Google BigQueryプロジェクトにロードする必要があります。このガイドに従って行うことができます。独自のプロジェクトにアクセスできない場合は、すべてのユーザーに提供されているCARTOデータウェアハウスを使用できます。

次に、この分析を実行するためにデータが正しく構造化されていることを確認する必要があります。以下の空間SQLを使用してこれを行います。結果として以下の変数が得られます:

  • 空間インデックス変数:使用するクラスタリング技術にはデータが連続した空間グリッドである必要があります。これを実現するために、ステップ1ではデータの経度と緯度からポイントジオメトリ(ST_Geogpoint)を作成し、ステップ2でこれをH3インデックス(H3_FromGeogPoint)に変換します。空間インデックスに関しては、こちらの無料のebookで詳しく学ぶことができます!
  • タイムスタンプ:衝突時間は元々文字列として”crash_time”という変数に保存されているため、ステップ1でこの文字列から時間の値にアクセスするために文字列関数の組み合わせを使用します。次に、ステップ2でこれを日時の変数型(DATETIME)に変換します。データセット全体での全体的な時間ごとの値が必要なため、”ダミー”の日付と分値を割り当てます。
  • 衝突件数:ステップ2でCOUNT()関数を使用して計算します。これはホットスポットを計算したい任意の数値変数に置き換えることができます。
WITH --ステップ1:ポイントジオメトリを作成し、データ衝突から時間フィールドを抽出する
     collisions AS (
     SELECT   
          ST_GEOGPOINT(longitude, latitude) AS geom,   
          CASE     
               WHEN LENGTH(crash_time) = 5 THEN CAST(LEFT(crash_time,2) AS INT64)     
               ELSE CAST(LEFT(crash_time,1) AS INT64) 
          END AS hour 
     FROM   
          `yourproject.yourdataset.newyork_collisions`
     ) 
     
     --ステップ2:H3空間インデックスに変換し、時間ごと/セルごとの衝突を数え、タイムスタンプを作成
     SELECT 
          `carto-un`.carto.H3_FROMGEOGPOINT(geom, 9) AS h3, 
          COUNT(hour) AS collision_count, 
          DATETIME(2023, 1, 1, hour, 0, 0) AS time
     FROM 
          collisions
     GROUP BY 
          hour, h3

以下のマップでこの結果をご覧いただくか、こちらでフルスクリーンで開いてください。

ステップ2:空間時間クラスタの実行

この次のステップでは、Analytics Toolboxの統計モジュールを使って、H3Quadbinの両方に対して、Getis Ord SpaceTime関数を実行します。

SELECT * FROM `carto-un`.carto.GETIS_ORD_SPACETIME_H3((   SELECT ARRAY_AGG(STRUCT(h3, time, collision_count)) AS input_data   FROM yourproject.yourdataset.input_data), 3, 'HOUR', 1, 'triangular', 'triangular');   

ステップ1で準備したデータに基づいて入力クエリを適応し、ホットスポットのパラメータを選択してください:

  1. 近隣のサイズは、Gi*値を計算する際に考慮される要素です(ここでは3を使用しています)。この値はKリングで測定されます。 Kリング値が1の場合、そのセルに直接接する6つのセル(またはQuadbinインデックスの場合は8つのセル)が含まれます。値が2の場合、その直接セルに接するセルが含まれます。それ以降も同様です。
  2. 時間単位は使用する時間単位です。年、四半期、月、週、日、時間、分、秒のいずれかを選択できます。
  3. 時間間隔は、指定された時間単位で計算されるGi*値に影響を与えるために、時間ドメインで隣接する間隔の数です。ここでは1時間を使用しています。
  4. カーネル関数は、kリング全体に与えられる空間的な重みを示します。入力セルに近づくほど、その重みが解析結果に与える影響が大きくなります。ここでは三角形を使用しています。その他のオプションには、一様、三角形、二次、四次、ガウスなどがあります。
  5. 時間カーネルも同様ですが、時間的な重みに適用されます。

詳細については、この関数の完全なドキュメントをご覧ください。

ステップ3:結果の解釈

ステップ2の出力は、インデックス(H3/Quadbin)ID、日時、p値、GI*値を含むクエリとなります。このステージでは、このクエリをテーブルにコミットすることをおすすめします。

p値は、分析の帰無仮説を棄却することができるかどうかを示す有意性値です。したがって、帰無仮説が「衝突の空間的および時間的なクラスタリングは存在しない」とした場合、一定の閾値を下回るセルが存在する場合に、これを棄却することができます。通常、その閾値は0.01または0.05で、それぞれ信頼度99%または95%に関連付けられています。

GI*値は、クラスタリングの強度を示します。正の値は、幅広いデータセットに対して正の値のクラスタリングが強いことを示し、負の値はその逆を示します。

したがって、高い値の統計的に有意なクラスターをマッピングする場合、次のクエリを実行したいと思うでしょう:

SELECT * FROM yourproject.yourdataset.youroutputtableWHERE p_value <= 0.05 AND GI > 0   

結果は以下のとおりです!

こちらでフルスクリーンで開くことができます。

我々はこの可視化をさらに使いやすく、インタラクティブにするためにSQLパラメータを組み込んでいます。これにより、SQL内にプレースホルダ(下記参照:{{time_from}}と{{time_to}})を追加し、エンドユーザーが制御された方法でデータと対話できるようにすることができます。ここでは、特定の時間帯(ラッシュアワーや深夜など)にわたる平均GI*値を表示できます。

SELECT INDEX AS h3, *, EXTRACT(hour FROM   date) AS hourFROM yourproject.yourdataset.youroutputtableWHERE p_value <= 0.1 AND gi >= 0 AND (EXTRACT(hour   FROM     date) >= {{time_from}}   AND EXTRACT(hour   FROM     date) <= {{time_to}})   

データ駆動型意思決定のための空間時間クラスタリング

時空クラスタリングは、データから具体的な洞察を見つけ出すことを目指すビジネスにとってのゲームチェンジャーです。空間的および時間的な次元を調べることで、トレンドを見つけ出し、運用を最適化し、成長を促すより良い判断を行うことができます。

CARTOで14日間の無料トライアルに今すぐサインアップして、ロケーションインテリジェンスの旅を始めましょう!

元の記事はこちらに掲載されています。許可を得て再投稿されました。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more