การเลือกตัวแปรที่จะรวมไว้ในโมเดลการถดถอยเชิงเส้นหลายแบบ


35

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

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

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


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

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

1
มีทฤษฎีที่บอกว่าคุณควรรวมตัวทำนายอะไรไว้บ้าง? หากคุณมีตัวแปรจำนวนมากที่คุณวัดได้และไม่มีทฤษฎีฉันขอแนะนำให้ถือชุดการสังเกตเพื่อให้คุณสามารถทดสอบแบบจำลองของคุณกับข้อมูลที่ไม่ได้ใช้ในการสร้าง ไม่ถูกต้องในการทดสอบและตรวจสอบความถูกต้องของแบบจำลองบนข้อมูลเดียวกัน
มิเชล

การตรวจสอบข้าม (ตามที่ Nick Sabbe อภิปราย) วิธีการลงโทษ (Dikran Marsupial) หรือการเลือกตัวแปรตามทฤษฎีก่อนหน้า (มิเชล) เป็นตัวเลือกทั้งหมด แต่โปรดทราบว่าการเลือกตัวแปรนั้นเป็นงานที่ยากมาก จะเข้าใจว่าทำไมมันจึงเป็นเรื่องที่อาจเกิดขึ้นเต็มไปมันอาจจะช่วยในการอ่านคำตอบของฉันที่นี่: อัลกอริทึมสำหรับอัตโนมัติแบบเลือก สุดท้ายมันก็คุ้มค่าที่จะรับรู้ปัญหาคือโครงสร้างที่มีตรรกะของกิจกรรมนี้ไม่ว่าคอมพิวเตอร์จะทำเพื่อคุณโดยอัตโนมัติหรือคุณทำด้วยตัวเอง
gung - Reinstate Monica

ตรวจสอบคำตอบสำหรับโพสต์นี้ด้วย: stats.stackexchange.com/questions/34769/…
jokel

คำตอบ:


19

ตามปฏิกิริยาของคุณต่อความคิดเห็นของฉัน:

คุณกำลังมองหาการทำนาย ดังนั้นคุณไม่ควรพึ่งพาความสำคัญของสัมประสิทธิ์ คุณน่าจะดีกว่า

  • เลือกเกณฑ์ที่อธิบายการทำนายของคุณต้องการได้ดีที่สุด (เช่นอัตราการจัดประเภทผิดพลาด, AUC ของ ROC, รูปแบบเหล่านี้มีน้ำหนัก, ... )
  • สำหรับแต่ละรุ่นที่น่าสนใจให้ประเมินเกณฑ์นี้ สิ่งนี้สามารถทำได้โดยจัดเตรียมชุดการตรวจสอบความถูกต้อง (หากคุณโชคดีหรือรวย) ผ่านการข้ามคำถาม (โดยทั่วไปจะเป็นสิบเท่า) หรือตัวเลือกอื่น ๆ ที่คุณสนใจ หากเป็นไปได้ให้หาการประมาณค่า SE ของเกณฑ์สำหรับแต่ละรุ่น (เช่นโดยใช้ค่าในการพับซ้ำที่แตกต่างกันใน crossvalidation)
  • ตอนนี้คุณสามารถเลือกโมเดลที่มีค่าที่ดีที่สุดของเกณฑ์แม้ว่าโดยทั่วไปแล้วจะแนะนำให้เลือกโมเดล parsimoneous ที่สุด (ตัวแปรน้อยที่สุด) ซึ่งอยู่ภายใน SE หนึ่งของค่าที่ดีที่สุด

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


+1 แต่คุณสามารถอธิบายได้หรือไม่ว่าทำไมคุณถึง "เลือกรุ่นที่มีความหลากหลายมากที่สุด (ตัวแปรน้อยที่สุด) ที่อยู่ภายใน SE ที่คุ้มค่าที่สุด"
rolando2

Parsimony คือคุณสมบัติที่ต้องการ: ช่วยเพิ่มความสามารถในการตีความและลดจำนวนการวัดที่คุณต้องใช้สำหรับเรื่องใหม่ในการใช้โมเดล อีกด้านหนึ่งของเรื่องคือสิ่งที่คุณได้รับจากเกณฑ์ของคุณเป็นเพียงการประมาณโดยมีการจับคู่ SE: ฉันเคยเห็นพล็อตไม่กี่แปลงที่แสดงการประมาณเกณฑ์เทียบกับพารามิเตอร์การปรับค่าบางค่าที่ 'ดีที่สุด' จุดสูงสุด ดังนั้นกฎ 1 SE (ซึ่งเป็นกฎเกณฑ์ แต่เป็นวิธีปฏิบัติที่ยอมรับได้) จะช่วยปกป้องคุณจากสิ่งนี้ด้วยมูลค่าที่เพิ่มขึ้นของการจัดหาความประหยัดมากขึ้น
Nick Sabbe

13

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

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

ด้วยความสามารถในการคำนวณที่ทันสมัยมันเป็นไปได้ที่จะจัดวางตัวแปรอธิบายได้ทั้งหมด 2 ^ 10 = 1024 และเลือกแบบจำลองที่ดีที่สุดโดยหนึ่งในเกณฑ์ที่เป็นไปได้เช่น AIC, BIC หรือพลังงานเชิงทำนาย (ตัวอย่างเช่นความสามารถในการทำนายค่า ของชุดย่อยทดสอบของข้อมูลที่คุณแยกออกจากชุดที่คุณใช้เพื่อให้พอดีกับรุ่นของคุณ) อย่างไรก็ตามหากคุณกำลังจะทำการทดสอบ (โดยปริยายหรือโดยชัดแจ้ง) 1024 โมเดลคุณจะต้องคิดใหม่ค่า p ของคุณจากแนวทางแบบดั้งเดิม - ปฏิบัติด้วยความระมัดระวัง ...


