はじめに
『Pythonによるはじめての地理空間データサイエンス』の独学時のまとめノートです。「導出編」「実装編」「可視化編」の三部構成でモデルやアルゴリズムの理解を目指します。
本の内容から寄り道・回り道しながら進めます。本を読んだ上で補助的に読んでください。
この記事では、空間誤差モデルの仮定について、数式を使って解説します。
【前の内容】
【他の内容】
【今回の内容】
0.1.3 空間誤差モデル(SEM)の定義式
空間誤差モデル(SEM・Spatial Error Model)の定義(仮定)を数式で確認します。
線形回帰モデルについては「線形回帰モデルの定義式」、空間ラグモデルについては「【Python】0.1.2:空間ラグモデル(SLM)の定義式【はじめての地理空間DSのノート】 - からっぽのしょこ」を参照してください。
モデルの設定
SEMの定義(仮定)を数式で確認します。
空間重み行列については「空間重み行列の定義式」、多変量正規分布については「多次元ガウス分布の定義式 - からっぽのしょこ」を参照してください。
変数・パラメータ
SEMの変数やパラメータなどの表記を確認します。
地域数(データ数)を 、地域番号(データ番号・インデックス)を
とします。
番目の地域(データ)や地域
と呼びます。場合によっては、
などでも地域を表します。
説明変数に対応するパラメータ数(次元数)を 、パラメータ番号(次元番号)を
とします。
番目のパラメータや
番目の次元と呼びます。切片
を含めるので、パラメータ数(回帰パラメータの数)は
です。
地域 の説明変数(入力データ)を
次元ベクトル
とします。
全ての地域で、 番目
の要素を
とします。
個の地域の説明変数をまとめて、
の行列
とします。
の各行が各地域の説明変数
に対応します。
地域 の被説明変数(出力データ)を
とします。
個の地域の被説明変数をまとめて、
次元ベクトル
とします。
各説明変数 の
番目の要素
に対応する回帰パラメータ(回帰係数)を
とします。
個の次元の回帰パラメータをまとめて、
次元ベクトル
とします。
番目
の要素
は切片に対応します。
地域 の独立誤差項を
とします。
個の地域の独立誤差項をまとめて、
次元ベクトル
とします。
各独立誤差項 は、平均
・分散
(標準偏差
)の一変量正規分布(1次元ガウス分布)に従って、独立に生成されると仮定します。
このとき、独立誤差項( 個の独立誤差項のベクトル)
は、平均ベクトル
・分散共分散行列
の多変量正規分布(多次元ガウス分布)に従うと言えます。
独立誤差項 の平均ベクトルは、
次元の0ベクトルになります。
全ての地域で、平均は で固定です。
独立誤差項 の分散共分散行列は、対角要素が
の
の対角行列になります。
全ての地域で、分散は で固定です。
各独立誤差項は独立に生成される(無相関)ので、異なる2つの地域 (
番目)の独立誤差項
の共分散は
です。
地域 に関して、各地域
に対する重みを
とします。
地域 に関する
個の地域に対する重みをまとめて、地域
に関する重みを
次元ベクトル
とします。
の各要素は、0から1の値であり、総和が1になる条件を満たす必要があります。
個の地域に関する重みをまとめて、空間重み行列を
の行列
とします。
の各行が各地域の説明変数
に対応します。
空間パラメータ(空間自己回帰係数)を とします。
空間重み行列 の固有値を
、
個の固有値の最小値を
、最大値を
で表すと、
は、
の逆数より大きく
の逆数より小さい値を満たす必要があります。
パラメータの条件については「SEMの尤度関数の導出」を参照してください。
以上の変数やパラメータなどを用いてモデルを定義します。
定義式
続いて、SEMの定義式を確認します。
SLMは、次の式で定義されます。この式は、各地域の被説明変数 の計算式を表します。
地域 の空間誤差項を
とします。
個の地域の被説明変数
を用いると、次の式で定義されます。
の計算式(左右の辺)に
を含んでいることから、SEMは、誤差項に空間自己回帰を組み込んだモデルであることが分かります。
行列の要素を明示して計算すると、次の式になります。
個の地域の空間誤差項をまとめて、
次元ベクトル
とします。
各要素が各地域における定義式(1')に対応します。
以上で、モデルを定義しました。
計算式
さらに、SEMに関する計算式を求めます。
SEMの定義式(0.36)を空間誤差項 について整理します。
途中式の途中式(クリックで展開)
- 1: 式(0.9.b)を再掲しています。
- 2:
以外の項を右辺に移します。
- 3:
を括り出します。
- 4: 両辺に、
の係数の項の逆行列を左から掛けます。
- 5:
の係数の項を式(5)で置き換えます。
定義式(0.9.a)に空間誤差項の式(2.b)を代入します。
定義式(2.a)を独立誤差項 について整理します。
途中式の途中式(クリックで展開)
- 1: 式(2.a)について、
以外の項を右辺に移した式を立てます。
- 2: 両辺に、
の係数の項の逆行列を左から掛けます。
- 3:
の係数の項を式(5)で置き換えます。
- 4:
を括り出します。
行列の要素を明示して計算すると、次の式になります。
各要素が各地域における独立誤差項の式(4')に対応します。
個の独立誤差項
の式(3)から各地域の独立誤差項
について取り出すと、次の式になります。
説明変数・被説明変数 の係数について、次のようにおきました。
行列の要素を明示して計算すると、次の式になります。
空間重み行列 に関して、同じ地域の組み合わせ(地域
自体)は隣接関係がない(重みを0)
とする場合は、
の対角要素が0なので、
の対角要素は
になります。
独立誤差項 の内積(2乗和)を計算します。
途中式の途中式(クリックで展開)
- 1: 式(3)を用いて、
の内積の式を立てます。
- 2: 転置の性質
より、括弧を展開します。
- 3: 転置の性質
より、括弧を展開します。
- 4: 転置の性質
より、括弧を展開します。
- 5: 中2つの項は二次形式(スカラ)なので、転置できます。
2つの項が一致するのでまとめます。
以上で、SEMの定義を確認しました。
この記事では、SEMの仮定を数式で確認しました。次の記事では、尤度関数を数式で確認します。
参考文献
おわりに
SLMと並行してSEMも書いています。SLMで書いたものを一旦コピペして、仮定の違いからくる異なる部分を書き換えるという感じで作業を進めているので、2つのモデルの違いの理解も進みます。
対比するような構成で書いているので、2つの記事を並べて読み比べてみてください。
ところで最近、はてなブログの数式周りの仕様が変わりましてそれに伴いバグも発生していまして、現時点でも過去記事で一部の数式が表示されなくなったり、これまでより追加の作業が増えたり、それが仕様変更(対応した方がいい)なのか今後修正されるバグ(放置した方がいい)なのかも分からずとても面倒な状況になっておりまして……誰かなんとかしてください。
それとは別に、予約投稿記事の自動ツイート機能も廃止になりまして、仕様がないとは思いますが本当に手間が増えて困っています。
これまでも何度か移転も考えましたが当然どこも一長一短ありますし、なにより750超も記事があって移転作業も超面倒でしょうし、まだここにいるつもりなのでなんとかなりませんか。切実にお願いします。
最後に、先日公開された宮本佳林さんのMVをどうぞ♪
【次の内容】
SEMの対数尤度関数を数式で確認します。
