Zenn
Open4

一般化線形モデル(特にロジスティック回帰)

畳屋民也畳屋民也

一般化線形モデルの最尤推定

問題設定

観測値 {(xi,yi)}i=1n\left\{(\boldsymbol{x}_i, y_i)\right\}_{i=1}^n が与えられているものとする。

各サンプルは独立同時な過程により生成され、説明変数 x\boldsymbol{x} が与えられた時の目的変数 yy の(条件付き)確率密度分布関数はパラメータ β\boldsymbol{\beta} を用いて f(yx;β)f(y\vert \boldsymbol{x}; \boldsymbol{\beta}) と表せるものとする。

ここで、説明変数 x\boldsymbol{x} で条件づけられた yy の期待値を μ=EY[yx;β]\mu = E_Y[y\vert \boldsymbol{x}; \boldsymbol{\beta}] と置いたとき、μ\mux,β\boldsymbol{x}, \, \boldsymbol{\beta} との間に適当な関数 g(μ)g(\mu) を用いて以下のような関係があるものとする:

g(μ)=xβ. g(\mu) = \boldsymbol{x}^\top \boldsymbol{\beta}.
Logistic 回帰の場合

Logistic 回帰の場合、μ\mux,β\boldsymbol{x}, \, \boldsymbol{\beta} の間に以下のような関係を仮定する:

μ=11+exβ. \mu = \frac{1}{1 + e^{-\boldsymbol{x}^\top \boldsymbol{\beta}}}.

これは

log(μ1+μ)=xβ \log\left(\frac{\mu}{1 + \mu}\right) = \boldsymbol{x}^\top \boldsymbol{\beta}

と書き換えられ、

g(μ)=log(μ1+μ) g(\mu) = \log\left(\frac{\mu}{1 + \mu}\right)

に対応する。

このとき、尤度を最大化するパラメータ β=β^\boldsymbol{\beta} = \hat{\boldsymbol{\beta}} を求めたい。

ただし、対数尤度は以下のように定義する:

l(β)=i=1nli(β), \begin{aligned} l(\boldsymbol{\beta}) &= \sum_{i=1}^n l_i(\boldsymbol{\beta}), \end{aligned}
li(β)=logf(yixi;β). \begin{aligned} l_i(\boldsymbol{\beta}) &= \log f(y_i \vert \boldsymbol{x}_i; \boldsymbol{\beta}). \end{aligned}

パラメータ最尤推定量の数値的な求め方

対数尤度 l(β)l(\boldsymbol{\beta}) を最大化するパラメータ β^\hat{\boldsymbol{\beta}} を数値的に求めるには、以下のような漸化式を計算し b(k)\boldsymbol{b}^{(k)} の収束する先を求めれば良い:

b(k+1)=b(k)+EY[l(β)βl(β)ββ=b(k)|X;b(k)]1l(β)ββ=b(k).(1) \begin{aligned} \boldsymbol{b}^{(k+1)} &= \boldsymbol{b}^{(k)} + E_Y\left[\left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top}\right|_{\boldsymbol{\beta} = \boldsymbol{b}^{(k)}} \middle\vert \boldsymbol{X}; \boldsymbol{b}^{(k)}\right]^{-1} \left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta}=\boldsymbol{b}^{(k)}}. \tag{1} \end{aligned}

ただし、 X=(x1,x2,...,xn)\boldsymbol{X} = (\boldsymbol{x}_1,\boldsymbol{x}_2,..., \boldsymbol{x}_n)^\top である。

式(1)の導出

β^\hat{\boldsymbol{\beta}}l(β)l(\boldsymbol{\beta}) が最大となるパラメータであることから、

l(β)β=0 \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = \boldsymbol{0}

となる β\boldsymbol{\beta} を探したい。

β^\boldsymbol{\hat{\beta}} に十分近い値を持つ b\boldsymbol{b} について、以下のような近似式を考える:

l(β)ββ=β^l(β)ββ=b+2l(β)βββ=b(β^b). \left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta} = \hat{\boldsymbol{\beta}}} \approx \left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta} = \boldsymbol{b}} + \left.\frac{\partial^2 l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta} \partial \boldsymbol{\beta}^\top}\right|_{\boldsymbol{\beta} = \boldsymbol{b}} (\hat{\boldsymbol{\beta}} - \boldsymbol{b}).

