LASSO ประสบปัญหาการถดถอยแบบขั้นตอนเหมือนกันหรือไม่?


18

วิธีการเลือกตัวแปรแบบอัลกอริธึมแบบขั้นตอนมีแนวโน้มที่จะเลือกแบบจำลองที่มีอคติมากกว่าหรือน้อยกว่าทุกการประมาณค่าในตัวแบบการถดถอย ( β s และ SEs, p-ค่า, สถิติF , ฯลฯ ) ตัวพยากรณ์เท็จตามวรรณกรรมจำลองที่สมเหตุสมผล

LASSO ประสบปัญหาในลักษณะที่เหมือนกันเมื่อใช้เพื่อเลือกตัวแปรหรือไม่?


3
ฉันคิดว่ามันทำ Frank Harrell มีบทความบางอย่างเกี่ยวกับเรื่องนั้นฉันคิดว่าและอาจมีเนื้อหาที่เกี่ยวข้องในหนังสือ "กลยุทธ์การสร้างแบบจำลองการถดถอย" ของเขา
Richard Hardy

2
@RichardHardy +1 ฉันจะดีใจถ้า FrankHarrell จะแกว่งและแสดงความคิดเห็นหรือคำตอบ :)
Alexis

5
ฉันมีคำพูดใหม่ที่พูดถึงเรื่องนี้ Bottom line: lasso มีความน่าจะเป็นต่ำในการเลือกตัวแปร "ถูกต้อง" สไลด์อยู่ที่fharrell.com/talk/stratos19
Frank Harrell

4
เกี่ยวข้องกับ "Bottom line: lasso มีความน่าจะเป็นต่ำในการเลือกตัวแปร" ถูกต้อง ": มีส่วนในหัวข้อเดียวกันในการเรียนรู้ทางสถิติด้วย Sparsity ( web.stanford.edu/~hastie/StatLearnSparsity_files/ ...... )11.4.1 Variable-Selection Consistency for the Lasso
Adrian

2
ยังเกี่ยวข้องกับ "Bottom line: lasso มีความน่าจะเป็นต่ำในการเลือกตัวแปร 'ถูกต้อง': ดูstatweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdfกรณีศึกษา 1 และ 2
Adrian

คำตอบ:


3

การตีความความน่าจะเป็นของการแสดงออกบ่อยครั้งของความน่าจะเป็น, ค่า p-etcetera สำหรับโมเดล LASSO และการถดถอยแบบขั้นตอนไม่ถูกต้อง

การแสดงออกเหล่านั้นประเมินค่าความน่าจะเป็นสูงเกินไป เช่นช่วงความมั่นใจ 95% สำหรับพารามิเตอร์บางตัวควรจะบอกว่าคุณมีความน่าจะเป็น 95% ที่วิธีการนี้จะส่งผลให้เกิดช่วงเวลาด้วยตัวแปรตัวแบบที่แท้จริงภายในช่วงเวลานั้น

