วิธีจัดการกับความหลากสีเมื่อทำการเลือกตัวแปร?


28

ฉันมีชุดข้อมูลที่มีตัวแปรอิสระต่อเนื่อง 9 ตัว ฉันกำลังพยายามเลือกระหว่างตัวแปรเหล่านี้เพื่อให้พอดีกับแบบจำลองกับตัวแปรเปอร์เซ็นต์ (ขึ้นอยู่) เดียว, Score. น่าเสียดายที่ฉันรู้ว่าจะมีความร่วมมือกันอย่างจริงจังระหว่างตัวแปรหลายตัว

ฉันได้ลองใช้stepAIC()ฟังก์ชั่นใน R เพื่อเลือกตัวแปร แต่วิธีการนั้นดูแปลกไปตามลำดับที่ตัวแปรถูกแสดงในสมการ ...

นี่คือรหัส R ของฉัน (เนื่องจากเป็นข้อมูลเปอร์เซ็นต์ฉันใช้การแปลง logit สำหรับคะแนน):

library(MASS)
library(car)

data.tst = read.table("data.txt",header=T)
data.lm = lm(logit(Score) ~ Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 +
             Var8 + Var9, data = data.tst)

step = stepAIC(data.lm, direction="both")
summary(step)

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

อะไรคือวิธีที่มีประสิทธิภาพมากขึ้น (และแย้งน้อยกว่า) ในการปรับแบบจำลองที่นี่? ฉันไม่ได้กำหนดตายตัวโดยใช้การถดถอยเชิงเส้น: สิ่งเดียวที่ฉันต้องการคือสามารถเข้าใจได้ว่าตัวแปรใดใน 9 ตัวที่ขับเคลื่อนการเปลี่ยนแปลงในScoreตัวแปรอย่างแท้จริง โดยเฉพาะอย่างยิ่งนี่จะเป็นวิธีการบางอย่างที่คำนึงถึงความเป็นไปได้ที่จะเกิด collinearity ใน 9 ตัวแปร


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

4
@guest: เชือกไม่ทำงานโดยเฉพาะอย่างยิ่งเมื่อมี collinearity ที่แข็งแกร่งโดยเฉพาะอย่างยิ่งเกี่ยวกับปัญหาของการเลือกรูปแบบ
พระคาร์ดินัล

2
@cardinal, lasso ไม่เป็นไร แต่ถ้ามีตัวแปรหลายตัวที่มีความสัมพันธ์กันมันจะมีแนวโน้มที่จะเลือกเพียงหนึ่งในนั้นซึ่งเป็นสาเหตุที่ฉันแนะนำให้ดูที่ชุดของตัวแปร collinear สูง การตัดสินใจใช้บางสิ่งที่ซับซ้อนกว่า 'ค่าเริ่มต้น' นี้จะต้องมีการประเมินยูทิลิตี้
แขกที่เข้าพัก

2
คุณอาจต้องการดูฟังก์ชัน bicreg {package BMA} โปรดทราบว่าคุณต้องมีชุดข้อมูลแบบสมบูรณ์เพื่อให้ทำงานได้อย่างถูกต้อง ฉันคิดว่ามันมีประโยชน์อย่างยิ่งสำหรับการเลือกรุ่น
Dominic Comtois

1
@guest: ดีขึ้นอยู่กับวิธีการเลือกพารามิเตอร์การทำให้เป็นปกติ ที่จริงในระบอบการปกครองบางเชือกมี (สามารถพิสูจน์ได้) มีแนวโน้มที่จะมากกว่าพารามิเตอร์เลือก OP ได้ถามว่า "สิ่งเดียวที่ฉันต้องการคือเพื่อให้สามารถเข้าใจได้ว่าตัวแปรใดใน 9 ตัวที่ขับเคลื่อนการเปลี่ยนแปลงในScoreตัวแปรอย่างแท้จริง" ซึ่งเป็นประโยคที่ฉันอาจจะเน้นมากเกินไป ในการปรากฏตัวของ collinearity ที่แข็งแกร่งเชือกจะไม่ช่วยด้วยอย่างน้อยก็ในการตีความที่เข้มงวดมากขึ้นของคำพูดของ OP
พระคาร์ดินัล

คำตอบ:


14

ก่อนอื่นทรัพยากรที่ดีมากสำหรับปัญหานี้คือ T. Keith, การถดถอยหลายครั้งและอื่น ๆ มีเนื้อหามากมายในหนังสือเกี่ยวกับการสร้างแบบจำลองเส้นทางและการเลือกตัวแปรและฉันคิดว่าคุณจะพบคำตอบที่ครบถ้วนสำหรับคำถามของคุณ

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