ここで

l(β)ββ=β^=0 \left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta} = \hat{\boldsymbol{\beta}}} = \boldsymbol{0}

を代入すると、上記の式は以下のように書き改めることができる:

β^b(2l(β)βββ=b)1l(β)ββ=b \hat{\boldsymbol{\beta}} \approx \boldsymbol{b} - \left(\left.\frac{\partial^2 l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta} \partial \boldsymbol{\beta}^\top}\right|_{\boldsymbol{\beta} = \boldsymbol{b}}\right)^{-1}\left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta}=\boldsymbol{b}}

このとき、

2l(β)βββ=b \left.\frac{\partial^2 l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta} \partial \boldsymbol{\beta}^\top}\right|_{\boldsymbol{\beta} = \boldsymbol{b}}

をその期待値

EY[2l(β)βββ=b|x;b] E_Y\left[\left.\frac{\partial^2 l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta} \partial \boldsymbol{\beta}^\top}\right|_{\boldsymbol{\beta} = \boldsymbol{b}}\middle\vert \boldsymbol{x}; \boldsymbol{b}\right]

で置き換えられるものとし、さらに

EY[2l(β)ββ|x;β]=EY[l(β)βl(β)β|x;β] E_Y\left[\frac{\partial^2 l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta} \partial \boldsymbol{\beta}^\top} \middle\vert \boldsymbol{x}; \boldsymbol{\beta}\right] = -E_Y\left[\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top}\middle\vert \boldsymbol{x}; \boldsymbol{\beta}\right]

という関係を用いると、

β^b+EY[l(β)βl(β)ββ=b|x;b]1l(β)ββ=b \hat{\boldsymbol{\beta}} \approx \boldsymbol{b} + E_Y\left[\left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top}\right|_{\boldsymbol{\beta} = \boldsymbol{b}}\middle\vert \boldsymbol{x}; \boldsymbol{b}\right]^{-1}\left. \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta}=\boldsymbol{b}}

のように書き換えることができる。

これをもとに、bb(k),β^b(k+1)\boldsymbol{b} \to \boldsymbol{b}^{(k)}, \, \hat{\boldsymbol{\beta}} \to \boldsymbol{b}^{(k+1)} と置き換えると、式(1)が導かれる。

畳屋民也畳屋民也

一般化線形モデルの最尤推定その2: 重み付き最小二乗法による別表現

一般化線形モデルにおいて、対数尤度 l(β)l(\boldsymbol{\beta}) を最大化するパラメータ β=β^\boldsymbol{\beta} = \hat{\boldsymbol{\beta}} を数値的に求めるには、以下のような漸化式を計算すればよかった:

b(k+1)=b(k)+EY[l(β)βl(β)ββ=b(k)|X;b(k)]1l(β)ββ=b(k)(1) \begin{aligned} \boldsymbol{b}^{(k+1)} &= \boldsymbol{b}^{(k)} + E_Y\left[\left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top}\right|_{\boldsymbol{\beta} = \boldsymbol{b}^{(k)}} \middle\vert \boldsymbol{X}; \boldsymbol{b}^{(k)}\right]^{-1} \left.\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta}=\boldsymbol{b}^{(k)}} \tag{1} \end{aligned}

https://zenn.dev/link/comments/0fa9737c2e71b3

ここで、説明変数 x\boldsymbol{x} とパラメータ β\boldsymbol{\beta} が与えられている時の目的変数 yy の(条件付き)確率密度分布関数 f(yx;β)f(y\vert \boldsymbol{x}; \boldsymbol{\beta}) が以下のような形で表せるものとする:

f(yx;β)=exp{yb(x;β)+c(x;β)+d(y)}. \begin{aligned} f(y\vert \boldsymbol{x}; \boldsymbol{\beta}) = \exp\left\{ y b(\boldsymbol{x}; \boldsymbol{\beta}) + c(\boldsymbol{x}; \boldsymbol{\beta}) + d(y)\right\}. \end{aligned}

