อัลกอริทึมสำหรับการเลือกรูปแบบอัตโนมัติ


193

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

ปัญหาของฉันคือฉันไม่สามารถหาวิธีการหรือการใช้งานโอเพนซอร์ซ (ฉันกำลังใช้ภาษาจาวา) วิธีการที่ฉันมีในใจจะเป็นเช่น:

  1. คำนวณเมทริกซ์สหสัมพันธ์ของปัจจัยทั้งหมด
  2. เลือกปัจจัยที่มีความสัมพันธ์ต่ำกัน
  3. ลบปัจจัยที่มี t-stat ต่ำ
  4. เพิ่มปัจจัยอื่น ๆ (ยังคงขึ้นอยู่กับปัจจัยความสัมพันธ์ต่ำที่พบใน 2)
  5. ทำซ้ำหลาย ๆ ครั้งจนกว่าเกณฑ์บางอย่าง (เช่น AIC) จะเกินเกณฑ์ที่กำหนดหรือไม่สามารถทำได้หรือเราไม่สามารถหาค่าที่มากขึ้นได้

ฉันรู้ว่ามีการใช้งาน R สำหรับขั้นตอนนี้ (stepAIC) แต่ฉันพบว่ารหัสค่อนข้างเข้าใจยาก นอกจากนี้ฉันไม่สามารถค้นหาบทความที่อธิบายการถดถอยแบบขั้นตอนได้


72
ตรงไปตรงมาฉันคิดว่านี่เป็นความคิดหายนะรับประกันได้ว่าจะนำไปสู่ข้อสรุปที่ผิดพลาดมากมาย
gung

4
@ gung: ในขณะที่ฉันเห็นด้วยว่าการติดตามผลลัพธ์ของการเลือกแบบสุ่มเป็นความคิดที่ไม่ดีฉันคิดว่ามันมีประโยชน์ในฐานะเป็นจุดเริ่มต้นของการวิเคราะห์ ในกรณีของฉันฉันมีหลายร้อยปัจจัยพร้อมใช้งานและฉันต้องการเลือก 5-10 ข้อที่เกี่ยวข้องมากที่สุด ฉันไม่เห็นวิธีที่ฉันสามารถทำได้โดยไม่ต้องเลือกรุ่นอัตโนมัติ (ซึ่งจะแก้ไขในภายหลังด้วยตนเอง)
S4M

12
ขั้นตอนการเลือกรุ่นทั้งหมดอาจมีปัญหาที่ฉันกล่าวถึงในคำตอบของฉันด้านล่าง นอกจากนี้ยิ่งจำนวนของปัจจัยที่เป็นไปได้ที่คุณต้องการค้นหามากขึ้นปัญหาเหล่านั้นจะยิ่งรุนแรงมากขึ้นเท่านั้นและการเพิ่มขึ้นไม่ใช่เชิงเส้น ในขณะที่มีวิธีการบางอย่างที่ดีกว่า (กล่าวถึงโดย @Zach) ซึ่งควรใช้ร่วมกับการตรวจสอบข้าม (กล่าวถึงโดย @JackTanner) การเลือกใช้ t, r และ AIC ไม่ใช่ในหมู่พวกเขา ยิ่งกว่านั้นด้วยหลายร้อยปัจจัยปริมาณข้อมูลที่ต้องการอาจอยู่ในหลักล้านได้อย่างง่ายดาย น่าเสียดายที่คุณมีงานที่ยากมากมาก่อน
gung

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

6
มุมมองที่น่าสนใจที่นี่ แต่ฉันคิดว่ามุมมองเชิงลบต่อขั้นตอนการเลือกแบบจำลองอัลกอริทึมนั้นค่อนข้างเก่า ยกตัวอย่างเช่นผลงานล่าสุดของ David Hendry ในสาขาเศรษฐศาสตร์โดยเฉพาะงานของเขาเกี่ยวกับซอฟต์แวร์ PcGive และวิธีการอิ่มตัว การบรรยายให้เห็นภาพรวมของวิธีการของเขาสามารถพบได้ที่นี่ @MichaelChernick ได้ชี้ให้เห็น (และเฮนรี่จะทำเช่นกัน!) ความรู้ในสาระสำคัญมีความสำคัญอย่างมาก นี่คือเหตุผลที่มีค่าในผู้เชี่ยวชาญเรื่อง - เพื่อให้อัลกอริทึมดำเนินการเพียงอย่างเดียวเป็นความผิดพลาด
แกรมวอลช์

