Perché l'utilizzo del metodo di Newton per l'ottimizzazione della regressione logistica si chiama minimi quadrati iterativi ripesati?


18

Perché l'utilizzo del metodo di Newton per l'ottimizzazione della regressione logistica si chiama minimi quadrati iterativi ripesati?

Non mi sembra chiaro perché la perdita logistica e la perdita dei minimi quadrati sono cose completamente diverse.


3
Non penso che siano uguali. IRLS è Newton-Raphson con l'atteso Assia anziché l'Assia osservata.
Dimitriy V. Masterov,

@ DimitriyV.Masterov grazie, potresti dirmi di più su Expected Hessian vs Observed? Inoltre, cosa ne pensi di questa spiegazione
Haitao Du

Risposte:


24

Riepilogo: I GLM si adattano al punteggio di Fisher che, come osserva Dimitriy V. Masterov, è invece Newton-Raphson con l'attesa Assia (ovvero usiamo una stima delle informazioni di Fisher invece delle informazioni osservate). Se stiamo usando la funzione di collegamento canonico si scopre che l'Assia osservata è uguale all'Assia attesa, quindi il punteggio NR e Fisher sono gli stessi in quel caso. Ad ogni modo, vedremo che il punteggio di Fisher si adatta effettivamente a un modello lineare ponderato dei minimi quadrati e le stime dei coefficienti da questo convergono * su un massimo della probabilità di regressione logistica. Oltre a ridurre l'adattamento di una regressione logistica a un problema già risolto, otteniamo anche il vantaggio di poter utilizzare la diagnostica di regressione lineare sull'adattamento WLS finale per conoscere la nostra regressione logistica.

