Mengapa menggunakan metode Newton untuk optimasi regresi logistik disebut kuadrat ulang tertimbang iteratif?


18

Mengapa menggunakan metode Newton untuk optimasi regresi logistik disebut kuadrat ulang tertimbang iteratif?

Sepertinya tidak jelas bagi saya karena kehilangan logistik dan paling tidak hilangnya kotak adalah hal yang sama sekali berbeda.


3
Saya tidak berpikir mereka sama. IRLS adalah Newton-Raphson dengan Hessian yang diharapkan daripada Hessian yang diamati.
Dimitriy V. Masterov

@ DimitriyV.Masterov terima kasih, bisakah Anda ceritakan lebih banyak tentang Diharapkan Hessian vs Diamati? Juga, apa pendapat Anda tentang penjelasan ini
Haitao Du

Jawaban:


24

Ringkasan: GLM sesuai melalui skor Fisher yang, seperti Dimitriy V. Masterov catat, adalah Newton-Raphson dengan Hessian yang diharapkan sebagai gantinya (yaitu kami menggunakan perkiraan informasi Fisher alih-alih informasi yang diamati). Jika kita menggunakan fungsi tautan kanonik, ternyata Hessian yang diamati sama dengan Hessian yang diharapkan sehingga skor NR dan Fisher sama dalam hal itu. Either way, kita akan melihat bahwa skor Fisher benar-benar cocok dengan model linear kuadrat terkecil, dan koefisien estimasi dari konvergen * ini pada maksimum dari kemungkinan regresi logistik. Selain mengurangi penyesuaian regresi logistik untuk masalah yang sudah dipecahkan, kami juga mendapatkan manfaat karena dapat menggunakan diagnostik regresi linier pada WLS akhir yang sesuai untuk mempelajari tentang regresi logistik kami.

