エリアの内挿を使用してデータ内のギャップを補間

ポーランドの高齢者の割合の内挿

データセット内の大半のフィーチャの値がわかっている場合は、それらをもとにエリア全体にわたる連続値を予測できます。 この方法で、ポーランドの高齢者の空間分布をマッピングします。

  1. FillGaps プロジェクト パッケージをダウンロードします。
  2. コンピューター上で、ダウンロードしたファイルを選択します。 [FillGaps.ppkx] をダブルクリックして開きます。
    注意:

    ArcGIS Pro へのアクセス権限または組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください

    プロジェクトが ArcGIS Pro で開きます。

    高齢者の割合別に郡を色分けしたポーランドのマップ。 10 個のポリゴンが空白になっている

    このマップは、ポーランドの「ポヴィヤト」という行政区画 (郡によく似た区画) を表しています。 ポリゴンでは、65 歳以上の人口の割合を色分けして表しています。 しかし、残念ながらデータは不完全です。 高齢者の割合の値が含まれていない郡が 10 個あります。

    この空間データは、ArcGIS Living Atlas of the World にあります。 高齢者の割合の値は、Statistics Poland が提供しているものです。 (ここに表示されていない値は、このチュートリアルのために意図的に削除したものです。)

    大都市と地方ではパターンが大きく異なるため、多くの場合は、地球統計学を使用して人口統計データをモデル化することは困難です。 ここでは、データの空間的変動は比較的スムーズで、急激な変化はありません。 そのため、このデータは地球統計的手法に適していると考えられます。

  3. リボンの [解析] タブの [ワークフロー] グループで、[Geostatistical Wizard] をクリックします。

    リボンの表示設定タブの Geostatistical Wizard

    [Geostatistical Wizard] ウィンドウが開きます。

  4. [Geostatistical Wizard] ウィンドウの [Geostatistical methods][Areal Interpolation] を選択します。

    ほとんどの内挿方法では、入力としてポイント データが必要ですが、エリアの内挿の場合はポリゴンを使用します。 このチュートリアルでは、ほぼ完全でパズル ピースのように収まるポリゴンを使用します。 また、ポリゴンや、広範囲に広がるか、重なり合うポリゴンを使用することもできます。 たとえば、鳥の観測値を表すデータが、各観測者が網羅した場所のポリゴンに格納されていることがあります。

    注意:

    この地球統計学的手法について詳しくは、「エリアの内挿とは」をご参照ください。

    値は、平均、割合、イベントのいずれかを表すものとして宣言できますが、エリアの内挿ではそれぞれによって値の処理が異なります。 ここでは、人口における特定の年齢以上のパーセンテージをマッピングするため、割合を指定します。

  5. [Input Dataset 1][Type][Rate] を選択します。 [Source Dataset] には [Powiaty_Seniors] を選択します。
  6. [Count Field][2017 Senior Population][Population Field] には [2017 Total Population] をそれぞれ選択します。

    Geostatistical Wizard の Type で Rate を選択した Areal Interpolation

  7. [次へ] をクリックします。

    次のウィンドウには、共分散チャートが表示されます。 青の十字は、モデリングされていないデータを表します。 青の線はモデルを表し、エリア全体における高齢者の割合を予測するために使用されます。 モデルのラインが十字に沿い、十字の 90 パーセントが赤色の信頼区間内に収まるまで、モデルのパラメーターを編集します。 今の状態では、そうなっていません。

    共分散グラフ

    ラインが十字に沿っていないばかりか、パスから大きく逸脱している十字が 2 つあります。 理想的なモデルを構築できないこともありますが、可能な限り近づけることはできます。 まず、ラグ サイズを小さくしてみましょう。 そうすることで、青の十字を生成するためにサンプリングするときに、検索するエリアを絞り込むことができます。

  8. [General Properties][Lag Size] に「12000」と入力します。

    モデルに変化があります。 しかし、十字は信頼区間からさらに離れてしまいました。

    共分散グラフ

    次に、形状を変更してモデルに改良を加えます。

  9. [Model][Stable] を選択します。
    注意:

    多くの場合は、Stable モデルと K-Bessel モデルで最適な結果を得ることができますが、処理に時間がかかります。

    Model を Stable に設定した共分散グラフ

    特に、自然現象ではなく人口統計データを扱っている場合には、最適なモデルを構築することは困難であり、場合によっては不可能なこともあります。 このシナリオでは、信頼区間内に収まっている十字は 1 つしかありませんが、モデルのラインは十字の比較的近くを通っています。 このモデルは完璧ではありませんが、妥協案としては申し分ありません。

  10. [次へ] をクリックします。

    次のウィンドウには、プレビュー マップが示されます。

    隣接するポリゴンがハイライト表示された Geostatistical Wizard の Searching Neighborhood ページ

  11. プレビュー マップのさまざまな場所をクリックしてみましょう。

    マップでクリックした場所の予測値を判断するために使用される隣接ポリゴンが、マップ上でハイライト表示されます。 赤のポリゴンは、緑のポリゴンよりも解析における重みが大きくなります。

  12. [次へ] をクリックします。

    [Cross validation] ページが開きます。 交差検証は、予測サーフェスの精度を評価します。 データセットから 1 つのポリゴンを削除し、残りのデータを使用して、削除したポリゴン内の値を予測します。

    Predicted 散布図と Summary 値を示す交差検証の結果

    このモデルの [Predicted] 散布図は、良好とは言えません。 赤の値が、青とグレーのラインの傾向に沿っているのが理想的です。 チャートは、ポイントのランダムな集まりのように見えます。 一方で、[Summary] タブに記された値は良好です。 これらの数値は、1 に近い必要がある [Root-Mean-Square Standardized] 以外は、ゼロに近いのが理想的です。 [Root-Mean-Square] 値は 0.02 です。これは、高齢者の予測割合と実際の値との差は、平均で 2% であることを意味します。 誤差としては妥当です。 これらの値は、散布図よりもモデルの質を表しています。

  13. [完了] をクリックします。 [Method Report] ウィンドウで、[OK] をクリックします。

    内挿されたレイヤーがマップに追加されます。

  14. [コンテンツ] ウィンドウで [Powiaty_Seniors] をオフにし、[Powiaty_Seniors outlines] をオンにします。

    太い黒線で縁取りされたエリアは、データが存在しない郡です。

    郡のアウトラインの下に内挿されたオレンジと青のサーフェス