なお、この時、li(β)=yib(xi;β)+c(xi;β)+d(yi)l_i(\boldsymbol{\beta}) = y_i b(\boldsymbol{x}_i; \boldsymbol{\beta}) + c(\boldsymbol{x}_i; \boldsymbol{\beta}) + d(y_i) と表すことができる。

すると、式(1)は以下のように表すことができる:

b(k+1)=(XW(k)X)1XW(k)z(k)(2) \begin{aligned} \boldsymbol{b}^{(k+1)} &= \left(\boldsymbol{X}^\top \boldsymbol{W}^{(k)} \boldsymbol{X}\right)^{-1} \boldsymbol{X}^\top \boldsymbol{W}^{(k)} \boldsymbol{z}^{(k)} \tag{2} \end{aligned}

ただし、W(k),z(k)\boldsymbol{W}^{(k)}, \, \boldsymbol{z}^{(k)} は以下のように定義する:

zi(k)=(dg(μ)dμμ=μi(k))1(yiμi(k))+xib(k) z_i^{(k)} = \left( \left. \frac{dg(\mu)}{d\mu} \right|_{\mu = \mu_i^{(k)}} \right)^{-1} (y_i - \mu_i^{(k)})+ \boldsymbol{x}_i^\top \boldsymbol{b}^{(k)}
Wij(k)={1VY[yixi;b(k)](dg(μ)dμμ=μi(k))2(i=j)0(ij) W_{ij}^{(k)} = \begin{cases} \frac{1}{V_Y[y_i\vert \boldsymbol{x}_i; \boldsymbol{b}^{(k)}]} \left( \left. \frac{dg(\mu)}{d\mu} \right|_{\mu = \mu_i^{(k)}} \right)^{-2} &\quad (i=j)\\ 0 & \quad (i \ne j) \end{cases}

なお、

μi(k)=EY[yixi;b(k)]. \mu_i^{(k)} = E_{Y}[y_i \vert \boldsymbol{x}_i; \boldsymbol{b}^{(k)}].

以下、これを示す。

導出

式(1)のうち、

l(β)β,EY[l(β)βl(β)β|X;β] \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}, \quad E_Y\left[\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top} \middle\vert \boldsymbol{X}; \boldsymbol{\beta}\right]

について式変形を行う。

なお、以降では、

μi=μ(xi;β)=EY[yixi;β] \begin{aligned} \mu_i &= \mu(\boldsymbol{x}_i; \boldsymbol{\beta})\\ &= E_{Y}[y_i \vert \boldsymbol{x}_i; \boldsymbol{\beta}] \end{aligned}

と表すことにする。

まず、