คำตอบ:


333

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

  1. มันให้ค่า R-squared ที่มีอคติไม่ดีที่จะสูง
  2. การทดสอบแบบ F และ Chi-squared ที่อยู่ถัดจากตัวแปรแต่ละตัวในผลงานพิมพ์ไม่มีการแจกแจงแบบอ้างสิทธิ์
  3. วิธีนี้ให้ช่วงความมั่นใจสำหรับเอฟเฟกต์และค่าคาดการณ์ที่แคบอย่างผิด ๆ เห็น Altman และ Andersen (1989)
  4. มันให้ค่า p ที่ไม่มีความหมายที่เหมาะสมและการแก้ไขที่เหมาะสมสำหรับพวกเขานั้นเป็นปัญหาที่ยาก
  5. มันให้ค่าสัมประสิทธิ์การถดถอยแบบเอนเอียงที่ต้องการการหดตัว (ค่าสัมประสิทธิ์สำหรับตัวแปรที่เหลือมีขนาดใหญ่เกินไป; ดู Tibshirani [1996]
  6. มันมีปัญหาที่รุนแรงในการปรากฏตัวของ collinearity
  7. มันขึ้นอยู่กับวิธีการ (เช่นการทดสอบ F สำหรับแบบจำลองที่ซ้อนกัน) ที่มีวัตถุประสงค์เพื่อใช้ในการทดสอบสมมติฐานที่กำหนดไว้ล่วงหน้า
  8. การเพิ่มขนาดตัวอย่างไม่ได้ช่วยอะไรมาก เห็น Derksen และ Keselman (1992)
  9. มันทำให้เราไม่ต้องคิดถึงปัญหา
  10. ใช้กระดาษจำนวนมาก

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

ลองนึกภาพผู้ฝึกสอนโรงเรียนมัธยมในวันแรกของการคัดเลือก เด็กสามสิบคนปรากฏตัว เด็ก ๆ เหล่านี้มีความสามารถในระดับพื้นฐานบางอย่างที่โค้ชและผู้อื่นไม่สามารถเข้าถึงได้โดยตรง เป็นผลให้โค้ชทำสิ่งเดียวที่เขาสามารถทำได้ซึ่งทำให้พวกเขาทั้งหมดวิ่ง 100 เมตรประ ช่วงเวลานั้นน่าจะเป็นตัวชี้วัดความสามารถที่แท้จริงของพวกเขาและถูกนำมาเป็นเช่นนี้ อย่างไรก็ตามมันน่าจะเป็น สัดส่วนของคนที่ทำได้ดีขึ้นอยู่กับความสามารถที่แท้จริงของพวกเขาและสัดส่วนบางอย่างเป็นแบบสุ่ม ลองนึกภาพว่าสถานการณ์จริงเป็นดังต่อไปนี้:

set.seed(59)
intrinsic_ability = runif(30, min=9, max=10)
time = 31 - 2*intrinsic_ability + rnorm(30, mean=0, sd=.5)

ผลการแข่งขันรอบแรกจะแสดงในรูปต่อไปนี้พร้อมกับความเห็นของโค้ชต่อเด็ก ๆ

การแข่งขันครั้งแรก

โปรดทราบว่าการแบ่งเด็กตามเวลาการแข่งขันของพวกเขาทำให้ความสามารถในการซ้อนทับของพวกเขาซ้อนทับกัน - ความจริงข้อนี้สำคัญมาก หลังจากชมบางคนและตะโกนใส่คนอื่น (ตามที่โค้ชมักจะทำ) เขาให้พวกเขาวิ่งอีกครั้ง นี่คือผลการแข่งขันที่สองพร้อมปฏิกิริยาของโค้ช (จำลองจากโมเดลเดียวกันข้างบน):

การแข่งขันครั้งที่สอง

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

ทีนี้สิ่งนี้เกี่ยวข้องกับเทคนิคการเลือกแบบอัตโนมัติ (เช่นแบบขั้นตอน) การพัฒนาและยืนยันรูปแบบโดยยึดตามชุดข้อมูลเดียวกันบางครั้งเรียกว่าการขุดลอกข้อมูล. แม้ว่าจะมีความสัมพันธ์ที่แฝงอยู่ระหว่างตัวแปรและคาดว่าความสัมพันธ์ที่แข็งแกร่งจะให้คะแนนที่ดีขึ้น (เช่นสถิติที่สูงขึ้น) แต่เป็นตัวแปรสุ่มและค่าที่รับรู้มีข้อผิดพลาด ดังนั้นเมื่อคุณเลือกตัวแปรโดยมีค่าที่สูงขึ้น (หรือต่ำกว่า) ที่รับรู้พวกเขาอาจเป็นเช่นนั้นเพราะคุณค่าที่แท้จริงข้อผิดพลาดหรือทั้งสองอย่าง หากคุณดำเนินการในลักษณะนี้คุณจะประหลาดใจเช่นเดียวกับโค้ชหลังจากการแข่งขันครั้งที่สอง สิ่งนี้เป็นจริงไม่ว่าคุณจะเลือกตัวแปรตามการมีสถิติ t สูงหรือมีความสัมพันธ์ต่ำ จริงการใช้ AIC นั้นดีกว่าการใช้ p-values ​​เพราะมันลงโทษโมเดลสำหรับความซับซ้อน แต่ AIC นั้นเป็นตัวแปรสุ่ม (ถ้าคุณรันการศึกษาหลายครั้งและเหมาะกับรูปแบบเดียวกัน AIC จะเด้งเหมือน อย่างอื่น). น่าเสียดาย,

ฉันหวังว่านี้จะเป็นประโยชน์.


43
คำอธิบายเกี่ยวกับปรากฏการณ์ของการขุดลอกข้อมูล
Frank Harrell

17
นี่เป็นคำตอบที่ดีมากแม้ว่าฉันจะไม่เห็นด้วยกับแนวคิดที่ว่า aic เป็นการปรับปรุงค่า p (หรือ bic หรือคล้ายกัน) ในบริบทของการเลือกตัวแบบเชิงเส้น บทลงโทษใด ๆ เช่น aic ซึ่งเป็นรูปแบบเทียบเท่ากับการตั้งค่า p-value เป็น (ทั้งเข้าและออก) aic โดยทั่วไปจะบอกวิธีการเลือกค่า p 2L+kpPr(χ12>k)
ความน่าจะเป็นที่เป็นไปได้

7
ความคิดเห็นของฉันเกี่ยวกับการใช้ aic สำหรับอัลกอริทึมแบบขั้นตอนหรือคล้ายกัน ความคิดเห็นของฉันก็สั้นเกินไป หมายเหตุคือจำนวนตัวแปร,คือค่าปรับ (สำหรับ aicสำหรับ bic), และเป็นค่าลบสองเท่าของความน่าจะเป็นบันทึกสูงสุด Aic และ bic มีแนวคิดที่แตกต่างกัน แต่ไม่สามารถใช้งานได้กับ p-values ​​เมื่อทำการเลือกสไตล์ "subset" โดยไม่มีการหดตัวของสัมประสิทธิ์ที่ไม่เป็นศูนย์ pk2logN2L
ความน่าจะเป็นที่เป็นไปได้

9
@gung - ถ้าคุณใช้ความแตกต่างระหว่างสองรุ่นที่มีพารามิเตอร์หนึ่งที่แตกต่างกันคุณจะได้รับ(-2L_1ตอนนี้เทอมแรกคือสถิติอัตราส่วนความน่าจะเป็นที่ค่า p-value อิง ดังนั้นเรากำลังเพิ่มพารามิเตอร์พิเศษหากสถิติอัตราส่วนความน่าจะเป็นใหญ่กว่าทางลัดบางส่วน นี่เป็นสิ่งเดียวกับที่วิธีการของ p-value กำลังทำอยู่ มีเพียงความแตกต่างทางแนวคิดที่นี่(2L1+2p0+2)(2L0+2p0)=2(L1L0)+2
ความน่าจะเป็นทาง

2
สำหรับภาพประกอบที่ AIC ไม่สามารถแก้ปัญหาได้ดู: Mundry, R. (2011) ประเด็นในการอนุมานเชิงสถิติตามทฤษฎีสารสนเทศ - ความเห็นจากมุมมองของผู้ใช้บ่อย นิเวศวิทยาเชิงพฤติกรรมและสังคมวิทยา, 65 (1), 57-68
jank

70

ตรวจสอบชุดอักขระคาเร็ตในอาร์มันจะช่วยให้คุณตรวจสอบแบบจำลองการถดถอยแบบขั้นตอนที่ชาญฉลาด (ใช้method='lmStepAIC'หรือmethod='glmStepAIC') และอาจช่วยให้คุณเข้าใจว่าแบบจำลองประเภทเหล่านี้มีแนวโน้มที่จะมีประสิทธิภาพการทำนายที่ไม่ดี นอกจากนี้คุณสามารถใช้findCorrelationฟังก์ชันในคาเร็ตเพื่อระบุและกำจัดตัวแปรคอลลิเนียร์และrfeฟังก์ชันในคาเร็ตเพื่อกำจัดตัวแปรที่มีค่าสถิติต่ำ (ใช้งานrfeControl=rfeControl(functions=lmFuncs))

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

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


1
การลงโทษแบบคู่พาเรโต้นั้นดีกว่าสันเขาและบ่วงจากมุมมองทางสถิติเนื่องจากไม่ลดค่าสัมประสิทธิ์ที่ไม่เป็นศูนย์อย่างชัดเจน แต่น่าเสียดายที่พวกเขามักจะนำไปสู่การลงโทษที่ไม่นูนดังนั้นพวกเขาจึงแย่ลงจากมุมมองการคำนวณ ฉันคิดว่าการลงโทษขึ้นอยู่กับการกระจาย Cauchy จะดี2) log(λ2+β2)
ความน่าจะเป็นทาง

2
@probabilityislogic คุณรู้หรือไม่ว่าการใช้โทษประหารสองครั้งเป็นภาษาที่ดีrหรือpythonไม่? ฉันชอบที่จะลอง
Zach

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

38

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

  1. แบ่งข้อมูลของคุณออกเป็นชุดฝึกอบรมการตรวจสอบและชุดการทดสอบ
  2. ฝึกโมเดลในชุดฝึกซ้อมของคุณ
  3. วัดประสิทธิภาพของแบบจำลองในชุดการตรวจสอบความถูกต้องโดยใช้การวัดเช่นการทำนาย RMSE และเลือกแบบจำลองที่มีข้อผิดพลาดการทำนายต่ำที่สุด
  4. จัดทำโมเดลใหม่ตามความจำเป็นให้ทำซ้ำขั้นตอนที่ 2-3
  5. รายงานประสิทธิภาพของโมเดลในชุดการทดสอบ

สำหรับตัวอย่างของการใช้วิธีนี้ในโลกแห่งความเป็นจริงฉันเชื่อว่ามันถูกใช้ในการแข่งขัน Netflix Prize


15
แยกข้อมูลที่ไม่น่าเชื่อถือเว้นแต่n>n>20000
Frank Harrell

5
@ Frank: ทำไมคุณถึงคิดว่า N ต้องสูงมาก
rolando2

14
เนื่องจากความแม่นยำต่ำ หากคุณแยกอีกครั้งคุณจะได้รับผลลัพธ์ที่แตกต่างกันมาก นั่นเป็นเหตุผลที่ผู้คนทำ 100 การตรวจสอบซ้ำ 10 เท่าหรือการบูตสแตรป
Frank Harrell

10
@ Frankankarrell สิ่งใดที่ n> 20,000 ตัวเลขขึ้นอยู่กับอะไร มันขึ้นอยู่กับความคิดเห็นของผู้โพสต์ดั้งเดิมเกี่ยวกับการมี " ปัจจัยหลายร้อยหลาย "? หรือมันเป็นอิสระจากแง่มุมของข้อมูลใด ๆ ?
Darren Cook

33
ชนิดของการตั้งค่าที่ฉันทดสอบการแยกข้อมูลคือ n = 17000 โดยมีเศษส่วนของ 0.3 มีเหตุการณ์และมีการตรวจสอบหรือปรับพารามิเตอร์ประมาณ 50 พารามิเตอร์ในรูปแบบโลจิสติกฐานสอง ฉันใช้การแบ่งแบบสุ่ม 1: 1 พื้นที่ ROC ที่ตรวจสอบความถูกต้องในตัวอย่างทดสอบเปลี่ยนไปอย่างมีนัยสำคัญเมื่อฉันแบ่งข้อมูลและเริ่มใหม่อีกครั้ง ดูภายใต้การศึกษาวิธีการที่ใช้ในข้อความในbiostat.mc.vanderbilt.edu/rmsสำหรับการศึกษาแบบจำลองและเอกสารที่เกี่ยวข้องให้ข้อมูลเพิ่มเติม
Frank Harrell

15

ในการตอบคำถามมีหลายตัวเลือก: 1) all-subset โดย AIC / BIC 2) stepwise โดย p-value 3) stepwise โดย AIC / BIC 4) normalization เช่น LASSO (สามารถเป็น AIC / BIC หรือ CV 5) อัลกอริธึมทางพันธุกรรม (GA) 6) อื่น ๆ ? 7) การใช้แบบไม่เลือกทฤษฎี ("ความรู้ในเรื่อง")