ขอบคุณสำหรับการเดินผ่านระดับสูงของข้อดีและข้อเสียของทั้งสองฝ่าย มันยืนยันสิ่งที่ฉันสงสัยมาก
cryptic_star

11

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

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

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


0

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

ตัวอย่างไวน์ด้านล่าง:

library(leaps)
regsubsets.out <-
  regsubsets(Price ~ Year + WinterRain + AGST + HarvestRain + Age + FrancePop,
         data = wine,
         nbest = 1,       # 1 best model for each number of predictors
         nvmax = NULL,    # NULL for no limit on number of variables
         force.in = NULL, force.out = NULL,
         method = "exhaustive")
regsubsets.out

#----When you plot wherever R^2 is the highest with black boxes,
#so in our case AGST + HarvestRain + WinterRain + Age and the dependent var.is Price----#
summary.out <- summary(regsubsets.out)
as.data.frame(summary.out$outmat)
plot(regsubsets.out, scale = "adjr2", main = "Adjusted R^2")

สิ่งนี้ฟังดูไม่แตกต่างจากการเลือก 'ชุดย่อยที่ดีที่สุด' ซึ่งมีปัญหาที่ทราบ
gung - Reinstate Monica

leaps คำนวณ 'ชุดย่อยที่ดีที่สุด' อย่างชัดเจนแม้ว่าจะไม่แนะนำวิธีเลือกระหว่างชุดย่อยที่มีขนาดแตกต่างกัน (นั่นเป็นเรื่องระหว่างคุณกับนักบวชทางสถิติของคุณ)
steveo'america

ขำ ๆ พอleapsอยู่บนพื้นฐานของ "รหัส FORTRAN77 โดยอลันมิลเลอร์ [... ] ซึ่งอธิบายไว้ในรายละเอียดเพิ่มเติมในหนังสือของเขา 'การเลือกชุดย่อยในการถดถอย'" ซึ่งเป็นหนังสือที่ Dikran พูดถึงในคำตอบของคำถามนี้ :-)
jorijnsmit

0

คุณยังสามารถใช้ฟังก์ชันขั้นตอนในเกณฑ์ข้อมูล Akaike ตัวอย่างด้านล่าง https://en.wikipedia.org/wiki/Akaike_information_criterion

StepModel = step(ClimateChangeModel)

วิธีการเลือกตามขั้นตอนมีปัญหามากมาย นี่ไม่ใช่คำแนะนำที่ดี
gung - Reinstate Monica

@consent กับ Gung ปัญหาบางอย่างที่จะกล่าวถึงที่stats.stackexchange.com/questions/69452/...
SIslam

-2

ทำไมไม่ทำการวิเคราะห์สหสัมพันธ์ก่อนแล้วค่อยรวมในการถดถอยเฉพาะที่เกี่ยวข้องกับ Dv เท่านั้น


2
นี่เป็นวิธีที่ดีในการเลือกตัวแปรที่จะเลือกดูเช่นใช้เมทริกซ์สหสัมพันธ์เพื่อเลือกตัวทำนายสำหรับการถดถอยที่ถูกต้องหรือไม่? การวิเคราะห์สหสัมพันธ์ค่อนข้างแตกต่างจากการถดถอยหลายครั้งเนื่องจากในกรณีหลังเราต้องคิดถึง "การแบ่งออก" (ความชันการถดถอยแสดงความสัมพันธ์เมื่อพิจารณาตัวแปรอื่น ๆ ) แต่เมทริกซ์ความสัมพันธ์ไม่แสดงสิ่งนี้
Silverfish

สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม เมื่อคุณมีเพียงพอชื่อเสียงคุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด ๆ ; แทนที่จะให้คำตอบที่ไม่จำเป็นต้องชี้แจงจากผู้ถาม - จากการทบทวน
Reinstate Monica

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

-4

ที่ปรึกษาของฉันเสนอวิธีที่เป็นไปได้อีกวิธีหนึ่งในการดำเนินเรื่องนี้ เรียกใช้ตัวแปรทั้งหมดของคุณหนึ่งครั้งจากนั้นลบตัวแปรที่ไม่ผ่านเกณฑ์ (เราตั้งค่าเกณฑ์ของเราเป็น p <.25) วนซ้ำต่อไปเรื่อย ๆ จนกว่าตัวแปรทั้งหมดจะต่ำกว่าค่า. 25 จากนั้นรายงานค่าเหล่านั้นซึ่งมีความสำคัญ


1
สวัสดีทุกคนนั่นคือสิ่งที่ @Peter Ellis พูดถึงในวรรคสองของคำตอบของเขา ประโยคที่สองของเขาที่นั่นครอบคลุมถึงปัญหาที่เทคนิคนี้แนะนำ คุณมีทฤษฎีที่บอกคุณว่าตัวทำนายอะไรที่จะนำไปสู่แบบจำลองของคุณ?
มิเชล

ใช่ @Michelle มีสิทธิ์ที่จะเน้นย้ำความรับผิดต่อวิธีการนี้ มันสามารถให้ผลลัพธ์ที่ไม่เจาะจงมาก
rolando2

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

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