อย่างไรก็ตามโมเดลที่ได้รับการติดตั้งนั้นไม่ได้เป็นผลมาจากสมมติฐานเดียวทั่วไปและเราเลือกที่จะเก็บเชอร์รี่ (เลือกจากรุ่นอื่น ๆ ที่เป็นไปได้) เมื่อเราทำการถดถอยแบบขั้นตอนหรือ LASSO ถดถอย


  1. มันมีเหตุผลเล็กน้อยที่จะประเมินความถูกต้องของพารามิเตอร์โมเดล (โดยเฉพาะเมื่อเป็นไปได้ว่าโมเดลนั้นไม่ถูกต้อง)

    ในตัวอย่างด้านล่างอธิบายในภายหลังแบบจำลองนั้นเหมาะกับผู้ลงทะเบียนหลายคน สิ่งนี้ทำให้เป็นไปได้ว่ามีการเลือก regressor ใกล้เคียง (ซึ่งมีความสัมพันธ์กันอย่างมาก) ในแบบจำลองแทนที่จะเป็นแบบที่อยู่ในแบบจำลองอย่างแท้จริง ความสัมพันธ์ที่แข็งแกร่งทำให้ค่าสัมประสิทธิ์มีข้อผิดพลาด / ความแปรปรวนจำนวนมาก (เกี่ยวข้องกับเมทริกซ์(XTX)-1 )

    อย่างไรก็ตามความแปรปรวนสูงนี้เนื่องจากความหลากหลายของสีไม่ได้ 'เห็น' ในการวินิจฉัยเช่นค่า p หรือค่าความคลาดเคลื่อนมาตรฐานของสัมประสิทธิ์เนื่องจากสิ่งเหล่านี้ขึ้นอยู่กับเมทริกซ์การออกแบบขนาดเล็กXมีregressors น้อยกว่า (และไม่มีวิธีการที่ตรงไปตรงมาในการคำนวณสถิติเหล่านั้นสำหรับ LASSO)

    ตัวอย่าง: กราฟด้านล่างซึ่งแสดงผลลัพธ์ของแบบจำลองของเล่นสำหรับสัญญาณบางอย่างที่เป็นผลรวมเชิงเส้นของเส้นโค้ง Gaussian 10 เส้น (เช่นนี้อาจคล้ายกับการวิเคราะห์ทางเคมีที่สัญญาณสำหรับสเปกตรัมถือว่าเป็นผลรวมเชิงเส้นของ องค์ประกอบหลายอย่าง) สัญญาณของ 10 เส้นโค้งประกอบไปด้วยแบบจำลองของส่วนประกอบ 100 ชิ้น (เส้นโค้งแบบเกาส์ที่มีค่าเฉลี่ยต่างกัน) โดยใช้ LASSO สัญญาณมีการประมาณที่ดี (เปรียบเทียบเส้นโค้งสีแดงและสีดำซึ่งอยู่ใกล้พอสมควร) แต่ค่าสัมประสิทธิ์พื้นฐานที่เกิดขึ้นจริงนั้นไม่ได้รับการประเมินที่ดีและอาจผิดพลาดได้อย่างสมบูรณ์ (เปรียบเทียบแถบสีแดงและสีดำกับจุดที่ไม่เหมือนกัน) ดูเพิ่มเติม 10 ค่าสัมประสิทธิ์ล่าสุด:

                  91     91     92     93     94     95     96     97     98     99     100
     true model   0      0      0      0      0      0      0      142.8  0      0      0
     fitted       0      0      0      0      0      0      129.7  6.9    0      0      0

    แบบจำลอง LASSO เลือกค่าสัมประสิทธิ์ที่ใกล้เคียงกันมาก แต่จากมุมมองของสัมประสิทธิ์ตัวเองมันหมายถึงข้อผิดพลาดขนาดใหญ่เมื่อค่าสัมประสิทธิ์ที่ไม่ควรเป็นศูนย์คาดว่าจะเป็นศูนย์และค่าสัมประสิทธิ์ข้างเคียงที่ควรเป็นศูนย์ประมาณนั้น ไม่ใช่ศูนย์ ช่วงความเชื่อมั่นใด ๆ สำหรับค่าสัมประสิทธิ์จะทำให้รู้สึกน้อยมาก

    LASSO ที่เหมาะสม

    ตัวอย่าง lasso / glmnet

    ฟิตติ้งแบบขั้นตอน

    ในการเปรียบเทียบสามารถใช้เส้นโค้งเดียวกันกับอัลกอริทึมแบบขั้นตอนที่นำไปสู่ภาพด้านล่าง (มีปัญหาคล้ายกันที่สัมประสิทธิ์อยู่ใกล้ แต่ไม่ตรงกัน)

    ตัวอย่าง nnls

  2. แม้ว่าคุณจะพิจารณาความถูกต้องของเส้นโค้ง (แทนที่จะเป็นพารามิเตอร์ซึ่งในจุดก่อนหน้านี้มีความชัดเจนว่ามันไม่มีเหตุผล) คุณก็ต้องจัดการกับการมีน้ำหนักเกิน เมื่อคุณทำโพรซีเดอร์ที่เหมาะสมกับ LASSO แล้วคุณจะใช้ข้อมูลการฝึกอบรม (เพื่อให้พอดีกับโมเดลที่มีพารามิเตอร์ต่างกัน) และทดสอบ / ตรวจสอบข้อมูล (เพื่อปรับแต่ง / ค้นหาว่าเป็นพารามิเตอร์ที่ดีที่สุด) แต่คุณควรใช้ชุดแยกต่างหากชุดที่สามของข้อมูลการทดสอบ / การตรวจสอบเพื่อหาประสิทธิภาพของข้อมูล

    p-value หรือสิ่ง simular จะไม่ทำงานเพราะคุณกำลังทำงานกับรุ่นที่ปรับจูนซึ่งเป็นการเก็บเชอร์รี่และแตกต่างกัน (องศาที่ใหญ่กว่ามากอิสระ) จากวิธีการติดตั้งเชิงเส้นปกติ