内挿からのポリゴンの作成

作成した内挿は連続しており、ポリゴンのアウトラインを無視しています。 地球統計学的手法により人口統計データが滑らかになり、徐々に変化するサーフェスになっています。 このような滑らかな内挿は、既知のデータに正確には一致しませんが、未知の値を予測するのには適しています。

次に、連続した内挿サーフェスをポリゴンに変換します。

  1. リボンの [マップ] タブの [ナビゲーション] グループで [ブックマーク] をクリックして [Kluczborski] を選択します。

    リボンのマップ タブでブックマーク ギャラリーを開く

    マップにクルチボルク郡が表示されます。

    クルチボルク郡には、地球統計レイヤーの 4 つの色が付けられています。

    [Areal Interpolation] レイヤーは地球統計レイヤーです。つまり、マップの場所によって値が少しずつ異なることを意味します。 このように、補間が必要なポリゴンには幅広い予測値があります。 次に、この予測サーフェスを、郡ごとに単一の予測値を持つポリゴン レイヤーに変換します。

  2. リボンの [解析] タブの [ジオプロセシング] グループで、[ツール] をクリックします。

    ジオプロセシング ツールの選択

    [ジオプロセシング] ウィンドウが表示されます。

  3. [ジオプロセシング] ウィンドウの検索バーに「Areal Interpolation Layer」と入力し、結果のリストから [Areal Interpolation Layer To Polygons] ツールを選択します。
  4. [Areal Interpolation Layer To Polygons] ツールのウィンドウで、次のように入力します。
    • [Input areal interpolation geostatistical layer][Areal Interpolation] を選択します。
    • [Input polygon features][Powiaty_Seniors] を選択します。
    • [Output polygon feature class] で出力名を [Interpolated_Polygons] に変更します。 アンダースコアを必ず挿入してください。

    パラメーターが入力された Areal Interpolation Layer To Polygons ツール

  5. [実行] をクリックします。

    ポリゴン レイヤーがマップに追加されます。

  6. リボンの [マップ] タブの [ナビゲーション] グループで、[全体表示] ボタンをクリックしてマップのデフォルト ビューに戻ります。

    リボンのマップ タブの全体表示ボタン

  7. [コンテンツ] ウィンドウで [Interpolated_Polygons] レイヤーを [Powiaty_Seniors outlines] レイヤーの下までドラッグします。

    Interpolated_Polygons レイヤーが Powiaty_Seniors outlines レイヤーの下までドラッグされた状態

  8. [エリア内挿] をオフにします。

    これで、すべてのポリゴンに高齢者の割合が表示されるようになりました。

    コンテンツ ウィンドウと、Powiaty_Seniors outlines レイヤーと Interpolated_Polygons レイヤーのみが表示されたマップ

    これらのポリゴンのほとんどに実際の値が存在しますが、予測値を使用するのは、これらのうちの 10 個のポリゴンだけです。 欠損値がある 10 個のポリゴンを選択し、[フィールド演算 (Calculate Field)] ツールを使用して、これらのポリゴンにのみ値を追加します。

  9. [Interpolated_Polygons] を右クリックし、[属性テーブル] を選択します。

    属性テーブルが表示されます。 ここには、[Powiaty_Seniors] レイヤーのすべてのデータに加え、[Included][Predicted][Standard Error] の 3 つの新しいフィールドが含まれています。

    属性テーブルの Included、Predicted、Standard Error 列

  10. [Percent Seniors] 列のヘッダーをダブルクリックして並べ替えます。

    属性テーブルの Percent Seniors 列のヘッダー

    これで、空のレコードがテーブルの上に移動します。 次に、これらの <Null> 値を [Predicted] フィールドのデータに置換します。

  11. 高齢者のデータが記されていないすべての行を選択します。
    注意:

    最初のレコードの行番号をクリックし、複数行を選択して、Shift キーを押すか、選択する行番号全体にカーソルをドラッグします。 また、[属性検索 (Select by Attribute)] ツールを使用することもできます。

    Percent Seniors が NULL の行が属性テーブルで選択された状態

  12. 属性テーブルの上部にある [計算] ボタンをクリックします。

    属性テーブル上部の計算ボタン。 10 個の行が選択

    [フィールド演算 (Calculate Field)] ツールがポップアップ ウィンドウで開きます。 フィールド演算は、選択された行にのみ適用されます。

  13. [フィールド名] には [Percent Seniors] を選択します。

    ジオプロセシング ウィンドウのフィールド演算で、フィールド名が「Percent Seniors」に設定されている

  14. [フィールド] リストを下にスクロールし、[Predicted] をダブルクリックします。

    [PercentSeniors =] ボックスに !Predicted! が設定されます。これにより、[Predicted] フィールドから値が取得され、[Percent Seniors] フィールドに貼り付けられます。 しかし、これら 2 つのフィールドの既存の値は、割合ではなく小数として書式設定されています。 これを変換するには、値に 100 を掛けます。

  15. !Predicted! の後に「* 100」と入力します。

    [PercentSeniors =] ボックスを [!Predicted!] に設定 * 100

  16. [適用] をクリックします。
  17. 属性テーブルで [選択レコードを表示] ボタンをクリックします。

    選択レコードを表示ボタン

    [Percent Seniors] 列の [<Null>] 値が置換されました。 選択されていない行は変更されません。

    選択された 10 行に新しい Percent Seniors 値を示す属性テーブル

  18. 属性テーブルの上部の [解除] をクリックして選択を解除します。

    属性テーブル上部の解除ボタン

  19. 属性テーブルを閉じます。

