ช่วยฉันให้พอดีกับการถดถอยหลายครั้งแบบไม่เป็นเชิงเส้นที่ท้าทายความพยายามก่อนหน้านี้ทั้งหมด


9

แก้ไข: ตั้งแต่การทำโพสต์นี้ผมได้ตามมาด้วยการโพสต์เพิ่มเติมที่นี่

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

ใช้ตอนRนี้ฉันกำลังทำงานกับแบบจำลองเพื่อทำนายความสำเร็จของผู้เล่นเบสบอลลีกในระดับเมเจอร์ลีก (MLB) ตัวแปรน่ารังเกียจอาชีพชนะเหนือทดแทน (oWAR) เป็นพร็อกซี่สำหรับความสำเร็จในระดับเอ็มและเป็นวัดที่เป็นผลรวมของผลงานที่น่ารังเกียจสำหรับการเล่นผู้เล่นที่มีส่วนเกี่ยวข้องในช่วงอาชีพของเขาทุกคน (รายละเอียดที่นี่ - http : //www.fangraphs.com/library/misc/war/) ตัวแปรอิสระคือคะแนนความไม่พอใจเล็กน้อยในลีกที่มีคะแนน z สำหรับสถิติที่คิดว่าเป็นตัวทำนายที่สำคัญของความสำเร็จในระดับเมเจอร์ลีกรวมถึงอายุ (ผู้เล่นที่ประสบความสำเร็จมากกว่าในวัยเยาว์มีแนวโน้มที่จะเป็นกลุ่มเป้าหมายที่ดีกว่า) ], อัตราการเดิน [BBrate] และการผลิตที่ปรับปรุงแล้ว (การวัดทั่วโลกของการผลิตที่น่ารังเกียจ) นอกจากนี้เนื่องจากมีลีกย่อยหลายระดับฉันจึงได้รวมตัวแปรจำลองสำหรับระดับการเล่นของลีกย่อย (Double A, High A, Low A, Rookie และ Short Season กับ Triple A [ระดับสูงสุดก่อนลีกใหญ่]] เป็นตัวแปรอ้างอิง]) หมายเหตุ: ฉันได้ปรับขนาด WAR ใหม่ให้เป็นตัวแปรที่เปลี่ยนจาก 0 เป็น 1

ตัวแปร scatterplot มีดังนี้:

scatterplot

สำหรับการอ้างอิงตัวแปรที่อ้างถึง oWAR มีพล็อตต่อไปนี้:

dependentvariableplot

ฉันเริ่มต้นด้วยการถดถอยเชิงเส้นoWAR = B1zAge + B2zSOPct + B3zBBPct + B4zAdjProd + B5DoubleA + B6HighA + B7LowA + B8Rookie + B9ShortSeasonและได้รับแผนการวินิจฉัยต่อไปนี้:

linearRegressionDiagnostics

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

linearRegressionResults

ทำตามคำแนะนำในหัวข้อก่อนหน้านี้ฉันพยายามแปลง Box-Cox โดยไม่ประสบความสำเร็จ ต่อไปฉันลอง GAM โดยใช้ลิงค์บันทึกและได้รับแผนการเหล่านี้:

เส้นโค้ง

เป็นต้นฉบับ diagnosticChecksGAM

พล็อตการวินิจฉัยใหม่ GAMDiag

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

GAMResults

รุ่นของรุ่นได้เพิ่มขึ้นR2

แต่ผลลัพธ์ที่เกิดจากคำสั่งgam.check(myregression, k.rep = 1000)นั้นไม่ได้เป็นสิ่งที่ดี

GAMResults2

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


2
ฉันพบรหัสในไพรเมอร์ที่ยอดเยี่ยมนี้ของ GAM ใน R - www3.nd.edu/~mclark19/learn/GAMS.pdfรหัส: library (รถยนต์) scatterplotMatrix (mydata [, c (1,1: 8)], pch = 19, cex = .5, reg.line = F, lwd.smooth = 1.25, spread = F, ellipse = T, col = c ('gray60', '# 2957FF', '# FF8000'), col.axis = 'gray50')
zgall1

1
คุณสามารถแบ่งปันชุดข้อมูลของคุณ? นอกจากนี้ +1 สำหรับเมทริกซ์สแคทเทอร์ล็อตนั้น มันยอดเยี่ยมมาก
Zach

1
มันแย่มากดูเหมือนว่าชุดข้อมูลที่น่าสนใจ ข้อเสนอแนะของฉันคือลองอัลกอริทึมการเรียนรู้ของเครื่องอื่นเช่นฟอเรสต์แบบสุ่ม
Zach

2
ป่าสุ่มขึ้นอยู่กับต้นไม้ตัดสินใจ ลองดูแพ็คเกจสุ่มป่าใน R และหน้าป่าสุ่มของวิกิพีเดีย: en.wikipedia.org/wiki/Random_forest
Zach

2
"ตัวแปรที่ขึ้นอยู่กับ ... วัดจากผลรวมของการมีส่วนร่วมที่น่ารังเกียจสำหรับการเล่นทุกครั้งที่ผู้เล่นมีส่วนร่วมในเส้นทางอาชีพของเขา" สิ่งนี้กระโดดออกไปกับฉัน สิ่งที่น่าสับสนอย่างมากในที่นี้คือระยะเวลาที่ผู้เล่นได้เล่นทั้งในเวลาที่นานขึ้นในการ "รวบรวม" oWAR [b] ผู้เล่นที่ดีกว่าอาจจะเล่นเป็นระยะเวลานานขึ้น
เลียนแบบ

คำตอบ:


6

การทำงานที่ดีมาก ฉันคิดว่าสถานการณ์นี้เป็นตัวเลือกสำหรับโมเดลโลจิสติกเชิงลอจิสติกตามลำดับอัตราต่อรองสัดส่วน lrmฟังก์ชั่นใน R rmsแพคเกจจะพอดีกับรูปแบบ สำหรับตอนนี้คุณอาจต้องการรอบให้มีระดับ 100-200 เท่านั้น อีกไม่นานจะมีเวอร์ชั่นใหม่ออกมาพร้อมกับฟังก์ชั่นใหม่ที่ช่วยให้การดักหลายพันครั้งในโมเดลได้อย่างมีประสิทธิภาพคือทำให้สามารถทำงานต่อเนื่องได้อย่างเต็มที่ [อัพเดท: ปรากฎในปี 2014] โมเดลอัตราต่อรองแบบ s นั้นไม่แปรเปลี่ยนไปตามวิธีการแปลงนั่นหมายความว่า quantiles นั้นไม่แปรเปลี่ยนเช่นกัน เมื่อคุณต้องการค่าเฉลี่ยที่คาดการณ์ไว้จะถือว่าอยู่ในช่วงเวลาที่เหมาะสมYrmsormYβYY


1
ตามระดับคุณหมายถึงการแปรผันของตัวแปร Y เป็นถัง 100-200 ถังหรือไม่? ถ้าเป็นเช่นนั้นมีวิธีใดที่ต้องการให้เลือกขนาดถังขยะหรือไม่? พวกเขาควรมีขนาดเท่ากัน?
zgall1

1
เพียงทำ binning ชั่วคราวเว้นแต่ว่าเรามีวิธีแก้ปัญหาอย่างต่อเนื่อง คุณสามารถเข้าสู่ 100 เปอร์เซนต์เช่นrequire(Hmisc); cut2(y, g=100, levels.mean=TRUE)
Frank Harrell

เมื่อคุณพูดว่าrmsจะมีการเปิดตัวเวอร์ชั่นใหม่ในไม่ช้าคุณมีความคิดใดที่จะเป็นเช่นนั้น?
zgall1

หากคุณใช้ linux ฉันสามารถมอบให้คุณได้ตอนนี้มิฉะนั้นคาดว่า 2 สัปดาห์
Frank Harrell

ฉันไม่ได้ใช้ Linux ดังนั้นฉันเดาว่าฉันจะต้องรอ โปรดแจ้งให้เราทราบเมื่อมีให้
zgall1

1

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

  • ผู้เล่นที่เล่นนานขึ้นมีเวลามากขึ้นในการรวบรวมสงคราม
  • ผู้เล่นที่ดีจะมีแนวโน้มที่จะถูกเก็บไว้นานกว่าและจะมีโอกาสที่จะมีเวลานานขึ้นในการรวบรวมสงคราม

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

ขึ้นอยู่กับตัวแปรของคุณจะเป็นสงครามตามฤดูกาลและคุณจะมีจำนวนที่แตกต่างกันของฤดูกาลต่อผู้เล่นฉันโมเดลจะมีผู้เล่นเป็นเอฟเฟกต์แบบสุ่มและจะอยู่ในแนวของ:j=mii

sWARij=α+σi2+<other stuff>+εij

ด้วยlme4สิ่งนี้จะดูเหมือน
lmer(sWAR ~ <other stuff> + (1|Player), data=mydata)

คุณยังอาจจำเป็นต้องแปลงเป็นแต่ฉันคิดว่านี่จะช่วยในการตอบกลับsWAR


ฉันไม่แน่ใจว่าฉันเข้าใจอย่างถ่องแท้ หากตัวแปรตามคือสงครามฤดูกาลตัวแปรอิสระคืออะไร? เหมือนกันเป็นสถิติเล็กน้อยสำหรับผู้เล่นแต่ละคน? พวกเรากำลังพูดอยู่หรือไม่ว่าไลน์ลีกย่อย A สามารถนำไปสู่เมเจอร์ลีก WAR B, C, D และ E
zgall1

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