การแปลงแปลงการติดตามตัวแปร LASSO


15

ฉันยังใหม่กับglmnetแพ็คเกจและฉันก็ยังไม่แน่ใจว่าจะตีความผลลัพธ์ได้อย่างไร ใครช่วยกรุณาอ่านพล็อตการติดตามต่อไปนี้ได้ไหม

กราฟได้มาจากการรันสิ่งต่อไปนี้:

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


20

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

βล.assโอ=argmin [RSS(β)+λ* * * *L1-นอร์ม(β)]

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

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

พล็อตด้านซ้ายและพล็อตทางด้านขวานั้นแสดงให้คุณเห็นในแบบเดียวกัน


2
คำตอบที่เรียบร้อยมากขอบคุณ! เป็นไปได้หรือไม่ที่จะอนุมาน "ตัวทำนายที่ดีที่สุด" จากกราฟด้านบนนั่นคือตัวแบบสุดท้าย?
Mayou

4
ไม่คุณจะต้องตรวจสอบข้ามหรือตรวจสอบกระบวนการอื่น ๆ มันจะบอกคุณว่าค่าใดของบรรทัดฐาน L1 (หรือเทียบเท่าซึ่งบันทึก (แลมบ์ดา)) ให้รูปแบบที่มีความสามารถในการทำนายที่ดีที่สุด
JAW

11
หากคุณพยายามกำหนดตัวทำนายที่แข็งแกร่งที่สุดของคุณคุณสามารถตีความพล็อตเรื่องนี้เป็นหลักฐานว่าตัวแปรที่เข้าสู่แบบจำลองนั้นเร็วที่สุดนั้นเป็นตัวทำนายที่ดีที่สุด หากคุณต้องการ "รุ่นที่ดีที่สุด" โดยทั่วไปจะพบได้จากการตรวจสอบข้าม วิธีการทั่วไปสำหรับการบรรลุนี้โดยใช้แพคเกจ glmnet ถูกแนะนำให้คุณที่นี่: stats.stackexchange.com/a/68350/8451 ฉันขอแนะนำให้คุณอ่านบท Lasso สั้น ๆ ใน ESLII (3.4.2 และ 3.4.3) ซึ่งสามารถดาวน์โหลดได้ฟรี: www-stat.stanford.edu/~tibs/ElemStatLearn
David Marx

@David Marx ตัวเลขที่อยู่ด้านบนสุดของพล็อตหมายถึงอะไร วิธีการเลือกรุ่นที่ดีที่สุดผ่านการตรวจสอบความถูกต้อง
jeza

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