วิธีจัดการกับค่าที่หายไปเพื่อเตรียมข้อมูลสำหรับการเลือกคุณสมบัติด้วย LASSO


11

สถานการณ์ของฉัน:

  • ตัวอย่างขนาดเล็ก: 116
  • ตัวแปรผลลัพธ์ไบนารี
  • รายการตัวแปรอธิบายยาวแบบยาว: 44
  • ตัวแปรอธิบายไม่ได้มาจากด้านบนของหัวของฉัน ทางเลือกของพวกเขาขึ้นอยู่กับวรรณกรรม
  • กรณีส่วนใหญ่ในตัวอย่างและตัวแปรส่วนใหญ่มีค่าขาดหายไป

เลือกวิธีการเลือกคุณลักษณะ: LASSO

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

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

UPDATE1: มันชัดเจนจากคำตอบบางส่วนด้านล่างที่ฉันได้จัดการกับปัญหาพื้นฐานเพิ่มเติมก่อนที่จะพิจารณาวิธีการใส่ร้าย ฉันต้องการที่จะเพิ่มคำถามใหม่เกี่ยวกับที่นี่ ในคำตอบที่แนะนำการเข้ารหัสเป็นค่าคงที่และการสร้างตัวแปรใหม่เพื่อจัดการกับค่า 'ไม่สามารถใช้งานได้' และการใช้กลุ่ม lasso:

  • คุณจะบอกว่าถ้าฉันใช้กลุ่ม LASSO ฉันจะสามารถใช้วิธีการที่แนะนำให้ผู้ทำนายต่อเนื่องกับผู้ทำนายหมวดหมู่ได้หรือไม่ ถ้าเป็นเช่นนั้นฉันคิดว่ามันจะเทียบเท่ากับการสร้างหมวดหมู่ใหม่ - ฉันระแวงว่านี่อาจทำให้เกิดอคติ
  • ไม่มีใครรู้ว่าแพ็คเกจ glmnet ของ R รองรับกลุ่ม LASSO หรือไม่? ถ้าไม่มีใครจะแนะนำคนอื่นที่ร่วมกับการถดถอยโลจิสติก? ตัวเลือกหลายตัวที่กล่าวถึงกลุ่ม LASSO สามารถพบได้ในที่เก็บข้อมูล CRAN คำแนะนำใด ๆ ที่เหมาะสมที่สุดสำหรับกรณีของฉัน บางที SGL

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

OBS: ฉันไม่ใช่นักสถิติ


(1) วิธีที่ดีที่สุดในการกำหนดขึ้นอยู่กับสัดส่วนและรูปแบบของค่าที่หายไปความสัมพันธ์ระหว่างตัวแปรและสมมติฐานที่คุณเตรียมไว้เพื่อทำเกี่ยวกับสาเหตุของค่าที่ขาดหายไป (2) วิธีการใส่ร้ายใด ๆ สามารถใช้เพื่อให้อินพุตกับ LASSO; ความยากในการประเมินว่าการใส่ร้ายมีผลต่อผลลัพธ์อย่างไร ฉันไม่รู้ว่าจะรวมการใส่ความหลากหลายกับ LASSO (ไม่ต้องสงสัยเลยว่าใคร) แต่การเปรียบเทียบผลลัพธ์ที่ไม่เป็นทางการจากการใส่ความคิดที่แตกต่างกัน
Scortchi - Reinstate Monica

@Scortchi: ค่าที่หายไปส่วนใหญ่อยู่ในหมวดหมู่ 'ไม่สามารถใช้งานได้' เช่นในตัวแปร 'อายุของผู้หญิงผู้ใหญ่ในบ้าน' กรณีที่ผู้ชายผู้ใหญ่เป็นม่าย ที่จริงแล้วฉันคิดว่าฉันจำเป็นต้องย้อนกลับไปที่นี่: ฉันควรปฏิบัติกับค่า 0 ในตัวแปรต่อเนื่องว่าเป็นค่าที่หายไปหรือไม่ เช่นการศึกษา 0 ปีสมาชิกในครัวเรือนอายุระหว่าง 14 ถึง 60 ปี 0 คน
งงงวย

มันยากที่จะจินตนาการถึงสถานการณ์ที่คุณต้องการปฏิบัติต่อสิ่งนั้นในฐานะที่เป็นความจริงที่ไม่รู้จักเกี่ยวกับผู้หญิงที่ขาดไปแทนที่จะเป็นความจริงที่รู้จักเกี่ยวกับบ้าน คำถามเกี่ยวกับเลขศูนย์นั้นยากที่จะเข้าใจ: คุณกำลังถามว่าเช่นไม่มีปีของการศึกษาเป็นค่าที่ไม่น่าเชื่อหรืออาจใช้ 0 เป็นรหัสค่าที่หายไป? (แล้วว่าฉันจะรู้หรือไม่?) มีแน่นอนไม่มีทั่วไปเหตุผลที่จะรักษาเป็น 0 บ่งชี้ missingness
Scortchi - Reinstate Monica

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

