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.
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.
Risposte:
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
Adatteremo il nostro GLM ripetendo qualcosa della forma
La nostra funzione di collegamento è una funzione che mappa la media condizionale al nostro predittore lineare, quindi il nostro modello per la media è . Sia 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
Supponiamo ora di utilizzare la funzione di collegamento canonico . Quindi g - 1 c ( x ) : = h c ( x ) = 1 soh ′ c =hc⋅(1-hc)che significa che questo semplifica a ∂ℓ in modo ∇ℓ(b;y)=XT(y - y ). Inoltre, usando ancorahc, ∂2ℓ
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
Ora creare la risposta di lavoro e nota che ∇ ℓ = X T ( y - y ) = X T W z .
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
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.
nel così diventa molto più complicato, e quindi vediamo una notevole differenza usando nel nostro punteggio Fisher.
Ecco come andrà: abbiamo già elaborato il generale quindi l'Assia sarà la principale difficoltà. Abbiamo bisogno
Tramite la linearità delle aspettative tutto ciò che dobbiamo fare per ottenere sostituisce ogni ricorrenza di con la sua media sotto il nostro modello che è . Ogni termine nel summand conterrà quindi un fattore del modulo
Adesso molla
abbiamo
Tutti insieme stiamo ripetendo
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 è essa stessa la soluzione WLS, piuttosto che una soluzione WLS aggiunta al punto corrente . Se volessimo farlo, possiamo fare quanto segue:
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.
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 ciascunoè 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 alcuni quel round esattamente e così i pesi diventano indefiniti. Se stiamo usando il link canonico nell'algoritmo che ho dato, non ci divideremo mai per ottenere pesi indefiniti, ma se abbiamo una situazione in cui alcuni si stanno avvicinando o , come nel caso della separazione perfetta, avremo comunque non-convergenza man mano che il gradiente muore senza che noi raggiungiamo nulla.