はじめに
『Pythonによるはじめての地理空間データサイエンス』の独学時のまとめノートです。「定義編・導出編」「実装編・作図編」「可視化編」の三部構成でモデルやアルゴリズムの理解を目指します。
本の内容から寄り道・回り道しながら進めます。本を読んだ上で補助的に読んでください。
この記事では、カーネル法による空間重み行列について、数式を使って解説します。
【前の内容】
【他の内容】
【今回の内容】
6.2.4 空間重み行列の定義式:カーネル法
空間重み行列(spatial weight matrix)の定義(仮定)を数式で確認します。この記事では、カーネル法(kernel method)により近傍関係(neighborhood relationship)を設定します。
カーネル関数については「カーネル関数の可視化」を参照してください。
モデルの設定
空間重み行列の定義(仮定)を数式で確認します。
定義式
空間重み行列やその要素などの表記を確認します。
区域数を 、区域番号(インデックス)を
とします。
番目の区域や区域
と呼びます。場合によっては、
などでも区域を表します。
2つの区域 の距離を
、重みを
とします。
バンド幅(閾値)を として、カーネル関数(
をパラメータとする
の関数)
を用いて、2区域の距離に基づいて重みを割り当てます。
各組み合わせの重み は、0から1の値である条件を満たす必要があります。
重みの条件を満たすように各種のカーネル関数を定義します。総和が1になる条件は満たしません(正規化は行いません)。
対象の区域 自体の重み(空間重み行列の対角要素)
は、最大値です。空間隣接行列を用いる場合のように、0にはなりません(隣接関係ありとして扱います)。
対象の区域 と各区域
の距離
がバンド幅
よりも大きい(遠い)
場合、重みは
です。
よって、対象の区域に近い区域ほど重みが大きく、遠い区域ほど重みが小さくなり(0に近付き)ます。
区域 に関する
個の区域に対する重みをまとめて、区域
に関する重み
とします。
個の区域に関する隣接関係をまとめて空間重み行列を
とします。
区域 に関する重み
は
の
行目に対応します。
以上で、空間重み行列の定義や性質を数式で表現しました。
この記事では、空間重み行列を数式で確認しました。次の記事では、プログラムと図で確認します。
参考文献
おわりに
『空間データサイエンス入門』の加筆修正の際に「空間重み行列の定義式」の記事に、カーネル法による重み付けについて補足する内容を1段落程度で追加しました。しかし予約投稿の段階で、対角要素が0にならず行和が1にならないなど、大きく異なる内容を一言付け足すだけではむしろ混乱を招くと判断して、1節程度に内容に膨らませて再構成しました。再度予約投稿の段階で、大きく異なる2つの内容を1つの記事に書くと読みにくいと判断して、別記事として分割しました。
1つの記事としては内容が薄くなってしまいましたが、粒度感の試行錯誤の結果でした。
2026年7月13日は、モーニング娘。の元リーダーの道重さゆみさんの37歳のお誕生日です。
引退なさってからまだ1年も経っていなかったんですね。なんだかもう遠いことのように感じてしまいます。
おめでとうございます🐰どこかで心穏やかに楽しく日々を過ごしていることを祈っております。
【次の内容】
カーネル法による空間重み行列をプログラムと図で確認します。
