はじめに
『Pythonによるはじめての地理空間データサイエンス』の独学時のまとめノートです。「導出編」「実装編」「可視化編」の三部構成でモデルやアルゴリズムの理解を目指します。
本の内容から寄り道・回り道しながら進めます。本を読んだ上で補助的に読んでください。
この記事では、空間誤差モデルのヘッセ行列について、数式を使って解説します。
【前の内容】
【他の内容】
【今回の内容】
0.2.2 空間誤差モデル(SEM)のヘッセ行列の導出
空間誤差モデル(SEM・Spatial Error Model)におけるヘッセ行列(Hessian matrix)を導出します。
SEMの定義式については「【Python】0.1.3:空間誤差モデル(SEM)の定義式【はじめての地理空間DSのノート】 - からっぽのしょこ」を参照してください。
モデルの確認
まずは、SEMの定義(仮定)を数式で確認します。
空間重み行列については「空間重み行列の定義式」、多変量正規分布については「多次元ガウス分布の定義式 - からっぽのしょこ」を参照してください。
定義式
SEMの定義式については「SEMの定義式」を参照してください。
SEMは、次の式で定義されます。
ここで、 は地域
の説明変数(
次元ベクトル)、
は
個の地域の説明変数(
の行列)、
は地域
の被説明変数(スカラ)、
は
個の地域の被説明変数(
次元ベクトル)、
は回帰パラメータ(
次元ベクトル)、
は地域
の独立誤差項(スカラ)、
は
個の地域の独立誤差項(
次元ベクトル)、
は地域
の空間誤差項(スカラ)、
は
個の地域の空間誤差項(
次元ベクトル)、
は地域
に関する重み(
次元ベクトル)、
は 空間重み行列(
の行列)、
は空間パラメータ(スカラ)です。
独立誤差項 は、平均ベクトル
・分散共分散行列
の多変量正規分布に従うと仮定します。
ここで、 は分散パラメータ(スカラ)です。
計算式
SEMに関する計算式については「SEMの定義式」を参照してください。
空間自己回帰に関する項について、次のようにおきます。
定義式(0.36)を独立誤差項 について整理すると、次の式となります。
独立誤差項 の内積(2乗和)は、次の式となります。
尤度関数
SEMの尤度関数については「SEMの尤度関数の導出」を参照してください。
SEMのパラメータ をまとめて、パラメータベクトル
とします。
尤度関数 は、次の式となります。
ここで、 は行列式です。
対数尤度関数は、次の式となります。
以上の式を用いてヘッセ行列を求めます。
スポンサードリンク
対数尤度関数の1階微分の導出
次は、SEMの対数尤度関数の1階微分を導出します。
対数尤度の微分の設定
対数尤度関数の微分を確認します。
対数尤度関数 の1階微分を求めます。
各要素は、各パラメータ による偏微分で求まるのが分かります。
対数尤度関数の1階微分(5)の各要素の式を求めていきます。
回帰パラメータによる偏微分
各種の変数の回帰パラメータに関する微分を求めます。
対数尤度関数の1階微分(5)の1番目の要素は、対数尤度関数(0.37)を回帰パラメータ に関して微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、
以外の項は定数として扱います。
- 2: 和の微分
より、微分の和に分割します。
- 3:
の内積の微分に、式(7)を代入します。
独立誤差項 の内積を
に関して微分します。
途中式の途中式(クリックで展開)
- 1-2: 式(3)の偏微分の式を立てます。
- 3: 和の微分
より、微分の和に分割します。
- 4:
などの二次形式の微分に、式(8)を代入します。
- 6: 共通の項と
を括り出します。
- 7:
と括弧の積を式(2)で置き換えます。
説明変数・回帰パラメータ などの二次形式を
に関して微分します。
途中式の途中式(クリックで展開)
- 1: 二次形式の微分
より、
を1つの行列とみなして微分を計算します。
- 2: 転置の性質
より、括弧を展開します。
以上で、対数尤度関数の1階微分(5)の1番目の要素の式が得られました。
分散パラメータによる偏微分
各種の変数の分散パラメータに関する微分を求めます。
対数尤度関数の1階微分(5)の2番目の要素は、対数尤度関数(0.37)を分散パラメータ に関して微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、
以外の項は定数として扱います。
- 2: 和の微分
より、微分の和に分割します。
- 2: 微分の計算が分かりやすいように、分数の指数表記
に書き換えています。
- 3: 自然対数の微分
より、微分を計算します。
- 3: べき乗の微分
より、
を1つの変数とみなして微分を計算します。
- 4: 分数の指数表記
を戻します。
以上で、対数尤度関数の1階微分(5)の2番目の要素の式が得られました。
空間パラメータによる偏微分
対数尤度関数の1階微分(5)の3番目の要素は、対数尤度関数(0.37)を空間パラメータ に関して微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、
以外の項は定数として扱います。
- 2: 和の微分
より、微分の和に分割します。
- 3:
の対数行列式の微分に、式(0.15)を代入します。
- 3:
の内積の微分に、式(11)を代入します。
の対数行列式を
に関して微分します。
途中式の途中式(クリックで展開)
- 1: 合成関数の微分(連鎖率)
、自然対数の微分
より、
を中間変数とみなして微分を計算します。
- 2:
に依存する行列
における行列式の微分(ヤコビの公式)
より、トレースを用いた微分に変形します。
- 3:
の微分に、式(10)を代入します。
- 4: トレースの性質
より、符号をトレースの外に出します。
を
に関して微分します。
途中式の途中式(クリックで展開)
- 1: 式(1)の偏微分の式を立てます。
- 2: 和の微分
より、微分の和に分割します。
独立誤差項 の内積を
に関して微分します。
途中式の途中式(クリックで展開)
- 1: 積の微分
より、2つの微分の和に変形します。
- 2:
の微分に、式(12)を代入します。
- 3: 転置の性質
より、括弧を展開します。
- 4: 二次形式はスカラなので、転置できます。
2つの項が一致するのでまとめます。
独立誤差項 を
に関して微分します。
途中式の途中式(クリックで展開)
- 1: 式(2)の偏微分の式を立てます。
- 2:
に、式(1)を代入します。
- 3: 括弧を展開します。
- 4: 和の微分
より、微分の和に分割します。
- 7:
を括り出します。
以上で、対数尤度関数の1階微分(5)の3番目の要素の式が得られました。
対数尤度の微分
対数尤度関数の微分を求めます。
対数尤度関数の1階微分(5)の各要素をそれぞれの式(6)(9)(0.40)と置き換えます。
以上で、対数尤度関数の1階微分の式が得られました。
スポンサードリンク
対数尤度関数の2階微分の導出
続いて、SEMの対数尤度関数の2階微分を導出します。
ヘッセ行列の設定
対数尤度関数のヘッセ行列を確認します。
対数尤度関数 の2階微分を求めます。関数の2階偏微分を並べた行列をヘッセ行列
と呼びます。
各要素は、各パラメータ の組み合わせによる偏微分で求まるのが分かります。
ヘッセ行列(13)の各要素の式を求めていきます。
回帰・回帰パラメータによる偏微分
各種の変数の回帰パラメータに関する2階微分を求めます。
ヘッセ行列(13)の1行1列目の要素は、対数尤度関数(0.37)を空間パラメータ に関して2階微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、
以外の項は定数として扱います。
- 2:
による微分の順番を入れ換えます。
- 3:
の微分に、式(6)を代入します。
- 4:
と無関係な項を微分の外に出します。
- 5:
の微分に、式(14)を代入します。
独立誤差項 を
の転置に関して微分します。
途中式の途中式(クリックで展開)
- 1: 式(2)の偏微分の式を立てます。
- 2: 括弧を展開します。
- 3: 和の微分
より、微分の和に分割します。
以上で、ヘッセ行列(13)の1行1列目の要素の式が得られました。
回帰・分散パラメータによる偏微分
各種の変数の回帰パラメータと分散パラメータに関する微分を求めます。
ヘッセ行列(13)の1行2列目の要素は、対数尤度関数(0.37)を回帰パラメータ と分散パラメータ
に関して微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、それぞれ他の項は定数として扱います。
- 2:
の微分に、式(9)を代入します。
- 3: 和の微分
より、微分の和に分割します。
- 4:
の内積の微分に、式(7)を代入します。
以上で、ヘッセ行列(13)の1行2列・2行1列目の要素の式が得られました。
回帰・空間パラメータによる偏微分
各種の変数の回帰パラメータと空間パラメータに関する微分を求めます。
ヘッセ行列(13)の1行3列目の要素は、対数尤度関数(0.37)を回帰パラメータ と空間パラメータ
に関して微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、それぞれ他の項は定数として扱います。
- 2:
の微分に、式(0.40)を代入します。
- 3: 括弧を展開します。
- 4:
に、式(2)を代入します。
式を変形して置き換えます。
- 5: 和の微分
より、微分の和に分割します。
- 6:
の内積の微分に、式(15)を代入します。
- 6:
などの二次形式の微分に、式(16)を代入します。
- 7:
を括り出します。
- 8: 共通の項を括り出します。
- 9:
を括り出します。
独立誤差項 の転置を
に関して微分します。
途中式の途中式(クリックで展開)
- 1: 式(2)の偏微分の式を立てます。
- 2: 転置の性質
より、括弧を展開します。
- 3: 転置の性質
より、括弧を展開します。
- 4: 和の微分
より、微分の和に分割します。
説明変数・回帰パラメータ などの二次形式を
に関して微分します。
途中式の途中式(クリックで展開)
- 1: 二次形式の微分
より、
を1つの行列とみなして微分を計算します。
- 2: 転置の性質
より、括弧を展開します。
対数尤度関数の回帰パラメータと空間パラメータに関する微分(0.44)について、 の逆行列を用いて、次のようにも変形できます。
途中式の途中式(クリックで展開)
- 1: 式(0.44)を再掲しています。
- 2: 中の括弧に右から
を掛けます。
- 3:
を中の括弧に掛けます。
- 3:
と後の括弧の積を式(2)で置き換えます。
さらに、対数尤度関数の回帰パラメータと空間パラメータに関する微分(0.44)について考えます。
空間重み行列 が対称行列(2つの地域
間の重みが等しい
)のとき、
なので、式(1)より
が成り立ち、 も対称行列になります。
また、 の積は
が成り立ち、可換(積の入れ換えが可能)になります。
よって、式(0.44)は、次のように変形できます。
以上で、ヘッセ行列(13)の1行3列・3行1列目の要素の式が得られました。
分散・分散パラメータによる偏微分
各種の変数の分散パラメータに関する2階微分を求めます。
ヘッセ行列(13)の2行2列目の要素は、対数尤度関数(0.37)を分散パラメータ に関して2階微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、
以外の項は定数として扱います。
- 2:
の微分に、式(9)を代入します。
- 3: 和の微分
より、微分の和に分割します。
- 3: 微分の計算が分かりやすいように、分数の指数表記
に書き換えています。
- 4: べき乗の微分
より、
を1つの変数とみなして微分を計算します。
- 5: 分数の指数表記
を戻します。
以上で、ヘッセ行列(13)の2行2列目の要素の式が得られました。
分散・空間パラメータによる偏微分
各種の変数の分散パラメータと空間パラメータに関する微分を求めます。
ヘッセ行列(13)の2行3列目の要素は、対数尤度関数(0.37)を分散パラメータ と空間パラメータ
に関して微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、それぞれ他の項は定数として扱います。
- 2:
の微分に、式(0.40)を代入します。
- 3: 和の微分
より、微分の和に分割します。
- 3: 微分の計算が分かりやすいように、分数の指数表記
に書き換えています。
- 4: べき乗の微分
より、
を1つの変数とみなして微分を計算します。
- 5: 分数の指数表記
を戻します。
以上で、ヘッセ行列(13)の2行3列・3行2列目の要素の式が得られました。
空間・空間パラメータによる偏微分
各種の変数の空間パラメータに関する2階微分を求めます。
ヘッセ行列(13)の3行3列目の要素は、対数尤度関数(0.37)を空間パラメータ に関して2階微分して求まります。
途中式の途中式(クリックで展開)
- 1: 式(0.37)の偏微分の式を立てます。
に関する微分なので、
以外の項は定数として扱います。
- 2:
の微分に、式(0.40)を代入します。
- 3: 和の微分
より、微分の和に分割します。
- 4:
のトレースの微分に、式(17)を代入します。
- 4:
の微分に、式(12)を代入します。
- 5: 転置の性質
より、括弧を展開します。
のトレースを
に関して微分します。
途中式の途中式(クリックで展開)
- 1:
に依存する行列
におけるトレースの微分
より、微分のトレースに変形します。
- 2:
と無関係な項を微分の外に出します。
- 3:
に依存する行列
における逆行列の微分
より、元の行列の微分と逆行列の積に変形します。
- 4:
の微分に、式(10)を代入します。
以上で、ヘッセ行列(13)の3行3列目の要素の式が得られました。
ヘッセ行列
対数尤度関数のヘッセ行列を求めます。
ヘッセ行列(13)の各要素をそれぞれの式(0.42)(0.43)(0.44)(0.45)(0.46)(0.47)と置き換えます。
ヘッセ行列の式が得られました。
以上で、対数尤度関数の2階微分の式が得られました。
この記事では、SEMのヘッセ行列を数式で確認しました。次の記事では最尤法を数式で確認します。
参考文献
おわりに
SEMの記事から読み始めて「いったい何を言っているんだ」となった人は、回り道になりますが一旦OLSの記事に立ち返って読んだ後に、SLMの記事も読んでからSEMの記事(この記事)に戻って読み比べると、仮定や式の違いが対比されて理解しやすくなると思います。試してみてください。そんなことをしなくても理解できる人はなんでもいいです。
最後に、Juice=Juiceのライブ映像をどうぞ♪
さぁ、決戦の日だ⚽
【次の内容】
SEMの漸近分散共分散行列を数式で確認します。