คุณสามารถเขียนโค้ดเป็นค่าคงที่ & แนะนำตัวแปรตัวบ่งชี้สำหรับสถานะ / ไม่มี (& ใช้กลุ่ม LASSO) ไม่มีเหตุผลว่าทำไม LASSO หรือโปรแกรมการถดถอยอื่น ๆ ควรจัดการกับค่าศูนย์สำหรับการทำนายผิด [โปรดอย่าใช้วิธีที่ผิด แต่นี่เป็นคำถามพื้นฐานที่แนะนำว่าหากนี่เพื่อความสนุกคุณอาจต้องการเริ่มต้นด้วยปัญหาที่ง่ายกว่าหรือถ้าเป็นจริงคุณอาจต้องการปรึกษานักสถิติ]
Scortchi - Reinstate Monica

คำตอบ:


11

เมื่อตัวทำนายต่อเนื่องมีค่า 'ไม่สามารถใช้งานได้' มักจะมีประโยชน์ในการเขียนโค้ดโดยใช้สองตัวแปรx

x1={cwhen x is not applicablexotherwise

เมื่อคงที่ &c

x2={1when x is not applicable0otherwise

สมมติว่าตัวทำนายเชิงเส้นสำหรับการตอบสนองนั้นได้รับจาก

η=β0+β1x1+β2x2+

ซึ่งแก้ไขให้

η=β0+β1x1+

เมื่อถูกวัดหรือถึงx

η=β0+β1c+β2+

เมื่อ x คือ 'ไม่เกี่ยวข้อง' ตัวเลือกของนั้นเป็นแบบสุ่มและไม่ส่งผลกระทบต่อการประมาณการของการสกัดกั้นหรือความชัน ; อธิบายถึงผลกระทบของ 'เป็น s 'ไม่ได้บังคับ' เมื่อเทียบกับเมื่อ Ccβ0β1β2xx=c

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

การใช้ LASSO แนะนำสองปัญหา:

  1. ตัวเลือกของมีผลต่อผลลัพธ์เนื่องจากปริมาณการหดตัวที่ใช้นั้นขึ้นอยู่กับขนาดของการประมาณค่าสัมประสิทธิ์c
  2. คุณต้องตรวจสอบให้แน่ใจว่า &นั้นมีทั้งที่อยู่ในหรือออกจากรุ่นที่เลือกx1x2

คุณสามารถแก้ทั้งสองเหล่านี้โดยใช้ค่อนข้างเชือกกลุ่มกับกลุ่มประกอบด้วย &ที่: -norm โทษถูกนำไปใช้ -norm ของ orthonormalized เมทริกซ์ขวา] (นักทำนายหมวดหมู่เป็นเด็กโปสเตอร์สำหรับกลุ่ม LASSO - คุณเพียงแค่เขียนรหัสว่า 'ไม่เกี่ยวข้อง' เป็นระดับแยกต่างหากซึ่งมักทำในการถดถอยแบบไม่เสแสร้ง) ดูMeier et al (2008), JRSS B, 70 , 1, " กลุ่มเชือกสำหรับถดถอยโลจิสติ"และgrplassox1x2L1L2[x1 x2]


ไม่มีใครรู้ว่าแพ็คเกจ glmnet ของ R รองรับกลุ่ม LASSO หรือไม่? ถ้าไม่มีใครจะแนะนำคนอื่นที่ร่วมกับการถดถอยโลจิสติก? ตัวเลือกหลายตัวที่กล่าวถึงกลุ่ม LASSO สามารถพบได้ในที่เก็บข้อมูล CRAN คำแนะนำใด ๆ ที่เหมาะสมที่สุดสำหรับกรณีของฉัน บางที SGL
งงงวย

ดังนั้นคุณจะบอกว่าถ้าฉันใช้กลุ่ม LASSO ฉันจะสามารถใช้วิธีที่คุณแนะนำให้ผู้ทำนายต่อเนื่องกับผู้ทำนายหมวดหมู่ด้วย?
งงงวย

5

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

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


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

1
มีแพ็คเกจ R miที่อาจช่วยคุณได้
shadowtalker

2
คุณสามารถเรียกใช้ Stan ถึง R (ดูRStan )
Scortchi - Reinstate Monica

แพคเกจเพิ่มเติมใส่ร้ายหลาย R รวมและAmelia mice
Sycorax พูดว่า Reinstate Monica

0

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


นี่คือ SAS PROC CATREGฉันคาดเดาใช่ไหม
Ben Bolker

@JKP: ฉันเจอคำสั่งนี้จริง ๆ แล้ว อย่างไรก็ตามการพิจารณาว่าตัวแปร outome ของฉันคือเลขฐานสองฉันถือว่าการถดถอยแบบลอจิสจะเหมาะสมกว่าการถดถอยแบบหมวดหมู่ (CATREG) - ฉันถูกไหม? นอกจากนี้ตัวเลือกใน CATREG นั้นค่อนข้าง จำกัด - คุณสามารถเลือกได้เฉพาะระหว่างการยกเว้นกรณีเท่านั้นแทนที่ค่าที่หายไปด้วยค่าเฉลี่ยหรือสร้างหมวดหมู่พิเศษ
งงงวย

0

คุณอาจพิจารณาวิธีการง่าย ๆ ที่นำเสนอในเอกสารต่อไปนี้:

Loh, PL, & Wainwright, MJ (2011) การถดถอยสูงมิติกับมีเสียงดังและข้อมูลที่หายไป: ค้ำประกันพิสูจน์ได้ด้วยไม่ใช่นูน ในความก้าวหน้าในระบบประมวลผลข้อมูลประสาท (หน้า 2726-2734)

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