li(β)β=μβμ=μili(β)μ=1VY[yixi;β](dg(μ)dμμ=μi)1xi(yiμi)(3) \begin{aligned} \frac{\partial l_i(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} &= \left. \frac{\partial \mu}{\partial \boldsymbol{\beta}}\right|_{\mu=\mu_i} \frac{\partial l_i(\boldsymbol{\beta})}{\partial \mu}\\ &= \frac{1}{V_Y[y_i \vert \boldsymbol{x}_i; \boldsymbol{\beta}]} \left( \left. \frac{dg(\mu)}{d\mu} \right|_{\mu = \mu_i} \right)^{-1} \boldsymbol{x}_i (y_i - \mu_i) \tag{3} \end{aligned}

と表すことができる。

なぜなら、

μβ=(dg(μ)dμ)1x(4) \frac{\partial \mu}{\partial \boldsymbol{\beta}} = \left( \frac{dg(\mu)}{d\mu} \right)^{-1} \boldsymbol{x} \tag{4}
li(β)μ=bμμ=μi(yiμi)=1VY[yixi;β](yiμi)(5) \begin{aligned} \frac{\partial l_i(\boldsymbol{\beta})}{\partial \mu} &= \left.\frac{\partial b}{\partial \mu}\right|_{\mu = \mu_i} (y_i - \mu_i)\\ &= \frac{1}{V_Y[y_i \vert \boldsymbol{x}_i; \boldsymbol{\beta}]} (y_i - \mu_i)\tag{5} \end{aligned}

が成り立つからである。

式(4)の導出

g(μ)=xβg(\mu) = \boldsymbol{x}^\top \boldsymbol{\beta}β\boldsymbol{\beta} で偏微分して、

g(μ)β=μβdg(μ)μ=(xβ)β=x \begin{aligned} \frac{\partial g(\mu)}{\partial \boldsymbol{\beta}} &= \frac{\partial \mu}{\partial \boldsymbol{\beta}} \frac{dg(\mu)}{\partial \mu}\\ &= \frac{\partial (\boldsymbol{\boldsymbol{x}^\top \boldsymbol{\beta}})}{\partial \boldsymbol{\beta}} = \boldsymbol{x} \end{aligned}

したがって、

μβ=(dg(μ)dμ)1x \frac{\partial \mu}{\partial \boldsymbol{\beta}} = \left( \frac{dg(\mu)}{d\mu} \right)^{-1} \boldsymbol{x}

が成り立つ。

式(5) の導出

以下のような lo(β)l_o(\boldsymbol{\beta}) を考える:

lo(β)=yb(x;β)+c(x;β)+d(y). l_o(\boldsymbol{\beta}) = y b(\boldsymbol{x}; \boldsymbol{\beta}) + c(\boldsymbol{x}; \boldsymbol{\beta}) + d(y).

この両辺を μ\mu で微分すると、以下が成り立つ:

lo(β)μ=yb(x;β)μ+c(x;β)μ.(6) \frac{\partial l_o(\boldsymbol{\beta})}{\partial \mu} = y \frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu} + \frac{\partial c(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu}. \tag{6}

ここで、両辺の Yf(Yx;β)Y \sim f(Y\vert \boldsymbol{x}; \boldsymbol{\beta}) についての期待値をとると、以下のようになる:

EY[lo(β)μ|x;β]=μb(x;β)μ+c(x;β)μ. E_Y\left[\frac{\partial l_o(\boldsymbol{\beta})}{\partial \mu}\middle\vert \boldsymbol{x}; \boldsymbol{\beta}\right] = \mu \frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu} + \frac{\partial c(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu}.

一方で

EY[lo(β)μ|x;β]=0 E_Y\left[\frac{\partial l_o(\boldsymbol{\beta})}{\partial \mu}\middle\vert \boldsymbol{x}; \boldsymbol{\beta}\right] = 0

より

c(x;β)μ=μb(x;β)μ \frac{\partial c(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu} = -\mu \frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu}

が成り立つので、これを式(6)に代入することで

lo(β)μ=b(x;β)μ(yμ)(7) \frac{\partial l_o(\boldsymbol{\beta})}{\partial \mu} = \frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu} (y - \mu) \tag{7}

が得られる。

さらに、式(6)の分散については、以下のように表すことができる:

VY[lo(β)μ|x;β]={b(x;β)μ}2VY[Yx;β]=EY[2lo(β)μ2|x;β].(8) \begin{aligned} V_Y\left[\frac{\partial l_o(\boldsymbol{\beta})}{\partial \mu}\middle\vert \boldsymbol{x}; \boldsymbol{\beta}\right] &= \left\{\frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu}\right\}^2 V_Y[Y \vert \boldsymbol{x}; \boldsymbol{\beta}]\\ &= -E_Y\left[\frac{\partial^2 l_o(\boldsymbol{\beta})}{\partial \mu^2}\middle\vert \boldsymbol{x}; \boldsymbol{\beta}\right]. \tag{8} \end{aligned}

ここで、式(7)の両辺を μ\mu で偏微分することにより

2lo(β)μ2=2b(x;β)μ2(yμ)b(x;β)μ \frac{\partial^2 l_o(\boldsymbol{\beta})}{\partial \mu^2} = \frac{\partial^2 b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu^2} (y - \mu) - \frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu}

となるので

EY[2lo(β)μ2|x;β]=b(x;β)μ \begin{aligned} E_Y\left[\frac{\partial^2 l_o(\boldsymbol{\beta})}{\partial \mu^2}\middle\vert \boldsymbol{x}; \boldsymbol{\beta}\right] &= - \frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu} \end{aligned}

が成り立つ。

これを式(8)に代入することで、

