はじめに
『Pythonによるはじめての地理空間データサイエンス』の独学時のまとめノートです。「導出編」「実装編」「可視化編」の三部構成でモデルやアルゴリズムの理解を目指します。
本の内容から寄り道・回り道しながら進めます。本を読んだ上で補助的に読んでください。
この記事では、SLMの最尤推定について、数式を使って解説します。
【前の内容】
【他の内容】
【今回の内容】
0.2.1 空間ラグモデル(SLM)の最尤法の導出
空間ラグモデル(SLM・Spatial Lag Model・空間自己回帰モデル・SARモデル・Spatial Autoregressive Model)に対する最尤推定(MLE・Maximum Likelihood Estimation)を導出します。
SLMの定義式については「【Python】0.1.2:空間ラグモデル(SLM)の定義式【はじめての地理空間DSのノート】 - からっぽのしょこ」を参照してください。
モデルの確認
まずは、SLMの定義(仮定)を数式で確認します。
空間重み行列については「空間重み行列の定義式」、多変量正規分布については「多次元ガウス分布の定義式 - からっぽのしょこ」を参照してください。
定義式
SLMの定義式については「SLMの定義式」を参照してください。
SLMは、次の式で定義されます。
ここで、 は地域
の説明変数(
次元ベクトル)、
は
個の地域の説明変数(
の行列)、
は地域
の被説明変数(スカラ)、
は
個の地域の被説明変数(
次元ベクトル)、
は回帰パラメータ(
次元ベクトル)、
は地域
の誤差項(スカラ)、
は
個の地域の誤差項(
次元ベクトル)、
は地域
に関する重み(
次元ベクトル)、
は 空間重み行列(
の行列)、
は空間パラメータ(スカラ)です。
誤差項 は、平均ベクトル
・分散共分散行列
の多変量正規分布に従うと仮定します。
ここで、 は分散パラメータ(スカラ)です。
計算式
SLMに関する計算式については「SLMの定義式」を参照してください。
空間自己回帰に関する項について、次のようにおきます。
定義式(0.12.a)を誤差項 について整理すると、次の式となります。
尤度関数
SLMの尤度関数については「【Python】0.2.1:空間ラグモデル(SLM)の尤度関数の導出【はじめての地理空間DSのノート】 - からっぽのしょこ」を参照してください。
SLMのパラメータ をまとめて、パラメータベクトル
とします。
尤度関数 は、次の式となります。
ここで、 は行列式です。
対数尤度関数は、次の式となります。
対数尤度関数の微分
SLMの対数尤度関数の微分については「【Python】0.2.1:空間ラグモデル(SLM)のヘッセ行列の導出【はじめての地理空間DSのノート】 - からっぽのしょこ」を参照してください。
対数尤度関数の各パラメータ に関する微分は、それぞれ次の式となります。
以上の式を用いてパラメータの計算式を求めます。
スポンサードリンク
パラメータの推定
次は、最尤推定によるパラメータの計算式(最尤推定量・最尤解)を導出します。
回帰パラメータの最尤推定量
回帰パラメータの最尤推定量を求めます。
対数尤度関数の回帰パラメータ に関する微分を変形します。
途中式の途中式(クリックで展開)
- 1: 式(0.16)を再掲しています。
- 2:
に、式(2)を代入します。
- 3:
を括弧の中に入れます。
とおき、
について解きます。
途中式の途中式(クリックで展開)
- 1: 式(0.16')を0ベクトルとおきます。
- 2: 両辺に
を掛けます。
- 3:
以外の項を右辺に移します。
- 4: 両辺に
の逆行列を左から掛けます。
空間パラメータ を固定すると、対数尤度関数
を最大化する回帰パラメータ
の値が定まることから、
の最尤推定量を
の関数
として扱います。
回帰パラメータ の最尤推定量について、式(4)で置き換えます。
途中式の途中式(クリックで展開)
- 1: 式(0.19)を再掲しています。
- 2:
に、式(1)を代入します。
- 3: 括弧を展開します。
- 4: 2つの項を、式(4)で置き換えます。
式(0.19)について、次のようにおきました。
以上で、回帰パラメータの最尤推定量の式が得られました。
分散パラメータの最尤推定量
分散パラメータの最尤推定量を求めます。
対数尤度関数の分散パラメータ に関する微分を変形します。
途中式の途中式(クリックで展開)
- 1: 式(0.17)を再掲しています。
- 2:
を括り出します。
とおき、
について解きます。
途中式の途中式(クリックで展開)
- 1: 式(0.17')を0とおきます。
- 2: 両辺に
を掛けます。
- 3:
以外の項を右辺に移します。
- 4: 両辺に
を掛けます。
空間パラメータ を固定すると、対数尤度関数
を最大化する分散パラメータ
の値が定まることから、
の最尤推定量を
の関数
として扱います。
誤差項 について、
の最尤推定量を用いて、
の関数
とおきます。
途中式の途中式(クリックで展開)
- 1: 式(2)について、
を式(0.21)で置き換えた式を立てます。
- 2:
に、式(1)を代入します。
- 2:
に、式(0.21)を代入します。
- 3: 括弧を展開します。
- 4:
を括り出します。
- 5: 2つの項を、式(6)で置き換えます。
式(2')について、次のようにおきました。
分散パラメータ の最尤推定量について、
の最尤推定量を用いて、
の関数
とおきます。
途中式の途中式(クリックで展開)
- 1: 式(0.20)について、
を式(5)で置き換えた式を立てます。
- 2:
に、式(5)を代入します。
以上で、分散パラメータの最尤推定量の式が得られました。
集約対数尤度関数
対数尤度関数の式において空間パラメータが行列式や逆行列の中に含まれるため、空間パラメータの最尤推定量は、解析的に求められません。そこで、集約対数尤度関数(集中対数尤度関数)が最大となる値を最尤推定量とします。
独立な変数としてのパラメータ を
の関数である最尤推定量
に置き換えることで、
の関数である対数尤度関数
を
の関数である集約対数尤度関数
として扱います。
途中式の途中式(クリックで展開)
- 1: 式(0.13)について、
を式(0.20')(0.22)、
を式(5)で置き換えた式を立てます。
- 2:
に、式(0.22)を代入します。
- 2: 式(0.20')より、
で置き換えます。
- 3: 対数の性質
より、対数の和に分割します。
- 4: 対数の性質
より、積の対数にまとめます。
集約対数尤度関数の式が得られました。
3つのパラメータ の関数
から、1つのパラメータ
の関数
に変数(次元)を集約することで、
の最適化問題に帰着させることができます。
集約対数尤度関数(0.23)を最大化する を最尤推定量
とします。
対数関数は単調増加するので、尤度関数を最大化する値と対数尤度関数を最大化する値は一致します。
集約対数尤度関数を最大化する値は、解析的に求められない(解析的最適化できない)ので、探索アルゴリズムなど(数値最適化)により求めます。
以上で、最尤推定によるパラメータ推定の式が得られました。
この記事では、SLMの最尤法を数式で確認しました。次の記事ではSEMの定義を数式で確認します。
参考文献
おわりに
SLMの導出編はこれで終了です。実装編も書くつもりではいますが、その前に書きかけの6章の方に戻ります。戻ってこられるかは分かりません。
あ、SEMの方も並行して進めていたのでもう書けてます。
ざっと読んだだけでは理解できず、付録の始めから順番に行間を埋め(解説を書き)ながら理解を進めてきたので、ここまで書いてきて最後に解析的には解けないからプログラムで数値的に求めようというオチにモヤモヤしております。やっぱり実装もしよう。
最後に、いぎなり東北産のライブ映像をどうぞ♪
投稿日にリリイベで聴いた曲ということで🍄
【次の内容】
SEMの仮定を数式で確認します。
SEMの最尤推定を数式で確認します。
https://www.anarchive-beta.com/entry/2026/07/01/180000www.anarchive-beta.com
