はじめに
『Pythonによるはじめての地理空間データサイエンス』の独学時のまとめノートです。「導出編」「実装編」「可視化編」の三部構成でモデルやアルゴリズムの理解を目指します。
本の内容から寄り道・回り道しながら進めます。本を読んだ上で補助的に読んでください。
この記事では、SEMの最尤推定について、数式を使って解説します。
【前の内容】
【他の内容】
【今回の内容】
0.2.2 空間誤差モデル(SEM)の最尤法の導出
空間誤差モデル(SEM・Spatial Error Model)に対する最尤推定(MLE・Maximum Likelihood Estimation)を導出します。
SEMの定義式や対数尤度関数については「【Python】0.1.3:空間誤差モデル(SEM)の定義式【はじめての地理空間DSのノート】 - からっぽのしょこ」を参照してください。
モデルの確認
まずは、SEMの定義(仮定)を数式で確認します。
空間重み行列については「空間重み行列の定義式」、多変量正規分布については「多次元ガウス分布の定義式 - からっぽのしょこ」を参照してください。
定義式
SEMの定義式については「SEMの定義式」を参照してください。
SEMは、次の式で定義されます。
ここで、 は地域
の説明変数(
次元ベクトル)、
は
個の地域の説明変数(
の行列)、
は地域
の被説明変数(スカラ)、
は
個の地域の被説明変数(
次元ベクトル)、
は回帰パラメータ(
次元ベクトル)、
は地域
の独立誤差項(スカラ)、
は
個の地域の独立誤差項(
次元ベクトル)、
は地域
の空間誤差項(スカラ)、
は
個の地域の空間誤差項(
次元ベクトル)、
は地域
に関する重み(
次元ベクトル)、
は 空間重み行列(
の行列)、
は空間パラメータ(スカラ)です。
独立誤差項 は、平均ベクトル
・分散共分散行列
の多変量正規分布に従うと仮定します。
ここで、 は分散パラメータ(スカラ)です。
計算式
SEMに関する計算式については「SEMの定義式」を参照してください。
空間自己回帰に関する項について、次のようにおきます。
定義式(0.36)を独立誤差項 について整理すると、次の式となります。
尤度関数
SEMの尤度関数については「SEMの尤度関数の導出」を参照してください。
SEMのパラメータ をまとめて、パラメータベクトル
とします。
尤度関数 は、次の式となります。
ここで、 は行列式です。
対数尤度関数は、次の式となります。
対数尤度関数の微分
SEMの対数尤度関数の微分については「SEMのヘッセ行列の導出」を参照してください。
対数尤度関数の各パラメータ に関する微分は、それぞれ次の式になります。
以上の式を用いてパラメータの計算式を求めます。
スポンサードリンク
パラメータの推定
次は、最尤推定によるパラメータの計算式(最尤推定量・最尤解)を導出します。
回帰パラメータの最尤推定量
回帰パラメータの最尤推定量を求めます。
対数尤度関数の回帰パラメータ に関する微分を変形します。
途中式の途中式(クリックで展開)
- 1: 式(4)を再掲しています。
- 2: 転置の性質
より、
をまとめます。
- 2:
に、式(2)を代入します。
- 3:
を括弧の中に入れます。
とおき、
について解きます。
途中式の途中式(クリックで展開)
- 1: 式(4')を0ベクトルとおきます。
- 2: 両辺に
を掛けます。
- 3:
以外の項を右辺に移します。
- 4: 両辺に
の逆行列を左から掛けます。
- 5: 転置の性質
より、転置を戻します。(確認用)
空間パラメータ を固定すると、対数尤度関数
を最大化する回帰パラメータ
の値が定まることから、
の最尤推定量を
の関数
として扱います。
式(0.38)について、次のようにおきます。
回帰パラメータ の最尤推定量について、式(7)(8)で置き換えます。
途中式の途中式(クリックで展開)
- 1: 式(6)を再掲しています。
- 2:
を、式(7)(8)で置き換えます。
以上で、回帰パラメータの最尤推定量の式が得られました。
分散パラメータの最尤推定量
分散パラメータの最尤推定量を求めます。
対数尤度関数の分散パラメータ に関する微分を変形します。
途中式の途中式(クリックで展開)
- 1: 式(5)を再掲しています。
- 2:
を括り出します。
とおき、
について解きます。
途中式の途中式(クリックで展開)
- 1: 式(0.5')を0とおきます。
- 2: 両辺に
を掛けます。
- 3:
以外の項を右辺に移します。
- 4: 両辺に
を掛けます。
- 5:
を、式(2)で戻します。(確認用)
空間パラメータ を固定すると、対数尤度関数
を最大化する分散パラメータ
の値が定まることから、
の最尤推定量を
の関数
として扱います。
独立誤差項 について、
の最尤推定量を用いて、
の関数
とおきます。
途中式の途中式(クリックで展開)
- 1: 式(2)について、
を式(0.38)で置き換えた式を立てます。
- 2: 括弧を展開します。
- 3:
を、式(7)(8)で置き換えます。
- 4:
に、式(0.38)を代入します。(確認用)
- 5:
を、式(7)(8)で戻します。(確認用)
分散パラメータ の最尤推定量について、
の最尤推定量を用いて、
の関数
とおきます。
途中式の途中式(クリックで展開)
- 1: 式(0.39)について、
を式(9)で置き換えた式を立てます。
- 2:
に、式(9)を代入します。
- 3: 転置の性質
より、括弧を展開します。
- 4: 転置の性質
より、括弧を展開します。
- 4:
に、式(0.38)を代入します。
4番目の項は、次のように変形できます。
- 4: 2から4番目の項は二次形式(スカラ)なので、転置できます。
後2つの項が打ち消し合います。
- 5:
を括り出します。
- 6: 括弧を、式(9)で置き換えます。
以上で、分散パラメータの最尤推定量の式が得られました。
集約対数尤度関数
対数尤度関数の式において空間パラメータが行列式や逆行列の中に含まれるため、空間パラメータの最尤推定量は、解析的に求められません。そこで、集約対数尤度関数(集中対数尤度関数)が最大となる値を最尤推定量とします。
独立な変数としてのパラメータ を
の関数である最尤推定量
に置き換えることで、
の関数である対数尤度関数
を
の関数である集約対数尤度関数
として扱います。
途中式の途中式(クリックで展開)
- 1: 式(0.37)について、
を式(0.39')(10)、
を式(2')で置き換えた式を立てます。
- 2:
に、式(10)を代入します。
- 2: 式(0.39')より、
で置き換えます。
- 3: 対数の性質
より、対数の和に分割します。
- 4: 対数の性質
より、積の対数にまとめます。
- 5:
を、式(0.39')(10)で置き換えます。(確認用)
集約対数尤度関数の式が得られました。
3つのパラメータ の関数
から、1つのパラメータ
の関数
に変数(次元)を集約することで、
の最適化問題に帰着させることができます。
集約対数尤度関数(0.41)を最大化する を最尤推定量
とします。
対数関数は単調増加するので、尤度関数を最大化する値と対数尤度関数を最大化する値は一致します。
集約対数尤度関数を最大化する値は、解析的に求められない(解析的最適化できない)ので、探索アルゴリズムなど(数値最適化)により求めます。
以上で、最尤推定によるパラメータ推定の式が得られました。
この記事では、SEMの最尤法を数式で確認しました。
参考文献
おわりに
10章あるいは付録の導出編が完了です。おつかれさまでした~。
久し振りにまともに予約投稿を仕込んで更新を続けられたので心地いい日々を過ごせております。
投稿の予約時には気付きませんでしたがこの記事が投稿された直後のはてなのダッシュボードによると、この記事で777記事目だそうです。目次ページのような内容の無い記事も含めてですけど。
ここまでになると、記事を書くよりも管理する方が大変なんです。それらが、最近のはてなの仕様変更(あるいはそれに伴うバグ)により一部の数式がこれまで通りに表示されなくなっており、その対応が本当にもう……
最後に、Juice=Juiceのライブ映像をどうぞ♪
【次の内容】
