からっぽのしょこ

はてなブログの仕様変更の影響で、数式の表示が崩壊しています。読んだら書く!書いたら読む!同じ事は二度調べ(たく)ない

2.2:空間重み行列の定義式:境界の共有【空間データサイエンス入門のノート】

はじめに

 『Pythonで学ぶ空間データサイエンス入門』の独学時のまとめノートです。「導出編」「実装編」「可視化編」の三部構成でモデルやアルゴリズムの理解を目指します。
 本の内容から寄り道・回り道しながら進めます。本を読んだ上で補助的に読んでください。

 この記事では、境界の共有による空間重み行列について、数式を使って解説します。

【前の内容】

www.anarchive-beta.com

【他の内容】

www.anarchive-beta.com

【今回の内容】

2.2 空間重み行列の定義式:境界の共有

 空間重み行列(spatial weight matrix)の定義(仮定)を数式で確認します。この記事では、境界を共有している(実際に隣接している・contiguity)かにより隣接関係(adjacency relationship)を設定します。
 空間隣接行列については「2.1:空間隣接行列の定義式【空間データサイエンス入門のノート】 - からっぽのしょこ」を参照してください。

定義式

 まずは、空間重み行列の定義を数式で確認します。

 区域数を  N、区域番号(インデックス)を  n \in \{1, 2, \dots, N\} とします。 n 番目の区域や区域  n と呼びます。場合によっては、 i, j などでも区域を表します。

 区域  i と区域  j の隣接関係を  \tilde{w}_{ij} とします。2値変数  \tilde{w}_{ij} \in \{0, 1\} により隣接関係を表します。
 区域  i に関する  N 個の区域との隣接関係をまとめて、区域  i に関する隣接関係  \tilde{\mathbf{w}}_i とします。

 \displaystyle
\tilde{\mathbf{w}}_i
    = \begin{pmatrix}
          \tilde{w}_{i1} & \tilde{w}_{i2} & \cdots & \tilde{w}_{iN}
      \end{pmatrix}

 区域  n の隣接数(隣接する区域の数・ \tilde{\mathbf{w}}_i の総和)を  \sum_{j=1}^N \tilde{w}_{nj} = N_n で表します。
  N 個の区域に関する隣接関係をまとめて、空間隣接行列を  \tilde{\mathbf{W}} とします。

 \displaystyle
\tilde{\mathbf{W}}
    = \begin{pmatrix}
          \tilde{\mathbf{w}}_1 \\
          \tilde{\mathbf{w}}_2 \\
          \vdots \\
          \tilde{\mathbf{w}}_N
      \end{pmatrix}
    = \begin{pmatrix}
          \tilde{w}_{11} & \tilde{w}_{12} & \cdots & \tilde{w}_{1N} \\
          \tilde{w}_{21} & \tilde{w}_{22} & \cdots & \tilde{w}_{2N} \\
          \vdots & \vdots & \ddots & \vdots \\
          \tilde{w}_{N1} & \tilde{w}_{N2} & \cdots & \tilde{w}_{NN}
      \end{pmatrix}

 区域  i に関する隣接関係  \tilde{\mathbf{w}}_i \tilde{\mathbf{W}} i 行目に対応します。

 区域  i に関して、他の区域  j に対する重みを  w_{ij} とします。
 区域  i に関する  N 個の区域に対する重みをまとめて、区域  i に関する重み  \mathbf{w}_i とします。

 \displaystyle
\mathbf{w}_i
    = \begin{pmatrix}
          w_{i1} & w_{i2} & \cdots & w_{iN}
      \end{pmatrix}

  \mathbf{w}_i の各要素は、0から1の値であり、総和が1になる条件を満たす必要があります。

 \displaystyle
0 \leq w_{ij} \leq 1
,\ 
\sum_{j=1}^N
    w_{ij}
    = 1

 対象の区域  i に関して、2つの区域  i, j に隣接関係がない場合は  w_{ij} = 0、隣接関係がある場合は  w_{ij} = \frac{1}{N_i} になり、区域  i に関する重みは2値をとります。

 \displaystyle
w_{ij} \in \left\{
    0, \frac{1}{N_i}
\right\}

 重みの値については「計算式」で確認します。
  N 個の区域に関する重みをまとめて、空間重み行列を  \mathbf{W} とします。

 \displaystyle
\mathbf{W}
    = \begin{pmatrix}
          \mathbf{w}_1 \\
          \mathbf{w}_2 \\
          \vdots \\
          \mathbf{w}_N
      \end{pmatrix}
    = \begin{pmatrix}
          w_{11} & w_{12} & \cdots & w_{1N} \\
          w_{21} & w_{22} & \cdots & w_{2N} \\
          \vdots & \vdots & \ddots & \vdots \\
          w_{N1} & w_{N2} & \cdots & w_{NN}
      \end{pmatrix}

 区域  i に関する重み  \mathbf{w}_i \mathbf{W} i 行目に対応します。
 2つの区域  i, j に隣接関係がない場合、重みは  \tilde{w}_{ij} = w_{ij} = 0 です。

スポンサードリンク

計算式

 次は、空間重み行列に関する計算を数式で確認します。

 各区域  i に関する重み  \mathbf{w}_i の各要素  w_{ij} は、 w_{ij} に対応する隣接関係  \tilde{w}_{ij} を対象の区域  i に関する隣接関係  \tilde{\mathbf{w}}_i の総和で割った値で定義されます。

 \displaystyle
w_{ij}
    = \frac{\tilde{w}_{ij}}{\sum_{ij'=1}^N \tilde{w}_{ij'}}
    = \frac{\tilde{w}_{ij}}{N_i}

  \tilde{\mathbf{W}} の各要素  \tilde{w}_{ij} \tilde{\mathbf{W}} の行和  \sum_{ij=1}^N \tilde{w}_{ij} で割ることで、 \mathbf{W} の各要素  w_{ij} は、0から1の値  0 \leq w_{ij} \leq 1 で行和が1になる値  \sum_{ij=1}^N w_{ij} = 1 に正規化(規準化)されます。
  \mathbf{W} の列和  \sum_{i=1}^N w_{ij} は、基本的に1になりません(たまたま1になることはあります)。
  \tilde{w}_{ij} は0か1の値をとり、 \sum_{ij=1}^N \tilde{w}_{ij} は区域  i の隣接数  N_i なので、 w_{ij} は0か隣接数の逆数  \frac{1}{N_i} の値になります。

 以上で、空間重み行列の定義や性質を数式で表現しました。

 この記事では、境界の共有による空間重み行列を数式で確認しました。次の記事では、プログラムと図で確認します。

参考文献

おわりに

  • 2026.07.07:加筆修正の際に「空間重み行列の可視化」から記事を分割しました。

 1つの記事としては内容が薄くなってしまいますが、粒度感の調整のために分割しました。

 投稿日に公開された私立恵比寿中学の新MVをどうぞ♪

 ここにきて、元祖エビ中って雰囲気の楽曲を出してきたな!

【次の内容】

 境界の共有による空間重み行列をプログラムと図で確認します。

https://www.anarchive-beta.com/entry/2026/07/10/210000www.anarchive-beta.com

 カーネル法による空間重み行列を数式で確認します。

https://www.anarchive-beta.com/entry/2026/07/13/180000www.anarchive-beta.com