ประสบปัญหาเดียวกันถดถอยแบบขั้นตอนหรือไม่

R2

ฉันคิดว่าเหตุผลหลักในการใช้ LASSO แทนการถดถอยแบบขั้นตอนคือ LASSO อนุญาตให้เลือกพารามิเตอร์โลภน้อยลงซึ่งได้รับอิทธิพลจากความหลากหลายทางสัมพันธภาพน้อยลง (ความแตกต่างระหว่าง LASSO และ stepwise: ความเหนือกว่าของ LASSO มากกว่าการเลือกไปข้างหน้า / กำจัดไปข้างหลังในแง่ของข้อผิดพลาดการตรวจสอบความถูกต้องของการตรวจสอบไขว้ของรุ่น )


รหัสสำหรับภาพตัวอย่าง

# settings
library(glmnet)
n <- 10^2        # number of regressors/vectors
m <- 2         # multiplier for number of datapoints
nel <- 10        # number of elements in the model
set.seed(1)   
sig <- 4
t <- seq(0,n,length.out=m*n)

# vectors
X <- sapply(1:n, FUN <- function(x) dnorm(t,x,sig))

# some random function with nel elements, with Poisson noise added
par <- sample(1:n,nel)
coef <- rep(0,n)
coef[par] <- rnorm(nel,10,5)^2
Y <- rpois(n*m,X %*% coef)

# LASSO cross validation
fit <- cv.glmnet(X,Y, lower.limits=0, intercept=FALSE, 
                 alpha=1, nfolds=5, lambda=exp(seq(-4,4,0.1)))
plot(fit$lambda, fit$cvm,log="xy")
plot(fit)
Yfit <- (X %*% coef(fit)[-1])

# non negative least squares 
# (uses a stepwise algorithm or should be equivalent to stepwise)
fit2<-nnls(X,Y)


# plotting
par(mgp=c(0.3,0.0,0), mar=c(2,4.1,0.2,2.1))
layout(matrix(1:2,2),heights=c(1,0.55))