Saya akan tetap fokus pada regresi logistik, tetapi untuk perspektif yang lebih umum tentang kemungkinan maksimum dalam GLM, saya merekomendasikan bagian 15.3 dari bab ini yang membahas hal ini dan menurunkan IRLS dalam pengaturan yang lebih umum (saya pikir itu dari John Fox's Applied Analisis Regresi dan Model Linear Umum ).

lihat komentar di bagian akhir


Fungsi kemungkinan dan skor

Kami akan menyesuaikan GLM kami dengan mengulangi sesuatu dari bentuk manaadalah kemungkinan log danJmakan berupa Goni yang diamati atau diperkirakan kemungkinan log.

b(m+1)=b(m)J(m)1(b(m))
Jm

Fungsi tautan kami adalah fungsi yang memetakan mean bersyarat μ i = E ( y ig ke prediktor linier kami, jadi model kami untuk rata-rata adalah g ( μ i ) = x T i β . Biarkan h menjadi fungsi tautan terbalik memetakan prediktor linier ke nilai tengah.μi=E(yi|xi)g(μi)=xiTβh

Untuk regresi logistik kita memiliki kemungkinan Bernoulli dengan pengamatan independen sehingga Mengambil turunan,

(b;y)=i=1nyilogh(xiTb)+(1yi)log(1h(xiTb)).
= n i=1xijh(x T i b)( y i
bj=i=1nyih(xiTb)h(xiTb)xij1yi1h(xiTb)h(xiTb)xij
=ixijh(x T i b)
=i=1nxijh(xiTb)(yih(xiTb)1yi1h(xiTb))
=ixijh(xiTb)h(xiTb)(1h(xiTb))(yih(xiTb)).

Menggunakan tautan kanonik

Sekarang anggap kita menggunakan fungsi tautan kanonik . Kemudian g - 1 c ( x ) : = h c ( x ) = 1gc=logit jadihc =hc(1-hc)yang artinya ini disederhanakan menjadi gc1(x):=hc(x)=11+exhc=hc(1hc) jadi (b;y)=XT

bj=ixij(yihc(xiTb))
Selanjutnya, masih menggunakan h c , 2
(b;y)=XT(yy^).
hc
2bkbj=ixijbkhc(xiTb)=ixijxik[hc(xiTb)(1hc(xiTb))].

Misalkan Kemudian kita memiliki H = - X T W X dan perhatikan bagaimana ini tidak memiliki y i di dalamnya lagi, jadi E ( H ) = H (kita melihat ini sebagai fungsi b sehingga satu-satunya hal acak adalah y diri). Jadi kami telah menunjukkan bahwa skor Fisher setara dengan Newton-Raphson ketika kami menggunakan tautan kanonik dalam regresi logistik. Juga berdasarkan

W=diag(hc(x1Tb)(1hc(x1Tb)),,hc(xnTb)(1hc(xnTb)))=diag(y^1(1y^1),,y^n(1y^n)).
H=XTWX
yiE(H)=Hby-XTWXakan selalu ketat negatif pasti, meskipun secara numerik jikay^i(0,1) XTWXterlalu dekat dengan0atau1maka kita mungkin harus bobot bulat untuk0yang dapat membuatHsemidefinite negatif dan karena itu komputasi tunggal.y^i010H

Sekarang membuat bekerja respon dan catatan yang = X T ( y - y ) = X T W z .z=W1(yy^)

=XT(yy^)=XTWz.

Semua bersama-sama ini berarti bahwa kita dapat mengoptimalkan log kemungkinan dengan iterasi dan ( X T W ( m ) X ) - 1 X T W ( m ) z ( m

b(m+1)=b(m)+(XTW(m)X)1XTW(m)z(m)
Adalah persis β untuk tertimbang kuadrat regresi setidaknya dari z ( m ) padaX.(XTW(m)X)1XTW(m)z(m)β^z(m)X

Memeriksa ini di R:

set.seed(123)
p <- 5
n <- 500
x <- matrix(rnorm(n * p), n, p)
betas <- runif(p, -2, 2)
hc <- function(x) 1 /(1 + exp(-x)) # inverse canonical link
p.true <- hc(x %*% betas)
y <- rbinom(n, 1, p.true)

# fitting with our procedure
my_IRLS_canonical <- function(x, y, b.init, hc, tol=1e-8) {
  change <- Inf
  b.old <- b.init
  while(change > tol) {
    eta <- x %*% b.old  # linear predictor
    y.hat <- hc(eta)
    h.prime_eta <- y.hat * (1 - y.hat)
    z <- (y - y.hat) / h.prime_eta

    b.new <- b.old + lm(z ~ x - 1, weights = h.prime_eta)$coef  # WLS regression
    change <- sqrt(sum((b.new - b.old)^2))
    b.old <- b.new
  }
  b.new
}

my_IRLS_canonical(x, y, rep(1,p), hc)
# x1         x2         x3         x4         x5 
# -1.1149687  2.1897992  1.0271298  0.8702975 -1.2074851

glm(y ~ x - 1, family=binomial())$coef
# x1         x2         x3         x4         x5 
# -1.1149687  2.1897992  1.0271298  0.8702975 -1.2074851 

dan mereka setuju.


Fungsi tautan non-kanonik

Sekarang jika kita tidak menggunakan tautan kanonik kita tidak mendapatkan penyederhanaan dari dalamsehinggaHmenjadi jauh lebih rumit, dan oleh karena itu kami melihat perbedaan yang nyata dengan menggunakanE(H)dalam skor Fisher kami.hh(1h)=1HE(H)

2bkbj=ixijbkh(xiTb)(yih(xiTb)1yi1h(xiTb))
=ixijxik[h(xiTb)(yih(xiTb)1yi1h(xiTb))h(xiTb)2(yih(xiTb)2+1yi(1h(xiTb))2)]

Via the linearity of expectation all we need to do to get E(H) is replace each occurrence of yi with its mean under our model which is μi=h(xiTβ). Each term in the summand will therefore contain a factor of the form

h(xiTb)(h(xiTβ)h(xiTb)1h(xiTβ)1h(xiTb))h(xiTb)2(h(xiTβ)h(xiTb)2+1h(xiTβ)(1h(xiTb))2).
But to actually do our optimization we'll need to estimate each β, and at step m b(m) is the best guess we have. This means that this will reduce to
h(xiTb)(h(xiTb)h(xiTb)1h(xiTb)1h(xiTb))h(xiTb)2(h(xiTb)h(xiTb)2+1h(xiTb)(1h(xiTb))2)
=h(xiTb)2(1h(xiTb)+11h(xiTb))
=h(xiTb)2h(xiTb)(1h(xiTb)).
This means we will use J with
Jjk=ixijxikh(xiTb)2h(xiTb)(1h(xiTb)).

Now let

W=diag(h(x1Tb)2h(x1Tb)(1h(x1Tb)),,h(xnTb)2h(xnTb)(1h(xnTb)))
and note how under the canonical link hc=hc(1hc) reduces W to W from the previous section. This lets us write
J=XTWX
except this is now E^(H) rather than necessarily being H itself, so this can differ from Newton-Raphson. For all i Wii>0 so aside from numerical issues J will be negative definite.

We have

bj=ixijh(xiTb)h(xiTb)(1h(xiTb))(yih(xiTb))
so letting our new working response be z=D1(yy^) with D=diag(h(x1Tb),,h(xnTb)), we have =XTWz.

All together we are iterating

b(m+1)=b(m)+(XTW(m)X)1XTW(m)z(m)
so this is still a sequence of WLS regressions except now it's not necessarily Newton-Raphson.

I've written it out this way to emphasize the connection to Newton-Raphson, but frequently people will factor the updates so that each new point b(m+1) is itself the WLS solution, rather than a WLS solution added to the current point b(m). If we wanted to do this, we can do the following:

b(m+1)=b(m)+(XTW(m)X)1XTW(m)z(m)
=(XTW(m)X)1(XTW(m)Xb(m)+XTW(m)z(m))
=(XTW(m)X)1XTW(m)(Xb(m)+z(m))
so if we're going this way you'll see the working response take the form η(m)+D(m)1(yy^(m)), but it's the same thing.

Let's confirm that this works by using it to perform a probit regression on the same simulated data as before (and this is not the canonical link, so we need this more general form of IRLS).

my_IRLS_general <- function(x, y, b.init, h, h.prime, tol=1e-8) {
  change <- Inf
  b.old <- b.init
  while(change > tol) {
    eta <- x %*% b.old  # linear predictor
    y.hat <- h(eta)
    h.prime_eta <- h.prime(eta)
    w_star <- h.prime_eta^2 / (y.hat * (1 - y.hat))
    z_star <- (y - y.hat) / h.prime_eta

    b.new <- b.old + lm(z_star ~ x - 1, weights = w_star)$coef  # WLS

    change <- sqrt(sum((b.new - b.old)^2))
    b.old <- b.new
  }
  b.new
}

# probit inverse link and derivative
h_probit <- function(x) pnorm(x, 0, 1)
h.prime_probit <- function(x) dnorm(x, 0, 1)

my_IRLS_general(x, y, rep(0,p), h_probit, h.prime_probit)
# x1         x2         x3         x4         x5 
# -0.6456508  1.2520266  0.5820856  0.4982678 -0.6768585 

glm(y~x-1, family=binomial(link="probit"))$coef
# x1         x2         x3         x4         x5 
# -0.6456490  1.2520241  0.5820835  0.4982663 -0.6768581 

and again the two agree.


Comments on convergence

Finally, a few quick comments on convergence (I'll keep this brief as this is getting really long and I'm no expert at optimization). Even though theoretically each J(m) is negative definite, bad initial conditions can still prevent this algorithm from converging. In the probit example above, changing the initial conditions to b.init=rep(1,p) results in this, and that doesn't even look like a suspicious initial condition. If you step through the IRLS procedure with that initialization and these simulated data, by the second time through the loop there are some y^i that round to exactly 1 and so the weights become undefined. If we're using the canonical link in the algorithm I gave we won't ever be dividing by y^i(1y^i) to get undefined weights, but if we've got a situation where some y^i are approaching 0 or 1, such as in the case of perfect separation, then we'll still get non-convergence as the gradient dies without us reaching anything.


5
+1. I love how detailed your answers often are.
amoeba says Reinstate Monica

You stated "the coefficient estimates from this converge on a maximum of the logistic regression likelihood." Is that necessarily so, from any initial values?
Mark L. Stone

2
@MarkL.Stone ah I was being too casual there, didn't mean to offend the optimization people :) I'll add some more details (and would appreciate your thoughts on them when I do)
jld

any chance you watched the link I posted? Seems that video is talking from machine learning perspective, just optimize logistic loss, without talking about Hessain expectation?
Haitao Du

1
@hxd1011 in that pdf i linked to (link again: sagepub.com/sites/default/files/upm-binaries/…) on page 24 of it the author goes into the theory and explains what exactly makes a link function canonical. I found that pdf extremely helpful when I first came across this (although it took me a while to get through).
jld
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.