คำถามต่อไปจะเป็นวิธีใดดีกว่า บทความนี้ (ดอย: 10.1016 / j.amc.2013.05.016) ระบุว่า“ การถดถอยที่เป็นไปได้ทั้งหมด” ให้ผลลัพธ์แบบเดียวกันกับวิธีการใหม่ที่เสนอและขั้นตอนแย่กว่า GA อย่างง่ายอยู่ระหว่างพวกเขา บทความนี้ (DOI: 10.1080 / 10618600.1998.10474784) เปรียบเทียบการถดถอยที่ถูกลงโทษ (Bridge, Lasso และอื่น ๆ ) กับ "leaps-and-bounds" (ดูเหมือนว่าอัลกอริทึมการค้นหาที่ละเอียดถี่ถ้วน แต่เร็วกว่า) และพบว่า "โมเดลสะพานเห็นด้วยกับโมเดลที่ดีที่สุดจาก การเลือกชุดย่อยโดยวิธี leaps และขอบเขต” บทความนี้ (ดอย: 10.1186 / 1471-2105-15-88) แสดงให้เห็นว่า GA ดีกว่า LASSO บทความนี้ (DOI: 10.1198 / jcgs.2009.06164) เสนอวิธีการ - เป็นหลัก all-subset (ตามวิธี BIC) แต่ลดเวลาการคำนวณอย่างชาญฉลาด พวกเขาสาธิตวิธีนี้ดีกว่า LASSO บทความนี้น่าสนใจ (DOI: 10.1111 / j.1461-0248.2009.01361)

