วิธีที่ดีที่สุดในการจัดการกับ heteroscedasticity?


19

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

  1. ใช้การติดตั้งเชิงเส้นที่มีประสิทธิภาพโดยใช้rlm()ฟังก์ชั่นของMASSแพคเกจเพราะเห็นได้ชัดว่ามีความทนทานต่อความแข็งแรงที่ต่างกัน

  2. ในฐานะที่เป็นข้อผิดพลาดมาตรฐานของสัมประสิทธิ์ของฉันผิดเนื่องจากความแตกต่างแบบ heteroscedasticity ฉันสามารถปรับข้อผิดพลาดมาตรฐานให้มีความทนทานต่อความแตกต่างแบบ heteroscedasticity ได้หรือไม่ ใช้วิธีการโพสต์ใน Stack Overflow ที่นี่: การถดถอยด้วย Heteroskedasticity แก้ไขข้อผิดพลาดมาตรฐาน

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

การทดสอบ Breusch-Pagan ยืนยันว่าความแปรปรวนไม่คงที่

ค่าคงที่ของฉันในฟังก์ชันของค่าติดตั้งมีลักษณะดังนี้:

https://i.gyazo.com/9407a829a168492b31dfa3d1dd33a21d.png

(รุ่นใหญ่กว่า)


คุณหมายถึง 'stackoverflow' แทนที่จะเป็น 'stackexchange' หรือไม่ (คุณยังอยู่ใน stackexchange ที่นี่) หากเป็นเช่นนั้นโดยทั่วไปแล้วดีกว่าที่จะโยกย้ายคำถามแทนที่จะโพสต์สำเนาชุดที่สอง (ความช่วยเหลือขอให้ไม่โพสต์คำถามเดียวกันหลายครั้ง แต่เลือกที่ดีที่สุดแห่งหนึ่ง)
Glen_b -Reinstate Monica

การเปลี่ยนแปลงในสเปรดนั้นไม่มากจนผลกระทบนั้นจะรุนแรง (นั่นคือแม้ว่ามันจะมีอคติกับข้อผิดพลาดมาตรฐานของคุณและดังนั้นการอนุมานผลกระทบก็อาจจะไม่สร้างความแตกต่างใหญ่โต) ฉันมีแนวโน้มที่จะพิจารณาว่าการแพร่กระจายนั้นเกี่ยวข้องกับค่าเฉลี่ยหรือไม่และอาจดู GLM หรือการเปลี่ยนแปลง ตัวแปร y คืออะไร?
Glen_b

2
ความเป็นไปได้อีกอย่างคือการสร้างแบบจำลอง heteroscedasticity เช่นการใช้glsและหนึ่งในโครงสร้างความแปรปรวนจาก package nlme
Roland

คำตอบ:


18

มันเป็นคำถามที่ดี แต่ฉันคิดว่ามันเป็นคำถามที่ผิด รูปของคุณแสดงให้เห็นชัดเจนว่าคุณมีปัญหาพื้นฐานมากกว่าความแตกต่างที่รุนแรงเช่นแบบจำลองของคุณมีความไม่เชิงเส้นที่คุณไม่ได้คิด ปัญหาที่เป็นไปได้หลายอย่างที่แบบจำลองสามารถมีได้ (แบบไม่เชิงเส้น, การโต้ตอบ, ค่าผิดปกติ, heteroscedasticity, non-Normality) สามารถปลอมแปลงเป็นกันและกันได้ ฉันไม่คิดว่ามีกฎที่ยากและรวดเร็ว แต่โดยทั่วไปฉันขอแนะนำให้จัดการกับปัญหาตามลำดับ

outliers > nonlinearity > heteroscedasticity > non-normality

(เช่นไม่ต้องกังวลเกี่ยวกับความไม่เชิงเส้นก่อนที่จะตรวจสอบว่ามีข้อสังเกตแปลก ๆ ที่บิดเบือนความพอดีหรือไม่ไม่ต้องกังวลเรื่องภาวะปกติก่อนที่คุณจะกังวลเกี่ยวกับความแตกต่างทางเพศ)

