จะแสดงผลลัพธ์ของ Lasso โดยใช้ glmnet ได้อย่างไร


40

ฉันต้องการค้นหาตัวทำนายสำหรับตัวแปรพึ่งพาต่อเนื่องจากชุดของตัวแปรอิสระ 30 ตัว ฉันใช้ Lasso regression ตามที่นำมาใช้ในแพ็คเกจglmnetใน R ต่อไปนี้เป็นตัวอย่างรหัสจำลอง

# generate a dummy dataset with 30 predictors (10 useful & 20 useless) 
y=rnorm(100)
x1=matrix(rnorm(100*20),100,20)
x2=matrix(y+rnorm(100*10),100,10)
x=cbind(x1,x2)

# use crossvalidation to find the best lambda
library(glmnet)
cv <- cv.glmnet(x,y,alpha=1,nfolds=10)
l <- cv$lambda.min
alpha=1

# fit the model
fits <- glmnet( x, y, family="gaussian", alpha=alpha, nlambda=100)
res <- predict(fits, s=l, type="coefficients")
res 

คำถามของฉันคือวิธีตีความผลลัพธ์:

  • ถูกต้องหรือไม่ที่จะบอกว่าในผลลัพธ์สุดท้ายตัวทำนายทั้งหมดที่แสดงสัมประสิทธิ์ที่แตกต่างจากศูนย์นั้นสัมพันธ์กับตัวแปรตามหรือไม่

  • นั่นจะเป็นรายงานที่เพียงพอในบริบทของการตีพิมพ์วารสารหรือไม่? หรือเป็นที่คาดว่าจะให้สถิติทดสอบสำหรับความสำคัญของสัมประสิทธิ์? (บริบทคือพันธุศาสตร์ของมนุษย์)

  • การคำนวณค่า p หรือสถิติทดสอบอื่น ๆ มีความสมเหตุสมผลหรือไม่ มันจะเป็นไปได้ยังไง? มีการใช้โพรซีเดอร์ใน R หรือไม่?

  • พล็อตการถดถอยแบบง่าย (จุดข้อมูลถูกพล็อตแบบพอดี) สำหรับตัวทำนายทุกตัวเป็นวิธีที่เหมาะสมในการมองเห็นข้อมูลนี้หรือไม่?

  • บางทีใครบางคนสามารถให้ตัวอย่างง่ายๆของบทความที่ตีพิมพ์แสดงการใช้ Lasso ในบริบทของข้อมูลจริงและวิธีการรายงานในวารสาร?


เหตุใดคุณจึงเรียกใช้ glmnet ภายใต้ส่วน "พอดีรุ่น" คุณไม่สามารถใช้cvสำหรับขั้นตอนการทำนายด้วยหรือไม่
bourbaki4481472

คำตอบ:


22

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

กระดาษนี้ซึ่งรวมถึงหนึ่งในผู้เขียนของ glmnet นำเสนอการวิเคราะห์ที่ใช้ glmnet (ดูโดยเฉพาะ: บทนำ, ส่วน 2.3 และ 4.3 และ 4.3 และตาราง 4 และ 5) ดูราวกับว่าพวกเขาไม่ได้คำนวณค่า P โดยตรงจากรุ่น glmnet พวกเขาคำนวณค่า P สองประเภทที่แตกต่างกันโดยใช้วิธีอื่น แต่ดูเหมือนว่าพวกเขาจะไม่ไว้วางใจทั้งสองอย่าง

ฉันไม่แน่ใจ 100% ว่าสิ่งที่คุณแนะนำในแง่ของวิธีการวางแผน แต่ฉันคิดว่ามันฟังดูสมเหตุสมผล

หวังว่าจะช่วย


1
สวัสดีเดวิด! ขอบคุณสำหรับคำตอบ. มีอะไรจะพูดกับการใช้ LASSO สำหรับการเลือกตัวทำนายที่มีค่าสัมประสิทธิ์ที่ไม่ใช่ศูนย์แล้วใช้เฉพาะตัวทำนายเหล่านั้นในตัวแบบการถดถอยเชิงเส้นเพื่อให้ได้ค่า p เกี่ยวกับนัยสำคัญของผู้ทำนาย เช่นกระดาษนี้: ncbi.nlm.nih.gov/pmc/articles/PMC3412288
jokel