Terrò questo focalizzato sulla regressione logistica, ma per una prospettiva più generale sulla massima verosimiglianza nei GLM raccomando la sezione 15.3 di questo capitolo che tratta questo e deriva IRLS in un contesto più generale (penso che provenga da John Fox's Applied Analisi di regressione e modelli lineari generalizzati ).

* vedere i commenti alla fine


La probabilità e la funzione di punteggio

Adatteremo il nostro GLM ripetendo qualcosa della forma

B(m+1)=B(m)-J(m)-1(B(m))
dove è la probabilità di log e Jm sarà l'Assia osservata o attesa della probabilità del tronco.

La nostra funzione di collegamento è una funzione g che mappa la media condizionale μio=E(yio|Xio) al nostro predittore lineare, quindi il nostro modello per la media è g(μio)=XioTβ . Sia h la funzione di collegamento inverso che mappa il predittore lineare sulla media.

Per una regressione logistica abbiamo una probabilità di Bernoulli con osservazioni indipendenti quindi

(B;y)=Σio=1nyiologh(XioTB)+(1-yio)log(1-h(XioTB)).
Assunzione di derivati,
Bj=Σio=1nyioh(XioTB)h'(XioTB)Xioj-1-yio1-h(XioTB)h'(XioTB)Xioj
=ixijh(x T i b)
=Σio=1nXiojh'(XioTB)(yioh(XioTB)-1-yio1-h(XioTB))
=ΣioXiojh'(XioTB)h(XioTB)(1-h(XioTB))(yio-h(XioTB)).

Utilizzando il collegamento canonico

Supponiamo ora di utilizzare la funzione di collegamento canonico . Quindi g - 1 c ( x ) : = h c ( x ) = 1gc=logit sohc =hc(1-hc)che significa che questo semplifica a gc-1(X): =hc(X)=11+e-Xhc'=hc(1-hc) in modo (b;y)=XT(y - y ). Inoltre, usando ancorahc, 2

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

Sia Quindi abbiamo H = - X T W X e nota come questo non abbia più y i in esso, quindi E ( H ) = H (stiamo vedendo questo come una funzione di b, quindi l'unica cosa casuale è y si). Quindi abbiamo dimostrato che il punteggio di Fisher equivale a Newton-Raphson quando usiamo il collegamento canonico nella regressione logistica. Anche in virtù di

W=diag(hc(x1Tb)(1hc(x1Tb)),,hc(xnTb)(1hc(xnTb)))=diag(y^1(1y^1),,y^n(1y^n)).
H=XTWX
yiE(H)=Hby- X T W X sarà sempre rigorosamente definita negativa, sebbene numericamente se y i diventa troppo vicino a 0 o 1 allora possiamo avere pesi arrotondare a 0 che può rendere H semidefinita negativa e quindi computazionalmente singolare.y^i(0,1) XTWXy^io010H

Ora creare la risposta di lavoro e nota che = X T ( y - y ) = X T W z .z=W-1(y-y^)

=XT(yy^)=XTWz.

Tutti insieme ciò significa che possiamo ottimizzare la verosimiglianza del log ripetendo e ( X T W ( m ) X ) - 1 X T W ( m ) z ( m

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

Controllando questo in 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 

e sono d'accordo.


Funzioni di collegamento non canoniche

h'h(1-h)=1 nel così H diventa molto più complicato, e quindi vediamo una notevole differenza usando E(H) nel nostro punteggio Fisher.

Ecco come andrà: abbiamo già elaborato il generale quindi l'Assia sarà la principale difficoltà. Abbiamo bisogno

2BKBj=ΣioXiojBKh'(XioTB)(yioh(XioTB)-1-yio1-h(XioTB))
=ΣioXiojXioK[h"(XioTB)(yioh(XioTB)-1-yio1-h(XioTB))-h'(XioTB)2(yioh(XioTB)2+1-yio(1-h(XioTB))2)]

Tramite la linearità delle aspettative tutto ciò che dobbiamo fare per ottenere E(H) sostituisce ogni ricorrenza di yio con la sua media sotto il nostro modello che è μio=h(XioTβ). Ogni termine nel summand conterrà quindi un fattore del modulo

h"(XioTB)(h(XioTβ)h(XioTB)-1-h(XioTβ)1-h(XioTB))-h'(XioTB)2(h(XioTβ)h(XioTB)2+1-h(XioTβ)(1-h(XioTB))2).
Ma per fare davvero la nostra ottimizzazione dovremo stimare ciascuno βe al passo m B(m)è la migliore ipotesi che abbiamo. Ciò significa che questo si ridurrà a
h"(XioTB)(h(XioTB)h(XioTB)-1-h(XioTB)1-h(XioTB))-h'(XioTB)2(h(XioTB)h(XioTB)2+1-h(XioTB)(1-h(XioTB))2)
=-h'(XioTB)2(1h(XioTB)+11-h(XioTB))
=-h'(XioTB)2h(XioTB)(1-h(XioTB)).
Questo significa che useremo J con
JjK=-ΣioXiojXioKh'(XioTB)2h(XioTB)(1-h(XioTB)).

Adesso molla

W*=diag(h'(X1TB)2h(X1TB)(1-h(X1TB)),...,h'(XnTB)2h(XnTB)(1-h(XnTB)))
e nota come sotto il collegamento canonico hc'=hc(1-hc) riduce W* per Wdalla sezione precedente. Questo ci permette di scrivere
J=-XTW*X
tranne questo è ora E^(H) piuttosto che necessariamente essere Hstesso, quindi questo può differire da Newton-Raphson. Per tuttiio Wioio*>0 quindi a parte le questioni numeriche J sarà definito negativo.

abbiamo

Bj=ΣioXiojh'(XioTB)h(XioTB)(1-h(XioTB))(yio-h(XioTB))
lasciando che sia la nostra nuova risposta operativa z*=D-1(y-y^) con D=diag(h'(X1TB),...,h'(XnTB)), noi abbiamo =XTW*z*.

Tutti insieme stiamo ripetendo

B(m+1)=B(m)+(XTW(m)*X)-1XTW(m)*z(m)*
quindi questa è ancora una sequenza di regressioni WLS, tranne per il fatto che non è necessariamente Newton-Raphson.

L'ho scritto in questo modo per enfatizzare la connessione con Newton-Raphson, ma spesso le persone considereranno gli aggiornamenti in modo che ogni nuovo punto B(m+1) è essa stessa la soluzione WLS, piuttosto che una soluzione WLS aggiunta al punto corrente B(m). Se volessimo farlo, possiamo fare quanto segue:

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)*)
quindi se stiamo andando in questo modo vedrai la risposta operativa prendere la forma η(m)+D(m)-1(y-y^(m)), ma è la stessa cosa.

Confermiamo che funziona usandolo per eseguire una regressione probit sugli stessi dati simulati di prima (e questo non è il collegamento canonico, quindi abbiamo bisogno di questa forma più generale di 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 

e ancora una volta i due sono d'accordo.


Commenti sulla convergenza

Infine, alcuni brevi commenti sulla convergenza (terrò questo breve dato che sta diventando davvero lungo e non sono un esperto di ottimizzazione). Anche se teoricamente ciascunoJ(m)è negativo, le condizioni iniziali negative possono comunque impedire la convergenza di questo algoritmo. Nell'esempio probit sopra, cambiando le condizioni iniziali in b.init=rep(1,p)risultati in questo, e che non sembra nemmeno una condizione iniziale sospetta. Se passi attraverso la procedura IRLS con quella inizializzazione e questi dati simulati, per la seconda volta attraverso il ciclo ci sono alcuniy^io quel round esattamente 1e così i pesi diventano indefiniti. Se stiamo usando il link canonico nell'algoritmo che ho dato, non ci divideremo maiy^io(1-y^io) per ottenere pesi indefiniti, ma se abbiamo una situazione in cui alcuni y^io si stanno avvicinando 0 o 1, come nel caso della separazione perfetta, avremo comunque non-convergenza man mano che il gradiente muore senza che noi raggiungiamo nulla.


5
+1. Adoro quanto siano dettagliate le tue risposte.
ameba dice di reintegrare 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 Ero troppo casual lì, non intendevo offendere le persone ottimizzate :) Aggiungerò alcuni dettagli (e apprezzerei i tuoi pensieri su di loro quando lo faccio)
jld

qualche possibilità hai visto il link che ho pubblicato? Sembra che il video stia parlando dal punto di vista dell'apprendimento automatico, solo per ottimizzare la perdita logistica, senza parlare delle aspettative di Hessain?
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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.