ในกรณีพิเศษนี้ฉันจะใส่โมเดลกำลังสองy ~ poly(x,2)(หรือpoly(x,2,raw=TRUE)หรือy ~ x + I(x^2)และดูว่ามันทำให้ปัญหาหายไปหรือไม่


พล็อตมีขนาดเล็กและแกนไม่มีการติดป้าย ฉันไม่รู้ว่ามันเป็นพล็อตส่วนที่เหลือหรือไม่ ฉันคิดว่า OP รวมคำที่ยกกำลังสองเช่น ถ้าไม่คุณก็พูดถูก
gung - Reinstate Monica

1
ในเบราว์เซอร์ของฉันฉันจะเห็นว่าช่วงแกน y เริ่มจาก -4 ถึง 3 ซึ่งดูเหมือนว่าจะแนะนำส่วนที่เหลือเทียบกับพล็อตที่ติดตั้ง / แยกส่วนของสเกลที่ตั้ง ...
Ben Bolker

1
สวัสดีเบ็นรักในสิ่งที่คุณทำ คุณสามารถขยายแนวคิดที่ว่า "ผู้ผิด" เป็นปัญหาที่ใหญ่ที่สุดได้หรือไม่? คุณรวมคะแนนยกระดับสูงเดี่ยว ๆ ไว้เป็น "ค่าผิดปกติ" แม้ว่าจะมีเศษเหลืออยู่บ้างหรือไม่? ฉันจัดการกับการสังเกตค่ามากตลอดเวลาในสายงานของฉัน (สถิติสิ่งแวดล้อม) และฉันพบว่าบางคน (โดยเฉพาะ EPA) มีแนวโน้มที่จะระเบิดออกนอกเส้นทางสัดส่วน (ให้อภัยปุนใด ๆ โดยไม่ตั้งใจ) และเป็นวิธีที่จะกระตือรือร้น เพื่อยกเว้นพวกเขา ฉันมักจะใช้ทัศนคติที่ทนต่อคนผิดถ้าฉันไม่สามารถหาหลักฐานที่ดีว่าพวกเขาเป็นผลมาจากข้อผิดพลาดของข้อมูล (การรวบรวม, รายการ) อย่างชัดเจน
Dalton Hance

1
@DaltonHance: เราอาจจะค่อนข้างมากในหน้าเดียวกัน ประเด็นของฉันก็คือว่าถ้าคุณมีค่าผิดปกติ (ไม่ว่าจะมีคำจำกัดความใด) และพวกเขาไม่ได้คำนึงถึงรูปแบบทางสถิติใด ๆ / วิธีการที่คุณใช้ (แบบผสม, สถิติที่มีประสิทธิภาพ, การแจกแจงแบบไขมันเป็นต้น) มีแนวโน้มที่จะทำให้การวิเคราะห์ส่วนที่เหลือหมดไป - ซึ่งจะทำให้ส่วนที่เหลือดูไม่เชิงเส้น / heteroscedastic / ไม่ปกติ ฉันเห็นด้วยอย่างแน่นอนว่าคุณไม่ควรเพียงแค่คิดไตร่ตรอง / ไตร่ตรองอย่างถี่ถ้วน
Ben Bolker

8

ฉันรายการจำนวนของวิธีการในการจัดการกับ heteroscedasticity (มีRตัวอย่าง) ที่นี่: ทางเลือกทางเดียว ANOVA ข้อมูล คำแนะนำเหล่านั้นส่วนใหญ่จะเหมาะน้อยกว่าเพราะคุณมีตัวแปรต่อเนื่องเดียวมากกว่าตัวแปรเด็ดขาดหลายระดับ แต่มันอาจดีที่จะอ่านเป็นภาพรวม

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

นี่คือคำตอบสำหรับคำถามเฉพาะของคุณ:

  1. การถดถอยที่แข็งแกร่งเป็นตัวเลือกที่ทำงานได้ แต่จะดีกว่าถ้าจับคู่กับน้ำหนักในความคิดของฉัน หากคุณไม่กังวลว่า heteroscedasticity เกิดจากค่าผิดปกติคุณสามารถใช้การถดถอยเชิงเส้นแบบปกติกับน้ำหนักได้ โปรดทราบว่าความแปรปรวนอาจมีความอ่อนไหวต่อค่าผิดปกติมากและผลลัพธ์ของคุณอาจมีความอ่อนไหวต่อน้ำหนักที่ไม่เหมาะสมดังนั้นสิ่งที่อาจสำคัญกว่าการใช้การถดถอยที่สมบูรณ์แบบสำหรับรุ่นสุดท้ายจะใช้การกระจายน้ำหนักเพื่อประเมินน้ำหนัก ในเธรดที่เชื่อมโยงกันฉันใช้ 1 / IQR
  2. ข้อผิดพลาดมาตรฐานผิดเนื่องจากความแตกต่างที่รุนแรง คุณสามารถปรับข้อผิดพลาดมาตรฐานได้ด้วยตัวประมาณแซนวิช Huber-White นั่นคือสิ่งที่ @GavinSimpson กำลังทำอยู่ในเธรด SO ที่เชื่อมโยง

XX


1
การใช้การถดถอยที่แข็งแกร่งจากแพ็คเกจ lmrob จะอนุมานน้ำหนักบางส่วนโดยอัตโนมัติทำไมไม่ใช้แทนใน # 1
tool.ish

1

โหลดsandwich packageและคำนวณเมทริกซ์ var-cov ของการถดถอยของคุณด้วยvar_cov<-vcovHC(regression_result, type = "HC4")(อ่านคู่มือsandwich) ตอนนี้ด้วยการlmtest packageใช้coeftestฟังก์ชั่น:

coeftest(regression_result, df = Inf, var_cov)

0

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

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