เหตุใดการใช้วิธีการของนิวตันในการเพิ่มประสิทธิภาพการถดถอยโลจิสติกจึงเรียกว่าซ้ำกำลังสองน้อยที่สุด?
ดูเหมือนจะไม่ชัดเจนสำหรับฉันเพราะการสูญเสียด้านการขนส่งและการสูญเสียกำลังสองน้อยที่สุดนั้นต่างกันอย่างสิ้นเชิง
เหตุใดการใช้วิธีการของนิวตันในการเพิ่มประสิทธิภาพการถดถอยโลจิสติกจึงเรียกว่าซ้ำกำลังสองน้อยที่สุด?
ดูเหมือนจะไม่ชัดเจนสำหรับฉันเพราะการสูญเสียด้านการขนส่งและการสูญเสียกำลังสองน้อยที่สุดนั้นต่างกันอย่างสิ้นเชิง
คำตอบ:
สรุป: GLM มีความเหมาะสมผ่านเกณฑ์การให้คะแนนของฟิชเชอร์ซึ่งเป็น Dimitriy V. Masterov notes คือ Newton-Raphson พร้อม Hessian ที่คาดหวังแทน (เช่นเราใช้การประเมินข้อมูล Fisher แทนข้อมูลที่สังเกต) หากเราใช้ฟังก์ชั่นการเชื่อมโยงแบบบัญญัติมันปรากฎว่า Hessian ที่สังเกตได้นั้นเท่ากับ Hessian ที่คาดไว้ดังนั้นการให้คะแนน NR และ Fisher เหมือนกันในกรณีนั้น เราจะเห็นว่าการให้คะแนนแบบฟิชเชอร์เหมาะสมกับแบบจำลองเชิงเส้นกำลังสองน้อยที่สุดและการประมาณค่าสัมประสิทธิ์จากการบรรจบกันนี้บนโอกาสสูงสุดในการถดถอยแบบโลจิสติกส์ นอกเหนือจากการลดความเหมาะสมของการถดถอยโลจิสติกส์ไปยังปัญหาที่แก้ไขแล้วเรายังได้รับประโยชน์จากความสามารถในการใช้การวินิจฉัยการถดถอยเชิงเส้นใน WLS สุดท้ายที่เหมาะสมเพื่อเรียนรู้เกี่ยวกับการถดถอยโลจิสติกของเรา
ฉันจะเก็บเรื่องนี้มุ่งเน้นไปที่การถดถอยโลจิสติก แต่สำหรับมุมมองที่กว้างขึ้นในโอกาสสูงสุดใน GLMs ผมขอแนะนำส่วน 15.3 ของบทนี้ซึ่งผ่านไปนี้และบุคลากร IRLS ในการตั้งค่าทั่วไปมากขึ้น (ผมคิดว่ามันเป็นจากจอห์นฟ็อกซ์แล้ว การวิเคราะห์การถดถอยและตัวแบบเชิงเส้นทั่วไป .
ดูความคิดเห็นในตอนท้าย
เราจะกระชับ GLM ของเราโดยการทำซ้ำบางสิ่งบางอย่างในรูปแบบ
ฟังก์ชั่นการเชื่อมโยงของเราเป็นฟังก์ชั่นที่แผนที่หมายถึงเงื่อนไขที่จะทำนายเชิงเส้นของเราดังนั้นรูปแบบของเราสำหรับความหมายคือ β ให้เป็นฟังก์ชันผกผันลิงก์การแม็พตัวทำนายเชิงเส้นกับค่าเฉลี่ย
สำหรับการถดถอยโลจิสติกเรามีโอกาส Bernoulli กับการสังเกตอิสระดังนั้น การซื้อขายสัญญาซื้อขายล่วงหน้า ∂ ℓ
ตอนนี้ขอสมมติว่าเรากำลังใช้ฟังก์ชั่นการเชื่อมโยงที่ยอมรับ logit จากนั้นg - 1 c ( x ) : = h c ( x ) = 1ดังนั้นเอช ' C =Hค⋅(1-เอชซี)ซึ่งหมายถึงการช่วยลดความยุ่งยากนี้เพื่อ ∂ℓ ดังนั้น ∇ℓ(ข;Y)=XT(Y - Y ) นอกจากนี้ยังใช้hc, ∂2ℓ
Let แล้วเรามี H=- X T WX และทราบว่าวิธีนี้ไม่ได้มี Y ฉันอยู่ในนั้นอีกต่อไปดังนั้นE(H)=H(เรากำลังดูอยู่นี้เป็นหน้าที่ของขดังนั้นสิ่งเดียวสุ่มYตัวเอง) ดังนั้นเราจึงแสดงให้เห็นว่าการให้คะแนนชาวประมงนั้นเทียบเท่ากับ Newton-Raphson เมื่อเราใช้ลิงก์มาตรฐานในการถดถอยโลจิสติก นอกจากนี้โดยอาศัยอำนาจตาม
ทั้งหมดนี้หมายความว่าเราสามารถปรับความน่าจะเป็นบันทึกโดยการทำซ้ำ และ( X T W ( m ) X ) - 1 X T W ( m ) z ( m
ตรวจสอบสิ่งนี้ใน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
และพวกเขาเห็นด้วย
Via the linearity of expectation all we need to do to get is replace each occurrence of with its mean under our model which is . Each term in the summand will therefore contain a factor of the form
Now let
We have
All together we are iterating
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 is itself the WLS solution, rather than a WLS solution added to the current point . If we wanted to do this, we can do the following:
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.
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 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 that round to exactly 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 to get undefined weights, but if we've got a situation where some are approaching or , such as in the case of perfect separation, then we'll still get non-convergence as the gradient dies without us reaching anything.