4
@ jokel ฉันคิดว่าสิ่งที่คุณแนะนำคือกรณีพิเศษของ "เชือกบ่วงผ่อนคลาย" และมันสามารถทำงานได้ดีมากสำหรับวัตถุประสงค์บางอย่าง ฉันไม่แน่ใจว่าคุณสามารถเชื่อถือค่า p ที่คุณได้รับจากขั้นตอนที่คุณอธิบายเนื่องจากสถิติ F หรือสถิติ t ของคุณจะไม่ "รู้" เกี่ยวกับขั้นตอนการเลือกตัวแปรที่คุณทำและ อัตราความผิดพลาด Type-I จะสูงขึ้น วิธีหนึ่งที่จะคิดเกี่ยวกับสิ่งนี้: จำนวนองศาอิสระที่ถูกต้องสำหรับสถิติ F คืออะไร? จำนวนตัวแปรทั้งหมดในการถดถอย LASSO? จำนวนของตัวแปรในการถดถอยครั้งที่สอง? มีบางอย่างในระหว่าง?
David J. Harris

จริง - ดังนั้นสิ่งนี้ดูเหมือนจะไม่ถูกต้องเช่นกัน คุณมีความคิดอื่น ๆ วิธีหาตัวทำนายที่สำคัญจากตัวแปรอิสระ 300 ตัว (n >> p เหมือนในตัวอย่างด้านบน) หรือไม่? ดังนั้นในที่สุดฉันก็จะสามารถอ้างสิทธิ์ได้: "ตัวทำนาย X เกี่ยวข้องกับตัวแปรตาม Y อย่างมีนัยสำคัญ"?
jokel

คำตอบของฉันสำหรับทุกสิ่งที่ฉันไม่ทราบวิธีการคำนวณคือการสุ่ม ความเป็นไปได้อย่างหนึ่งคือการสุ่มแถวของชุดข้อมูลของคุณใหม่ (เช่น bootstrapping) และเรียกใช้การวิเคราะห์ LASSO ซ้ำ ๆ ยิ่งตัวแปรรวมอยู่ในโมเดลบ่อยเท่าไรก็ยิ่งมีความสำคัญเท่านั้น ตัวเลือกที่ดียิ่งขึ้นอาจเกี่ยวข้องกับการสุ่มแถวและคอลัมน์ซึ่งอาจช่วยหลีกเลี่ยงเอฟเฟกต์ "กำบัง" Breiman แนะนำบางสิ่งบางอย่างในหลอดเลือดดำที่คล้ายกันใน [pdf นี้] (ใกล้รูปที่ 2) ( Faculty.smu.edu/tfomby/eco5385/lecture/ ...... )
David J. Harris

9

ฉันแค่อยากจะชี้ให้เห็นว่ามีงานล่าสุดพยายามพัฒนาสถิติการทดสอบโดยเฉพาะสำหรับ LASSO ซึ่งคำนึงถึงการเลือกคุณสมบัติที่กำลังดำเนินการ:

การทดสอบที่สำคัญสำหรับบ่วงบาศ Richard Lockhart, Jonathan Taylor, Ryan J. Tibshirani, Robert Tibshirani http://arxiv.org/abs/1301.7161

ฉันยังไม่เคยเห็นสิ่งนี้ใช้ในงานที่นำไปใช้ แต่กระนั้นก็มีการใช้ bootstrapping อย่างแน่นอน


0

เกี่ยวกับการอนุมานสำหรับ LASSO หรือโมเดลยืดหยุ่นสุทธิดูที่ CRAN แพ็คเกจselectiveInferenceและhdiพวกเขาทำอย่างนั้นในขณะที่คำนึงถึงขั้นตอนการเลือกตัวแปร!

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