plot(t,Y,pch=21,col=rgb(0,0,0,0.3),bg=rgb(0,0,0,0.3),cex=0.7,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",bty="n")      
#lines(t,Yfit,col=2,lwd=2)                        # fitted mean
lines(t,X %*% coef,lwd=2)                        # true mean
lines(t,X %*% coef(fit2), col=3,lwd=2)           # 2nd fit

  # add coefficients in the plot
for (i in 1:n) {
  if (coef[i] > 0) {
    lines(c(i,i),c(0,coef[i])*dnorm(0,0,sig))
    points(i,coef[i]*dnorm(0,0,sig), pch=21, col=1,bg="white",cex=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(c(i,i),c(0,coef(fit)[i+1])*dnorm(0,0,sig),col=2)
#    points(i,coef(fit)[i+1]*dnorm(0,0,sig), pch=21, col=2,bg="white",cex=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(c(i,i),c(0,coef(fit2)[i+1])*dnorm(0,0,sig),col=3)
    points(i,coef(fit2)[i+1]*dnorm(0,0,sig), pch=21, col=3,bg="white",cex=1)
  }

}

#Arrows(85,23,85-6,23+10,-0.2,col=1,cex=0.5,arr.length=0.1)
#Arrows(86.5,33,86.5-6,33+10,-0.2,col=2,cex=0.5,arr.length=0.1)
#text(85-6,23+10,"true coefficient", pos=2, cex=0.7,col=1)
#text(86.5-6,33+10, "fitted coefficient", pos=2, cex=0.7,col=2)

text(0,50, "signal versus position\n true mean (black), fitted with nnls (green)", cex=1,col=1,pos=4, font=2)



plot(-100,-100,pch=21,col=1,bg="white",cex=0.7,type="l",lwd=2,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",
     ylim=c(0,max(coef(fit)))*dnorm(0,0,sig),xlim=c(0,n),bty="n") 
#lines(t,X %*% coef,lwd=2,col=2)      

for (i in 1:n) {
  if (coef[i] > 0) {
    lines(t,X[,i]*coef[i],lty=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(t,X[,i]*coef(fit)[i+1],col=2,lty=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(t,X[,i]*coef(fit2)[i+1],col=3,lty=1)
  }

}

text(0,33, "illustration of seperate components/curves", cex=1,col=1,pos=4, font=2)

+1 ขอบคุณ Martjin Wterings คุณสามารถขยายกราฟเล็กน้อยได้หรือไม่? สิ่งที่ปรากฏบนแกนสีอะไรแทน ฯลฯ ?
Alexis

ที่จริงแล้วกราฟไม่ใช่กรณีของ LASSO อย่างไรก็ตามมันเป็นตัวอย่างว่าแบบจำลองอาจเป็นผลรวมขององค์ประกอบหลายอย่างเช่นเส้นโค้งแบบเกาส์ (ซึ่งเส้นโค้งที่มีค่าเฉลี่ยแตกต่างกันเล็กน้อยมีความสัมพันธ์กันมาก) และการเปลี่ยนแปลงในค่าเฉลี่ยขององค์ประกอบเหล่านั้นหมายถึงการเปลี่ยนแปลงใหญ่สำหรับสัมประสิทธิ์ แต่ไม่มากสำหรับเส้นโค้ง
Sextus Empiricus

1
แถบคือค่าของค่าสัมประสิทธิ์สำหรับความจริงและรูปแบบการติดตั้ง นี่คือภาพที่ฉันจำได้ว่าหลักการนี้เกิดขึ้น ฉันจะทำตัวอย่างด้วยตัวเองซึ่งอาจแสดงให้เห็นชัดเจนยิ่งขึ้น (ฉันสงสัยว่า LASSO ซึ่งเป็นคนโลภน้อยกว่าอาจทำงานได้ดีขึ้นในการเป็นตัวแทนของสัมประสิทธิ์ที่แท้จริง)
Sextus Empiricus

0

ฉันมีคำพูดใหม่ที่พูดถึงเรื่องนี้ Bottom line: lasso มีความน่าจะเป็นต่ำในการเลือกตัวแปร "ถูกต้อง" สไลด์อยู่ที่ http://fharrell.com/talk/stratos19

- Frank Harrell

เกี่ยวข้องกับ "Bottom line: lasso มีความน่าจะเป็นต่ำในการเลือกตัวแปร" ถูกต้อง ": มีส่วนในหัวข้อเดียวกันในการเรียนรู้ทางสถิติด้วย Sparsity ( https://web.stanford.edu/~hastie/StatLearnSparsity_files/SLS_corrected_1 4.16.pdf ) 11.4.1 Variable-Selection Consistency for the Lasso

- เอเดรียน

ที่เกี่ยวข้องกับ "Bottom line: lasso มีความน่าจะเป็นต่ำในการเลือกตัวแปร 'ถูกต้อง': ดู https://statweb.stanford.edu/~candes/teaching/stats300c/Lectures/Lecture24.pdf กรณีศึกษา 1 และ 2

- เอเดรียน


1
ฉันได้คัดลอกความคิดเห็นเหล่านี้เป็นคำตอบของวิกิชุมชนเพราะมีคำตอบสำหรับคำถามนี้มากหรือน้อย เรามีช่องว่างอย่างมากระหว่างคำตอบและคำถาม อย่างน้อยส่วนหนึ่งของปัญหาคือมีการตอบคำถามในความคิดเห็น: หากความคิดเห็นที่ตอบคำถามนั้นเป็นคำตอบแทนเราจะมีคำถามที่ยังไม่ได้ตอบน้อยกว่านี้
mkt - Reinstate Monica

1
เหล่านี้เป็นความคิดเห็นและไม่รวมถึงคำตอบตามมาตรฐานของ CV (เช่นลิงก์ไม่ใช่คำตอบ) ยิ่งไปกว่านั้น: ฉันไม่เห็นด้วยอย่างยิ่งกับการตั้งคำถามที่ถูกต้องสมบูรณ์แบบลงในวิกิชุมชนเพราะคุณไม่พอใจกับอัตราที่ตอบคำถาม
อเล็กซิส

1
อีกทั้ง: ฉันได้รับการศึกษาเกี่ยวกับวิกิชุมชนและคำตอบวิกิชุมชนและฉันก็ไม่เห็นด้วยที่นั่น (แม้ว่าฉันยังไม่คิดว่านี่เป็นคำตอบ :)
Alexis

1
@Alexis ยุติธรรมเพียงพอ - ฉันคิดว่ามันเป็นพื้นที่สีเทาตัวเอง แต่อาจมีการตัดสินผิด
mkt - Reinstate Monica

1
เราทุกคนกำลังเรียนรู้ :)
อเล็กซิส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.