โดยรวมแล้วผลลัพธ์ต่างกัน แต่ฉันได้รับความประทับใจว่า GA ดูดีมากแม้ว่า stepwise อาจไม่เลวร้ายและรวดเร็ว

สำหรับ 7) การใช้งานของการเลือกเชิงที่ไม่ใช่อัตโนมัติทฤษฎี ("ความรู้เรื่อง") ใช้เวลานานและไม่จำเป็นต้องดีกว่าวิธีอัตโนมัติ ในความเป็นจริงในวรรณกรรมอนุกรมเวลามันเป็นที่ยอมรับกันดีว่าวิธีการอัตโนมัติ (โดยเฉพาะซอฟต์แวร์เชิงพาณิชย์) มีประสิทธิภาพสูงกว่าผู้เชี่ยวชาญของมนุษย์ "โดยมีอัตรากำไรสูง" (ดอย: 10.1016 / S0169-2070 (01) 00119-4, หน้า 561) เช่นการเลือก และโมเดล ARIMA)


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

2
อันที่จริงตัวอย่างในเอกสารต้นฉบับของ Tibshirani ใน LASSOแสดงให้เห็นถึงจุดของ @ gung อย่างดี เช่นเดียวกับการศึกษาเปรียบเทียบวิธีการต่างๆในข้อมูลจริง BTW อ้างอิงสุดท้ายของคุณใช่ไหม? บทความโดย Clements & Hendry กับ DOI ที่คุณให้ไว้ไม่ได้อ้างว่าวิธีการอัตโนมัติดำเนินการโดยผู้เชี่ยวชาญของมนุษย์หรือใช้คำว่า "โดยมีส่วนต่างที่สำคัญ" (มันคงจะดีถ้าคุณให้การอ้างอิงแบบเต็ม)
Scortchi