マップのシンボル表示

最後に、元のレイヤーに合わせて新しいレイヤーをシンボル表示します。 シンボル パラメーターを 1 つずつ設定するのではなく、[Powiaty_Seniors] レイヤーからインポートします。

  1. [コンテンツ] ウィンドウで [Powiaty_Seniors outlines] をオフにし、[Interpolated_Polygons] をクリックして選択します。
  2. リボンの [フィーチャ レイヤー] タブの [描画] グループで、[インポート] をクリックします。

    リボンの表示設定タブのインポート ボタン

    [シンボルのインポート] ウィンドウが開きます。

  3. [シンボルのインポート] ウィンドウの [シンボル レイヤー][Powiaty_Seniors] を選択します。

    シンボル レイヤーが Powiaty_Seniors に設定されたシンボルのインポート ツール

  4. [適用] をクリックしてから [OK] をクリックします。

    [Areal_Interpolation_Polygons] で、初期レイヤーである [Powiaty_Seniors] と同じシンボルが使用され、データの抜けがなくなります。

    高齢者の割合別に郡を色分けし、ギャップがなくなったポーランドのマップ。

  5. [クイック アクセス ツールバー][保存] ボタンをクリックします。

    クイック アクセス ツールバーの保存ボタン

欠損しているデータを代替値で置換する処理を「補定」と呼びます。 多くの場合、値は残りのデータセットの平均値を使用して補定されます。 空間データは、遠く離れた場所にある物よりも近接している物のほうが類似性が高いと推定できるため、多くの場面で利用できます。 このチュートリアルでは、エリアの内挿を使用してポーランド全体で連続するサーフェスを作成し、人口における 65 歳以上の割合をモデリングしました。 次に、そのサーフェスからサンプリングし、データが欠損しているポリゴンの値を予測しました。

なお、一部の値は補定した値であることを読者に伝えることも忘れないでください。 その方法として、ラベル、リスト、シンボルを使用することができます。 マップをレポートに含める場合は、補定の方法を明記することもできます。

[欠損値の補完 (Fill Missing Values)] ツールで同じタスクを実行できます。 データセットによっては、このツールの方が適切な結果を得られます。 それ以外については、地球統計学的手法の方が適しています。 両方の方法を試してみないとわかりませんが、値の空間的な移り変わりが滑らかでない場合は、[欠損値の補完 (Fill Missing Values)] を使用することをお勧めします。

注意:

必要に応じて、さらに踏み込んだ課題に挑戦したい方は、[ジオプロセシング] ウィンドウで [欠損値の補完 (Fill Missing Values)] ツールを検索し、そのツールを使用して [Powiaty_Seniors] レイヤーで欠損値を補定してみましょう。 また、結果を [Powiaty_full_dataset] で実際の値と比較してみましょう。[Powiaty_full_dataset] にアクセスするには、[カタログ] ウィンドウを開き、[マップ] フォルダーを展開して、[完全なデータセット] マップをダブルクリックします。

詳細については、「欠損値の補完 (Fill Missing Values) (時空間パターン マイニング)」および ArcUser 記事「欠落したデータの処理」をご参照ください。

他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。