{b(x;β)μ}2VY[yx;β]=b(x,β)μ \left\{\frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu}\right\}^2 V_Y[y \vert \boldsymbol{x}; \boldsymbol{\beta}] = \frac{\partial b(\boldsymbol{x}, \boldsymbol{\beta})}{\partial \mu}

が成り立つことから

b(x;β)μ=1VY[yx;β](9) \frac{\partial b(\boldsymbol{x}; \boldsymbol{\beta})}{\partial \mu} = \frac{1}{V_Y[y\vert \boldsymbol{x}; \boldsymbol{\beta}]} \tag{9}

が成り立つ。

以上から、式(7)、(9)合わせて、

lo(β)μ=1VY[yx;β](yμ) \frac{\partial l_o(\boldsymbol{\beta})}{\partial \mu} = \frac{1}{V_Y[y \vert \boldsymbol{x}; \boldsymbol{\beta}]} (y - \mu)

が成り立ち、これに y=yi,x=xiy=y_i, \, \boldsymbol{x}=\boldsymbol{x}_i を代入することで式(5)が示される。

したがって、

l(β)β=i=1nli(β)β=i=1n1VY[yixi;β](dg(μ)dμμ=μi)1xi(yiμi) \begin{aligned} \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} &= \sum_{i=1}^n \frac{\partial l_i(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\\ &= \sum_{i=1}^n \frac{1}{V_Y[y_i\vert \boldsymbol{x}_i; \boldsymbol{\beta}]} \left( \left. \frac{dg(\mu)}{d\mu} \right|_{\mu = \mu_i} \right)^{-1} \boldsymbol{x}_i (y_i - \mu_i) \end{aligned}

と表すことができる。

さらにこれを用いることで、

EY[l(β)βl(β)β|X;β]=i=1nEY[li(β)βli(β)β|xi;β]=i=1n1VY[yixi;β](dg(μ)dμμ=μi)2xixi \begin{aligned} E_Y\left[\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top} \middle\vert \boldsymbol{X}; \boldsymbol{\beta}\right] &= \sum_{i=1}^n E_Y\left[\frac{\partial l_i(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l_i(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top}\middle\vert \boldsymbol{x}_i; \boldsymbol{\beta}\right]\\ &=\sum_{i=1}^n \frac{1}{V_Y[y_i\vert \boldsymbol{x}_i; \boldsymbol{\beta}]} \left( \left. \frac{dg(\mu)}{d\mu} \right|_{\mu = \mu_i} \right)^{-2} \boldsymbol{x}_i \boldsymbol{x}_i^\top \end{aligned}

と表すことができる。
ただし、 iji \ne j のとき li(β)/β,lj(β)/β\partial l_i (\boldsymbol{\beta}) / \partial \boldsymbol{\beta}, \, \partial l_j (\boldsymbol{\beta}) / \partial \boldsymbol{\beta} が互いに独立であることを用いた。

ここで W(β),z~\boldsymbol{W}(\boldsymbol{\beta}), \, \tilde{\boldsymbol{z}} を以下のように定義する:

Wij(β)={1VY[yixi;β](dg(μ)dμμ=μi)2(i=j)0(ij) W_{ij}(\boldsymbol{\beta}) = \begin{cases} \frac{1}{V_Y[y_i\vert \boldsymbol{x}_i; \boldsymbol{\beta}]} \left( \left. \frac{dg(\mu)}{d\mu} \right|_{\mu = \mu_i} \right)^{-2} &\quad (i=j)\\ 0 & \quad (i \ne j) \end{cases}
z~i=(dg(μ)dμμ=μi)1(yiμi) \tilde{z}_i = \left( \left. \frac{dg(\mu)}{d\mu} \right|_{\mu = \mu_i} \right)^{-1} (y_i - \mu_i)

これらを用いると、

l(β)β=XW(β)z~EY[l(β)βl(β)β|X;β]=XW(β)X \begin{aligned} \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} &= \boldsymbol{X}^\top \boldsymbol{W}(\boldsymbol{\beta}) \tilde{\boldsymbol{z}}\\ E_Y\left[\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top} \middle\vert \boldsymbol{X}; \boldsymbol{\beta}\right] &= \boldsymbol{X}^\top \boldsymbol{W}(\boldsymbol{\beta}) \boldsymbol{X} \end{aligned}

と書き直すことができる。
したがって

z=z~+Xβ \boldsymbol{z} = \tilde{\boldsymbol{z}} + \boldsymbol{X}\boldsymbol{\beta}

と置くことで

β+EY[l(β)βl(β)β|X;β]1l(β)β=(XW(β)X)1XW(β)z \begin{aligned} \boldsymbol{\beta} + E_Y\left[\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top} \middle\vert \boldsymbol{X}; \boldsymbol{\beta}\right]^{-1} \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\\ = \left(\boldsymbol{X}^\top \boldsymbol{W}(\boldsymbol{\beta}) \boldsymbol{X}\right)^{-1} \boldsymbol{X}^\top \boldsymbol{W}(\boldsymbol{\beta}) \boldsymbol{z} \end{aligned}

が言えるので、β=b(k)\boldsymbol{\beta} = \boldsymbol{b}^{(k)} を代入することで式(2)が導かれる。

畳屋民也畳屋民也

Logistic 回帰と最尤推定

これまでの内容の例として、Logistic 回帰に当てはめて考えてみる。

https://zenn.dev/link/comments/0fa9737c2e71b3

モデル設定

Logistic 回帰の場合、yiy_i の確率密度分布は以下のように表すことができる:

f(yixi;β)=π(xi;β)yi(1π(xi;β))1yi. f(y_i\vert \boldsymbol{x}_i; \boldsymbol{\beta}) = \pi(\boldsymbol{x}_i; \boldsymbol{\beta})^{y_i}\left(1 - \pi(\boldsymbol{x}_i; \boldsymbol{\beta})\right)^{1 - y_i}.

ただし、π(xi;β)\pi(\boldsymbol{x}_i; \boldsymbol{\beta})yiy_i の(条件付き)期待値

EY[yixi,β]=π(xi;β) E_Y[y_i\vert \boldsymbol{x}_i, \boldsymbol{\beta}] = \pi(\boldsymbol{x}_i; \boldsymbol{\beta})

であり、以下のように表される:

π(xi;β)=11+exiβ. \pi(\boldsymbol{x}_i; \boldsymbol{\beta}) = \frac{1}{1 + e^{-\boldsymbol{x}_i^\top \boldsymbol{\beta}}}.

なお、上記は式変形すると

log(π(xi;β)1π(xi;β))=xiβ \log \left( \frac{\pi(\boldsymbol{x}_i; \boldsymbol{\beta})}{1 - \pi(\boldsymbol{x}_i; \boldsymbol{\beta})}\right) = \boldsymbol{x}_i^\top \boldsymbol{\beta}

と表せるので、

g(μ)=log(μ1μ) g(\mu) = \log\left(\frac{\mu}{1 - \mu}\right)

に相当する。

最尤推定

対数尤度とその微分

ロジスティック回帰において、対数尤度 l(β)l(\boldsymbol{\beta}) は以下のように表される:

l(β)=i=1nlogf(yixi;β). \begin{aligned} l(\boldsymbol{\beta}) &= \sum_{i=1}^n \log f(y_i\vert \boldsymbol{x}_i; \boldsymbol{\beta}). \end{aligned}

ここで、l(β)=i=1nli(β)l(\boldsymbol{\beta}) = \sum_{i=1}^n l_i(\boldsymbol{\beta}) とすると、li(β)=logf(yi;xi,β)l_i(\boldsymbol{\beta}) = \log f(y_i; \boldsymbol{x}_i ,\boldsymbol{\beta}) は以下のように表すことができる:

li(β)=yilog(π(xi;β)1π(xi;β))+log(1π(xi;β)) l_i(\boldsymbol{\beta}) = y_i \log \left( \frac{\pi(\boldsymbol{x}_i; \boldsymbol{\beta})}{1 - \pi(\boldsymbol{x}_i; \boldsymbol{\beta})}\right) + \log \left( 1 - \pi(\boldsymbol{x}_i; \boldsymbol{\beta})\right)

li(β)l_i(\boldsymbol{\beta})β\boldsymbol{\beta} で偏微分すると、以下のようになる:

li(β)β=(yiπ(xi;β))xi. \frac{\partial l_i(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = (y_i - \pi(\boldsymbol{x}_i; \boldsymbol{\beta}) ) \boldsymbol{x}_i.

従って、以下が成り立つ:

l(β)β=i=1n(yiπ(xi;β))xi. \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = \sum_{i=1}^n(y_i - \pi(\boldsymbol{x}_i; \boldsymbol{\beta}) ) \boldsymbol{x}_i.
EY[l(β)βl(β)β|X;β]=i=1nVY[yixi;β]xixi=i=1nπ(xi;β)(1π(xi;β))xixi \begin{aligned} E_Y\left[\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top}\middle\vert \boldsymbol{X}; \boldsymbol{\beta}\right] &= \sum_{i=1}^n V_Y[y_i\vert \boldsymbol{x}_i; \boldsymbol{\beta}] \boldsymbol{x}_i \boldsymbol{x}_i^\top\\ &= \sum_{i=1}^n\pi(\boldsymbol{x}_i; \boldsymbol{\beta}) (1 - \pi(\boldsymbol{x}_i; \boldsymbol{\beta})) \boldsymbol{x}_i \boldsymbol{x}_i^\top\\ \end{aligned}

最尤推定量を数値的に求める方法

対数尤度 l(β)l(\boldsymbol{\beta}) を最大にする β=β^\boldsymbol{\beta} = \hat{\boldsymbol{\beta}} を数値的に求めるには、以下の更新式に従って b(k+1)\boldsymbol{b}^{(k+1)} を計算していく:

b(k+1)=b(k)+M(b(k))1l(β)ββ=b(k)(1) \begin{aligned} \boldsymbol{b}^{(k+1)} = \boldsymbol{b}^{(k)}+ \boldsymbol{M}(\boldsymbol{b}^{(k)})^{-1}\left. \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta} = \boldsymbol{b}^{(k)}} \tag{1} \end{aligned}