ตัวแปรทั้ง 9 ตัวแสดงการ collinearity หรือไม่? สำหรับการวินิจฉัยคุณสามารถใช้ปัจจัยอัตราเงินเฟ้อแปรปรวน Cohen 2003 ค่า VIF> = 10 หมายถึงค่าความเข้มแสงสูงและข้อผิดพลาดมาตรฐานที่สูงเกินจริง ฉันเข้าใจว่าคุณมีความสนใจในความสัมพันธ์แบบเหตุและผลระหว่างตัวทำนายและผลลัพธ์ หากไม่ใช่ความหลากหลายทางชีวภาพนั้นไม่ถือเป็นปัญหาร้ายแรงสำหรับการคาดการณ์เนื่องจากคุณสามารถยืนยันได้โดยการตรวจสอบข้อมูลตัวอย่างจากแม่เทียบกับแบบจำลองที่สร้างโดยเพิ่มตัวทำนายของคุณในเวลานั้น หากผู้ทำนายของคุณมีอำนาจในการทำนายเล็กน้อยคุณจะพบว่าแม่ลดลงแม้ในที่ที่มีความหลากหลายของโมเดล


16

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


yoi ได้โปรดอธิบายได้ง่ายๆand put summary scores into the model
SIslam

1
หมายเหตุหลักสูตรของฉันที่biostat.mc.vanderbilt.edu/rms มีรายละเอียด
Frank Harrell

1

หากคุณต้องการที่จะดำเนินการเลือกตัวแปรในที่ที่มี collinearity สูงฉันสามารถแนะนำแพ็คเกจ l0araซึ่งเหมาะกับL0 GLM ที่ถูกลงโทษโดยใช้ขั้นตอนการปรับสันที่ซ้ำๆ ในที่สุดวิธีการนี้ขึ้นอยู่กับการถดถอยตามสันเขาในที่สุดมันสามารถจัดการได้ดีกับ collinearity และในการจำลองของฉันมันสร้างผลบวกที่ผิดพลาดน้อยลงมากในขณะที่ยังคงให้ประสิทธิภาพการทำนายที่ยอดเยี่ยมเมื่อเทียบกับเช่น LASSO หรือคุณอาจลองใช้แพ็คเกจ L0 เรียนรู้ด้วยการรวมกันของค่าปรับ L0 และ L2 การลงโทษ L0 นั้นสนับสนุนการ sparsity (เช่นรุ่นเล็ก) ในขณะที่การลงโทษ L2 ทำให้ความสัมพันธ์เป็นแนวเดียวกัน สุทธิที่ยืดหยุ่น (ซึ่งใช้การรวมกันของการลงโทษ L1 และ L2) ก็มักจะแนะนำเช่นกัน แต่ในการทดสอบของฉันสิ่งนี้ทำให้เกิดผลบวกที่ผิดพลาดมากขึ้นบวกกับสัมประสิทธิ์จะเอนเอียงอย่างหนัก ความลำเอียงนี้คุณสามารถกำจัดได้หากคุณใช้วิธีการลงโทษ L0 แทน (หรือเซตย่อยที่ดีที่สุด) - เป็นตัวประมาณค่าพยากรณ์ที่เรียกว่า oracle ซึ่งได้รับค่าสัมประสิทธิ์ของพารามิเตอร์ที่สอดคล้องกันและไม่เอนเอียง พารามิเตอร์การทำให้เป็นมาตรฐานในวิธีการทั้งหมดเหล่านี้จำเป็นต้องได้รับการปรับให้เหมาะสมผ่านการตรวจสอบความถูกต้องของข้อมูลเพื่อให้ได้ประสิทธิภาพสูงสุดในการทำนายตัวอย่าง หากคุณต้องการได้รับระดับนัยสำคัญและช่วงความเชื่อมั่นในพารามิเตอร์ของคุณคุณสามารถทำได้โดยใช้วิธีการ bootstrapping ที่ไม่ใช่พารามิเตอร์

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

หากคุณกำลังวิเคราะห์ข้อมูลสัดส่วนคุณควรใช้แบบจำลองการถดถอยโลจิสติก btw - l0araแพคเกจช่วยให้คุณทำเช่นนั้นร่วมกับการลงโทษ L0; สำหรับL0Learnแพ็คเกจนี้จะได้รับการสนับสนุนในไม่ช้า

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