Tại sao sử dụng phương pháp của Newton để tối ưu hóa hồi quy logistic được gọi là bình phương tối thiểu trọng số lặp lại?


18

Tại sao sử dụng phương pháp của Newton để tối ưu hóa hồi quy logistic được gọi là bình phương tối thiểu trọng số lặp lại?

Nó dường như không rõ ràng với tôi bởi vì mất logistic và mất bình phương nhỏ nhất là những thứ hoàn toàn khác nhau.


3
Tôi không nghĩ họ giống nhau. IRLS là Newton-Raphson với Hessian được mong đợi hơn là Hessian được quan sát.
Dimitriy V. Masterov

@ DimitriyV.Masterov cảm ơn, bạn có thể cho tôi biết thêm về Hessian vs Observed dự kiến ​​không? Ngoài ra, bạn nghĩ gì về lời giải thích này
Haitao Du

Câu trả lời:


24

Tóm tắt: GLM phù hợp thông qua chấm điểm của Fisher , như Dimitriy V. Masterov lưu ý, là Newton-Raphson với Hessian dự kiến ​​thay vào đó (nghĩa là chúng tôi sử dụng ước tính thông tin của Fisher thay vì thông tin quan sát được). Nếu chúng ta đang sử dụng chức năng liên kết chính tắc thì hóa ra Hessian được quan sát bằng với Hessian dự kiến ​​nên điểm NR và Fisher giống nhau trong trường hợp đó. Dù bằng cách nào, chúng ta sẽ thấy rằng điểm Fisher thực sự phù hợp với mô hình tuyến tính bình phương nhỏ nhất có trọng số và các ước tính hệ số từ mức này hội tụ * trên khả năng hồi quy logistic tối đa. Ngoài việc giảm sự phù hợp với hồi quy logistic cho một vấn đề đã được giải quyết, chúng tôi cũng nhận được lợi ích của việc có thể sử dụng chẩn đoán hồi quy tuyến tính trên phù hợp với WLS cuối cùng để tìm hiểu về hồi quy logistic của chúng tôi.

Tôi sẽ tập trung vào điều này vào hồi quy logistic, nhưng để có cái nhìn tổng quát hơn về khả năng tối đa trong GLM, tôi khuyên bạn nên sử dụng phần 15.3 của chương này và đưa IRLS vào một bối cảnh chung hơn (Tôi nghĩ rằng đó là từ Ứng dụng của John Fox Phân tích hồi quy và mô hình tuyến tính tổng quát ).

Comments see ở cuối


Khả năng và điểm số chức năng

Chúng tôi sẽ phù hợp GLM của chúng tôi bằng cách lặp lại một cái gì đó có dạng nơi là khả năng đăng nhập và J m

b(m+1)=b(m)J(m)1(b(m))
Jm sẽ là một trong hai Hessian quan sát hoặc dự kiến ​​của khả năng đăng nhập.

Chức năng liên kết của chúng tôi là một hàm mà các bản đồ các điều kiện trung bình μ i = E ( y i | x i ) để dự đoán tuyến tính của chúng tôi, vì vậy mô hình của chúng tôi cho giá trị trung bình là g ( μ i ) = x T i β . Để hgμi=E(yi|xi)g(μi)=xiTβh là hàm liên kết nghịch ánh xạ bộ dự báo tuyến tính thành giá trị trung bình.

Đối với một hồi quy logistic chúng ta có một khả năng độc lập với các quan sát để Bernoulli Lấy dẫn xuất,

(b;y)=i=1nyilogh(xiTb)+(1yi)log(1h(xiTb)).
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)).

Sử dụng liên kết chính tắc

Bây giờ, giả sử chúng ta đang sử dụng chức năng liên kết chính tắc . Khi đó g - 1 c ( x ) : = h c ( x ) = 1gc=logit đểh ' c =hc(1-hc)có nghĩa là đơn giản hoá này để gc1(x):=hc(x)=11+exhc=hc(1hc) nên (b;y)=XT(y - y ). Bên cạnh đó, vẫn còn sử dụnghc, 2

bj=ixij(yihc(xiTb))
(b;y)=XT(yy^).
hc
2bkbj=ixijbkhc(xiTb)=ixijxik[hc(xiTb)(1hc(xiTb))].

Đặt Sau đó, chúng ta có H=- X T WX và lưu ý làm thế nào điều này không còn y i trong đó nữa, vì vậyE(H)=H(chúng ta đang xem đây là một hàm củabnên điều duy nhất ngẫu nhiên làychinh no). Do đó, chúng tôi đã chỉ ra rằng việc chấm điểm của Fisher tương đương với Newton-Raphson khi chúng tôi sử dụng liên kết chính tắc trong hồi quy logistic. Cũng nhờ

W=diag(hc(x1Tb)(1hc(x1Tb)),,hc(xnTb)(1hc(xnTb)))=diag(y^1(1y^1),,y^n(1y^n)).
H=XTWX
yiE(H)=Hby-XTWXsẽ luôn nghiêm tiêu cực nhất định, mặc dù số lượng nếu y itrở nên quá gần0hoặc1thì chúng ta có thể có trọng lượng tròn đến0mà có thể làm choHy^i(0,1) XTWXy^i010H semidefinite tiêu cực và do đó tính toán số ít.

Bây giờ tạo ra làm việc đáp ứng và lưu ý rằng = X T ( y - y ) = X T W z .z=W1(yy^)

=XT(yy^)=XTWz.

Tất cả cùng nhau điều này có nghĩa là chúng ta có thể tối ưu hóa khả năng đăng nhập bằng cách lặp lại ( X T W ( m ) X ) - 1 X T W ( m ) z ( )

b(m+1)=b(m)+(XTW(m)X)1XTW(m)z(m)
(XTW(m)X)1XTW(m)z(m)β^z(m)X

Kiểm tra điều này trong 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 

và họ đồng ý.


Các hàm liên kết không chính tắc

hh(1h)=1 in so H becomes much more complicated, and we therefore see a noticeable difference by using E(H) in our Fisher scoring.

Here's how this will go: we already worked out the general so the Hessian will be the main difficulty. We need

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.