時空間クラスタ分析
データには、空間的側面と時系列的側面があり、すべての事象はいずれかの場所で起こり、いずれかの時点で発生します。[ホット スポット分析(Hot Spot Analysiss)]、[クラスタ/外れ値分析(Cluster and Outlier Analysis)]、および[グループ分析(Grouping Analysis)] などのツールを使用すると、データのこれらの側面の有効利用に役立ちます。データの空間的側面と時系列的側面の両方を考慮することにより、次のような質問に答えることができます。
- 時空間犯罪ホット スポットはどこか。犯罪分析者の場合は、時空間[ホット スポット分析(Hot Spot Analysis)] ツールの結果を使用して警察官が可能な限り効果的に割り当てられていることを確保することが考えられます。これらの警察官は適所にかつ適時に配置されていることが望まれます。
- 怪しい支出はないか。詐欺行為を特定するために、[クラスタ/外れ値分析(Cluster and Outlier Analysis)] ツールを使用し、時空間における外れ値を見つけて支出の流れを精査することが考えられます。支出のパターンや頻度の急変は、疑わしい活動を暗示している可能性があります。
- バクテリアの大量発生の特徴は何か。州内の酪農場から採取したサルモネラ試料を調査しているとします。個々の大量発生を特徴付けるために、試料データで[グループ分析(Grouping Analysis)] ツールを実行し、空間と時間の両方でグループ メンバーシップに制限を課します。時間および空間内で近い試料は、多くの場合同じ大量発生に関連付けられます。
[空間統計] ツールボックス のいくつかのツールは、各フィーチャと近傍フィーチャの関連性を評価することにより機能します。空間と時間の両方で近傍リレーションシップを定義すると、従来の空間分析は時空間分析になります。空間パラメータと時系列パラメータの両方を使用して近傍リレーションシップを定義するには、[空間ウェイト マトリックスの生成(Generate_Spatial_Weights_Matrix)] ツールを使用して、[空間リレーションシップのコンセプト] パラメータに SPACE_TIME_WINDOW オプションを選択します。次に、[閾値距離] と時間間隔([日付/時間の間隔タイプ] および [日付/時間の間隔値])の両方を指定します。たとえば、距離に 1 キロメートル、時間間隔に 7 日を入力すると、互いに 1 キロメートル圏内にあり、かつ日付/時刻スタンプが互いに 7 日以内であるフィーチャ群が一緒に分析されます。互いに 1 キロメートル圏内にある近接フィーチャであっても、互いに 7 日の時間間隔内になければ、近傍フィーチャとは見なされません。
時間スナップショットを超えて
データの空間的および時系列的トレンドを理解する 1 つの共通するアプローチは、データを一連の時間スナップショットに分割することです。たとえば、1 週間目、2 週間目、3 週間目、4 週間目、および 5 週間目の個別のデータセットを作成します。次に、各週を個別に分析し、一連のマップまたはアニメーションとして分析の結果を提示します。これはトレンドを表示する有効なやり方ですが、データを分割する方法はいくらか自由な裁量にゆだねられます。たとえば、週ごとにデータを分析している場合、週の区切りをどこにしますか。データを日曜日と月曜日の間で分けますか。それとも、月曜日から木曜日、次に金曜日から日曜日としますか。また、週単位の間隔でデータを分析することに何か特別な意味がありますか。日単位あるいは月単位の分析の方がもっと有効ではありませんか。分割(月曜日のイベントから日曜日のイベントを分けるなど)によって実際は関連付けられる必要があるフィーチャ群が隔離される場合、この意味は重要です。下の例では、6 個のフィーチャが Jan 31 のラベルが付けられたフィーチャの 1 km および 7 日の時空間ウィンドウ内に入っています。ただし、月単位のスナップショットを使用してデータを分析している場合は、1 つのフィーチャのみが近傍として含まれます。
SPACE_TIME_WINDOW を使用してフィーチャ リレーションシップを定義すると、データのスナップショットは作成されません。代わりに、分析ですべてのデータが使用されます。ターゲット フィーチャの場所とタイム スタンプに関連してすべてのフィーチャリレーションシップが評価されるため、空間および時間内で互いに近いフィーチャ群が一緒に分析されます。上の例(A)で、1 km、7 日の時空間ウィンドウは Jan 31 のラベルが付けられたフィーチャについて 6 個の近傍を見つけます。
地域の森林火災を分析しているとします。デフォルトの FIXED_DISTANCE_BAND コンセプトを使用して [ホット スポット分析(Hot Spot Analysis)] ツールを実行したすると、結果として 統計的に有意な森林火災ホット スポットおよびコールド スポットの場所を示すマップが得られます。次に再度分析を実行しますが、今回は SPACE-TIME WINDOW で定義した空間リレーションシップを使用します。これにより、一部のホット スポット エリアに季節性を見いだす可能性があります。森林火災のこの時系列的特徴を理解することは、消防リソースの配備を大きく左右します。
時空間結果の視覚化
一般に、ヒートマップでは、高強度エリア(ホット スポット)が赤で、低強度エリア(コールド スポット)が青で表示されます。たとえば、下のグラフィックスでは、赤のエリアで最大数の 911 緊急通報を受け付けています。青のエリアは、相対的に通話の少ない場所です。下のマップに 911 通報頻度の時系列的ディメンションに関する情報をどのように追加しますか。個別の大量発生、一連の犯罪行為、新しい技術の採用の反響、または暴風雨パターンの季節的な変動などを、マップ上にどのように効果的に表現しますか。
2 次元マップを使用して 3 次元データ(位置 X, Y と時間)を表すことは困難です。下の例では、データを 3 次元で表示するまで、(互いに近いが、時間によって隔離されている)2 つの明瞭なホット スポットがあることを理解できません。時間フィールドに基づいてフィーチャを押し出すと、どのフィーチャ群が関連しており、どのフィーチャ群が時間により隔離されているかが明瞭になります。
時空間分析からの出力を視覚化するには、少なくとも 2 つの方法があります。限られた数のフィーチャ群があるときは、小規模の調査エリアで 3 次元視覚化が効果的です。このアプローチでは、単一のマップに時空間リレーションシップを表示できます。時空間プロセスを表現するもう 1 つの強力な方法はアニメーションを使うことです。下の例では、特に時空間クラスタの視覚化を中心に取り上げています。
アニメーション
時空間クラスタをアニメーション化するには、結果のフィーチャ群について時間を有効にし、ツールバーの タイム スライダを開き、[再生] をクリックします。十分なデータをワンステップで一度に表示できる時間ウィンドウを設定します。アニメーションの作成が初めての場合は、下記のリンクに従ってください。
3D
時空間クラスタ分析の結果を視覚化するもう 1 つの強力な方法は、3D 視覚化を使用することです。この方法では、時間が第 3 の次元になり、ポイント フィーチャが押し出されて時系列的な進行が反映されます。たとえば、上の 3D グラフィックスでは、最古のイベントが地面の最も近くに、より最近のイベントがさらに高い高度に(ユーザの手前に)表示されます。
上のようにデータの 3D 表示を作成するには、ArcGlobe(ArcGIS for Desktop の標準インストールに付属)を使用する必要があります。
まず、ArcGlobe で時空間クラスタ分析を実行します。次に、出力フィーチャクラスに新しいフィールドを作成し、各フィーチャの高さを反映します。この例で、高さはデータセットの最初のイベントが発生してから経過した日数に基づいています。時間の経過を計算するには、下に示すように VB スクリプトおよび日付関数 DateDiff を使用します。
ロックのせいで新しいフィールドを出力フィーチャクラスに追加できない場合は、ArcGlobe ドキュメントを保存してもう一度開くか、出力フィーチャクラスを新しいデータセットにエクスポートし、それをマップ ドキュメントに追加します。次に、出力フィーチャクラスに合わせてシンボル表示します。
次に、日付によりフィーチャ群を並べ替えます。これにより、最早の日付を識別できます。これを使用して新しい時間経過フィールドの値を計算します。作成した新しいフィールドを右クリックし、[フィールド演算] をクリックします。フィールド演算で、下に示すように [日付] タイプの関数をクリックし、右側の DateDiff を選択します。「DateDiff ( "d", "3/1/2011", [DateField] )」と入力し、日付文字列をフィーチャクラスの最早の日付に置き換え、[DateField] パラメータに新しいフィールド名を指定します("d" は差異の間隔が日単位であることを示します)。
上の例は、VB を使用して 日付/時間フィールドを計算しています。同等の Python ステートメントは次のようになります。
(datetime.datetime.strptime(!Date_Con!, "%m/%d/%Y ").date() - datetime.date(2011, 3, 11)).days
次のステップは、ArcGlobe 表示プロパティを変更して、データセットのフィーチャ群を段階的に高く表示することです。これを行うには、出力フィーチャクラスを右クリックして [プロパティ] を選択します。[プロパティ] ダイアログ ボックスの [標高] タブをクリックします。[フィーチャの高度] セクションで、[数または式を使用] を選択し、演算 ボタンをクリックし、DateDiff 関数を使用して作成した新しいフィールドを指定します。ArcGlobe は、時間経過フィールドに基づいてフィーチャ群を持ち上げます。フィーチャ群が十分な高度を示していない場合は、時間経過フィールドに定数を乗算することができます。[標高] タブの [数または式を使用] プロパティ プロパティで、たとえば次のように表示されます。[TimeLapse] *100、下記参照。
次に、ArcGlobe ナビゲーション ツール を使用して、角度や視点を変えながらクラスタ結果を見ます。結果のマップの例を示します。