ただし、

l(β)ββ=b(k)=i=1n(yiπ(xi;b(k)))xi,M(b(k))=EY[l(β)βl(β)ββ=b(k)|X;b(k)]=i=1nπ(xi;b(k))(1π(xi;b(k)))xixi. \begin{aligned} \left. \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta} = \boldsymbol{b}^{(k)}} &= \sum_{i=1}^n(y_i - \pi(\boldsymbol{x}_i; \boldsymbol{b}^{(k)}) ) \boldsymbol{x}_i,\\ \boldsymbol{M}(\boldsymbol{b}^{(k)}) &= \left.E_Y\left[\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^\top}\right|_{\boldsymbol{\beta} = \boldsymbol{b}^{(k)}} \middle\vert \boldsymbol{X}; \boldsymbol{b}^{(k)}\right]\\ &=\sum_{i=1}^n\pi(\boldsymbol{x}_i; \boldsymbol{b}^{(k)}) (1 - \pi(\boldsymbol{x}_i; \boldsymbol{b}^{(k)})) \boldsymbol{x}_i \boldsymbol{x}_i^\top. \end{aligned}

式(1)の別表現

https://zenn.dev/link/comments/9e95d9b4d45073

πi(k)=π(xi;b(k))\pi_i^{(k)} = \pi(\boldsymbol{x}_i; \boldsymbol{b}^{(k)}) と表して以下のような W(k),Π(k),z(k)\boldsymbol{W}^{(k)}, \, \boldsymbol{\Pi}^{(k)}, \boldsymbol{z}^{(k)} を定義する:

Wij(k)={πi(k)(1πi(k))(i=j)0(ij) W_{ij}^{(k)} = \begin{cases} \pi_i^{(k)} \left(1 - \pi_i^{(k)} \right) &\quad (i = j)\\ 0 &\quad (i \ne j) \end{cases}
Π(k)=(π1(k),π2(k),...,πn(k)) \boldsymbol{\Pi}^{(k)} = \left( \pi_1^{(k)}, \pi_2^{(k)}, ..., \pi_n^{(k)}\right)^\top
z(k)=(W(k))1(YΠ(k))+Xb(k) \boldsymbol{z}^{(k)} = \left(\boldsymbol{W}^{(k)}\right)^{-1} (\boldsymbol{Y} - \boldsymbol{\Pi}^{(k)}) + \boldsymbol{X}\boldsymbol{b}^{(k)}

すると、式(\ref{1}) は以下のように書き表すことができる:

b(k+1)=(XW(k)X)1XW(k)z(k)(2) \boldsymbol{b}^{(k+1)} = \left(\boldsymbol{X}^\top \boldsymbol{W}^{(k)}\boldsymbol{X}\right)^{-1} \boldsymbol{X}^\top \boldsymbol{W}^{(k)}\boldsymbol{z}^{(k)} \tag{2}
導出
l(β)ββ=b(k)=i=1n(yiπi(k))xi=X(YΠ(k)) \begin{aligned} \left. \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta} = \boldsymbol{b}^{(k)}} &= \sum_{i=1}^n (y_i - \pi_i^{(k)}) \boldsymbol{x}_i\\ &= \boldsymbol{X}^\top \left(\boldsymbol{Y} - \boldsymbol{\Pi}^{(k)}\right) \end{aligned}
M(b(k))=i=1nπi(k)(1πi(k))xixi=XW(k)X \begin{aligned} \boldsymbol{M}(\boldsymbol{b}^{(k)}) &=\sum_{i=1}^n\pi_i^{(k)} (1 - \pi_i^{(k)}) \boldsymbol{x}_i \boldsymbol{x}_i^\top\\ &= \boldsymbol{X}^\top \boldsymbol{W}^{(k)} \boldsymbol{X} \end{aligned}

