เมื่อใดที่จะเปลี่ยนตัวแปรตัวทำนายเมื่อทำการถดถอยหลายครั้ง?


10

ขณะนี้ฉันกำลังเรียนการถดถอยเชิงเส้นเป็นครั้งแรกในระดับบัณฑิตศึกษาและกำลังดิ้นรนกับการเปลี่ยนแปลงตัวแปรตัวทำนายในการถดถอยเชิงเส้นหลายครั้ง ข้อความที่ฉันใช้ Kutner et al "โมเดลเชิงสถิติเชิงเส้นประยุกต์" ดูเหมือนจะไม่ครอบคลุมคำถามที่ฉันมี (นอกเหนือจากการแนะนำว่ามีวิธี Box-Cox สำหรับเปลี่ยนการทำนายหลายตัว)

เมื่อต้องเผชิญกับตัวแปรตอบสนองและตัวแปรทำนายหลายตัวเงื่อนไขใดบ้างที่มุ่งมั่นที่จะพบกับตัวแปรตัวทำนายแต่ละตัว ฉันเข้าใจว่าท้ายที่สุดเรากำลังมองหาความแปรปรวนของความคลาดเคลื่อนและการแจกแจงข้อผิดพลาดตามปกติ (อย่างน้อยที่สุดในเทคนิคที่ฉันได้รับการสอนมา) ฉันเคยมีแบบฝึกหัดมากมายกลับมาซึ่งวิธีแก้ปัญหาเป็นตัวอย่างy ~ x1 + (1/x2) + log(x3)ที่ ตัวทำนายหนึ่งตัวหรือมากกว่าถูกเปลี่ยน

ฉันเข้าใจเหตุผลภายใต้การถดถอยเชิงเส้นอย่างง่ายเนื่องจากมันง่ายที่จะดู y ~ x1 และการวินิจฉัยที่เกี่ยวข้อง (พล็อตของคิวคิวของส่วนที่เหลือ, ส่วนที่เหลือเทียบกับ y, ส่วนที่เหลือเทียบกับ x, ฯลฯ ) และทดสอบเพื่อดูว่า y ~ log ( x1) เหมาะสมกับสมมติฐานของเราดีกว่า

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

ขอบคุณล่วงหน้า. ด้าน

คำตอบ:


3

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

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

library(car)
scatterplot.matrix(data)

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

windows()
plot(density(X[,3]))
rug(x[,3])
windows()
plot(x[,3], y)
lines(lowess(y~X[,3]))

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

windows()
qq.plot(model$residuals)
windows()
scatterplot.matrix(cbind(model$residuals,X))

หากมีสิ่งที่น่าสงสัยให้พล็อตมันทีละรายการและเพิ่มabline(h=0)เป็นคำแนะนำแบบเห็นภาพ หากคุณมีปฏิสัมพันธ์คุณสามารถสร้างตัวแปร X [, 1] * X [, 2] และตรวจสอบส่วนที่เหลือกับสิ่งนั้น ในทำนองเดียวกันคุณสามารถสร้างส่วนแบ่งของเศษซากเทียบกับ X [, 3] ^ 2 ฯลฯ แปลงชนิดอื่น ๆ กว่าส่วนที่เหลือเทียบกับ x ที่คุณชอบสามารถทำได้ในทำนองเดียวกัน โปรดจำไว้ว่าสิ่งเหล่านี้ล้วน แต่ละเลยมิติ x อื่น ๆ ที่ไม่ได้ถูกพล็อต หากข้อมูลของคุณถูกจัดกลุ่ม (เช่นจากการทดสอบ) คุณสามารถแปลงบางส่วนแทน / นอกเหนือจากแปลงส่วนเพิ่ม

หวังว่าจะช่วย


2
ฉันขอแนะนำให้ใช้แนวทางที่ตรงกว่านี้: ใช้การถดถอยเพื่อสร้างแบบจำลองผลกระทบของตัวพยากรณ์เพื่อ (1) ไม่ถือว่าเป็นเส้นตรงและ (2) ประเมินการเปลี่ยนแปลงทั้งหมดพร้อมกัน นี่คือการถดถอยแบบสมการกำลังสอง - การเพิ่มเทอมสี่เหลี่ยมสำหรับตัวทำนายทั้งหมด ยกตัวอย่างเช่นด้วยลูกบาศก์ splines ที่ จำกัด จะเพิ่มฟังก์ชันพื้นฐานที่ไม่เชิงเส้นหนึ่งฟังก์ชันขึ้นไปให้กับแบบจำลองสำหรับตัวทำนายแต่ละตัวซึ่งไม่ทราบว่าทำงานแบบเชิงเส้น
Frank Harrell

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

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

1
เส้นโค้งปีเตอร์มีความซับซ้อนไม่มากไปกว่า quadratics ใครจะรู้วิธีตีความค่าสัมประสิทธิ์ของอายุเมื่ออายุ ^ 2 อยู่ในโมเดล และฉันไม่เห็นว่าการตั้งศูนย์กลางช่วยอะไร ฉันตีความเส้นโค้งที่เหมาะกับกราฟซึ่งผู้ทำงานร่วมกันของฉันชอบ การเปลี่ยนแปลงด้านเป็นสิ่งจำเป็นเกือบตลอดเวลา เป็นเพียงคำถามของความเพียงพอของขนาดตัวอย่างสำหรับการประมาณค่าพารามิเตอร์ที่เพียงพอเพื่อให้พอดีกับผลกระทบที่ไม่เชิงเส้น การถดถอยจะประมาณค่าการแปลงโดยตรงและนำไปสู่ช่วงความเชื่อมั่นที่เหมาะสมซึ่งถูกลงโทษสำหรับ "ข้อมูลที่ดู" ส่วนที่เหลือเกี่ยวข้องกับวิธีการทางอ้อม
Frank Harrell

ขออภัยยังคงโพสต์ข้อความที่นี่ โปรดยกโทษให้ เมื่อต้องการอธิบายความคิดเห็นล่าสุดของฉัน: ตัวอย่างล่าสุดที่ฉันอ่านเป็นข้อความมีรูปแบบผลลัพธ์เป็น y ~ x1 + log (x2) และสิ่งเดียวที่ทราบเกี่ยวกับการเปลี่ยนแปลงคือ "เห็นได้ชัดว่า x2 เหมาะสำหรับการแปลงลอการิทึม ." ฉันพยายามที่จะปรับปรุงความรู้สึกของฉันเมื่อมีการเปลี่ยนแปลงใช้ มันเพียงพอแล้วหรือยังที่จะดูแผนการแปลง y ~ x_i และดำเนินการต่อไปตามที่เราคาดการณ์ไว้ในกรณีเดียว? ฉันควรพิจารณาเรื่องอะไรอีก
แมตต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.