พบได้ที่: Goodrich (2001), "ซอฟต์แวร์เชิงพาณิชย์ในการแข่งขัน M3", Int J. การพยากรณ์., 17, pp 560–565 มันอยู่ภายใต้คอลเลกชัน "ข้อคิดในการแข่งขัน M3" เช่นเดียวกับกระดาษ Clements & Hendry ซึ่งเป็นสาเหตุที่ Googling DOI ส่งฉันไปที่นั่น
Scortchi

อย่างไรก็ตามก็ไม่ได้ทั้งหมดที่ชัดเจนว่าความคิดเห็นของ Goodrich มีอะไรจะทำอย่างไรกับเรื่องของความเชี่ยวชาญ
Scortchi

1
@Scortchi อาจมีความชัดเจนมากขึ้นในบทความที่เริ่มต้นจากหน้า 581 ในวารสารฉบับนั้น มันเกี่ยวข้องกับ "การแข่งขัน M2" มากกว่าซึ่งเปรียบเทียบวิธีการพยากรณ์อัตโนมัติกับผู้เชี่ยวชาญที่ได้รับเชิญของมนุษย์ (รวมถึงชื่อที่ยิ่งใหญ่ในวรรณกรรมอนุกรมเวลา) ผู้รู้บริบททางเศรษฐกิจ / อุตสาหกรรมและสามารถขอข้อมูลเพิ่มเติมจาก บริษัท ที่ให้บริการ ข้อมูล.
heran_xp