よって、式(1) は以下のように書き換えられる:

b(k+1)=b(k)+M(b(k))1l(β)ββ=b(k)=b(k)+(XW(k)X)1X(YΠ(k))=(XW(k)X)1XW(k)Xb(k)+(XW(k)X)1XW(k)(W(k))1(YΠ(k))=(XW(k)X)1XW(k){(W(k))1(YΠ(k))+Xb(k)}=(XW(k)X)1XW(k)z(k) \begin{aligned} \boldsymbol{b}^{(k+1)} &= \boldsymbol{b}^{(k)}+ \boldsymbol{M}(\boldsymbol{b}^{(k)})^{-1}\left. \frac{\partial l(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right|_{\boldsymbol{\beta} = \boldsymbol{b}^{(k)}}\\ &= \boldsymbol{b}^{(k)} + \left(\boldsymbol{X}^\top \boldsymbol{W}^{(k)}\boldsymbol{X}\right)^{-1} \boldsymbol{X}^\top \left(\boldsymbol{Y} - \boldsymbol{\Pi}^{(k)}\right)\\ &= \left(\boldsymbol{X}^\top \boldsymbol{W}^{(k)}\boldsymbol{X}\right)^{-1} \boldsymbol{X}^\top \boldsymbol{W}^{(k)} \boldsymbol{X} \boldsymbol{b}^{(k)} + \left(\boldsymbol{X}^\top \boldsymbol{W}^{(k)}\boldsymbol{X}\right)^{-1} \boldsymbol{X}^\top \boldsymbol{W}^{(k)}\left(\boldsymbol{W}^{(k)}\right)^{-1} \left(\boldsymbol{Y} - \boldsymbol{\Pi}^{(k)}\right)\\ &= \left(\boldsymbol{X}^\top \boldsymbol{W}^{(k)}\boldsymbol{X}\right)^{-1} \boldsymbol{X}^\top \boldsymbol{W}^{(k)} \left\{ \left(\boldsymbol{W}^{(k)}\right)^{-1} \left(\boldsymbol{Y} - \boldsymbol{\Pi}^{(k)}\right) + \boldsymbol{X}\boldsymbol{b}^{(k)}\right\}\\ &= \left(\boldsymbol{X}^\top \boldsymbol{W}^{(k)}\boldsymbol{X}\right)^{-1} \boldsymbol{X}^\top \boldsymbol{W}^{(k)}\boldsymbol{z}^{(k)} \end{aligned}

なお、式(2)は z(k)\boldsymbol{z}^{(k)} を目的変数、X\boldsymbol{X} を説明変数として W\boldsymbol{W} でサンプルに重みをつけた重み付き最小二乗法による係数推定として捉えることもできる。

ログインするとコメントできます