6

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


3

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


2
ที่จะเลือกตัวแปร "ดีที่สุด" ในข้อมูลไม่จำเป็นต้องเป็นตัวแปรที่ดีที่สุดในกระบวนการสร้างข้อมูล / ประชากรเนื่องจากมันมีการเข้าถึงข้อมูลเท่านั้น มันไม่ได้แตกต่างจากวิธีแบบขั้นตอนที่ OP ต้องการ
gung

0

เรามีฟังก์ชั่นในแพ็คเกจ R base stats เรียกว่า step () ซึ่งทำหน้าที่เลือกแบบจำลองไปข้างหน้าถอยหลังหรือแบบขั้นตอนตาม AIC ที่ต่ำที่สุด นอกจากนี้ยังใช้งานได้กับตัวแปรปัจจัย นี่ไม่ใช่จุดประสงค์ของเซิร์ฟเวอร์ใช่หรือไม่


-51

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

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

อีกครั้งนี้เป็นคร่าวๆอาจมีวิธีการปรับปรุงวิธีการ แต่นั่นคือจุดเริ่มต้นของฉัน ฉันโพสต์คำตอบนี้หวังว่ามันจะมีประโยชน์สำหรับคนอื่น ความคิดเห็นยินดีต้อนรับ!


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

28
คุณยอมรับคำตอบของคุณเองที่ขัดแย้งกับทุกข้อโต้แย้งที่ชุมชนนำมา ไม่น่าแปลกใจที่จะเห็นเชิงลบที่นี่ ...
Jank

23
ฉันเชื่อว่านี่เป็นครั้งแรกที่ฉันเห็น downvotes มากมาย @SAM ทำไมคุณไม่เพียงแค่ยอมรับคำตอบที่ยอดเยี่ยมอื่น ๆ แล้วลบ "คำตอบ" ของคุณ?
marbel

นี่เป็นคำตอบที่แย่ที่สุดของ SE หรือเปล่า?
mkt

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