การขาดอันดับคืออะไรและจะจัดการกับมันอย่างไร


87

การปรับการถดถอยโลจิสติกให้เหมาะสมโดยใช้lme4ลงท้ายด้วย

Error in mer_finalize(ans) : Downdated X'X is not positive definite. 

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


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

3
โดยปกติหมายความว่าตัวแปรของคุณอย่างน้อยหนึ่งตัวไม่เป็นอิสระเป็นเส้นตรงซึ่งในกรณีที่ตัวแปรที่มีปัญหาสามารถแสดงเป็นการรวมกันของตัวแปรอื่น ๆ แพคเกจ R caretมีฟังก์ชั่นที่เรียกว่าfindLinearCombosซึ่งจะบอกคุณซึ่งเป็นตัวแปรที่มีปัญหา
richiemorrisroe

2
ฉันเห็นด้วยกับ richiemorrisroe เนื่องจากมันบอกว่า X'X ไม่แน่นอนแน่นอนฉันคิดว่าพวกเขาหมายความว่าเมทริกซ์การออกแบบ X'X นั้นเป็นเอกพจน์และดังนั้นจึงไม่มีอันดับเต็ม ดังนั้นอย่างน้อยหนึ่ง covariates สามารถเขียนเป็นชุดเชิงเส้นที่แน่นอนของ covariates อื่น ๆ
Michael Chernick

คำตอบ:


123

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

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

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

บางครั้งคุณมีข้อมูลผิดที่ ตัวอย่างเช่นคุณไม่สามารถวางโมเดลสมการกำลังสองมิติได้หากสิ่งที่คุณมีคือจุดที่อยู่ในแนวเส้นตรงในสองมิติ นั่นคือสมมติว่าคุณมีจุดกระจายอยู่ตามแนว x = y ในระนาบเท่านั้นและคุณต้องการให้แบบจำลองสำหรับพื้นผิว z (x, y) ถึงแม้จะมีจุด zillions (ไม่ซ้ำกัน) คุณจะมีข้อมูลเพียงพอที่จะประเมินแบบจำลองที่ชาญฉลาดมากกว่าแบบจำลองค่าคงที่ได้อย่างชาญฉลาด น่าแปลกใจที่นี่เป็นปัญหาที่พบโดยทั่วไปในข้อมูลตัวอย่าง ผู้ใช้สงสัยว่าทำไมพวกเขาไม่สามารถสร้างแบบจำลองที่ดีได้ ปัญหาถูกสร้างขึ้นในข้อมูลที่มีการสุ่มตัวอย่าง

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

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

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

ก่อนอื่นให้พูดคุยเกี่ยวกับหน่วยและการปรับขนาด สมมติว่าฉันพยายามที่จะแก้ปัญหาที่ตัวแปรหนึ่งมีขนาดใหญ่กว่าอีกตัวแปรหนึ่ง ตัวอย่างเช่นสมมติว่าฉันมีปัญหาที่เกี่ยวข้องกับความสูงและขนาดรองเท้าของฉัน ฉันจะวัดความสูงของฉันเป็นนาโนเมตร ดังนั้นความสูงของฉันจะเป็นนาโนเมตรประมาณ 1.78 พันล้าน (1.78e9) แน่นอนฉันจะเลือกที่จะวัดขนาดรองเท้าของฉันเป็นกิโลพาร์เซคดังนั้น 9.14e-21 กิโลพาร์เซก เมื่อคุณสร้างแบบจำลองการถดถอยการถดถอยเชิงเส้นคือทั้งหมดที่เกี่ยวกับพีชคณิตเชิงเส้นซึ่งเกี่ยวข้องกับการรวมกันของตัวแปรเชิงเส้น ปัญหานี่คือตัวเลขเหล่านี้แตกต่างกันไปตามคำสั่งขนาดใหญ่ (และไม่ได้เป็นหน่วยเดียวกัน) คณิตศาสตร์จะล้มเหลวเมื่อโปรแกรมคอมพิวเตอร์พยายามเพิ่มและลบตัวเลขที่แตกต่างกันตามคำสั่งจำนวนมาก (เพื่อความแม่นยำสองเท่า จำนวน,

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

ถัดไปคุณอาจเห็นปัญหาเกี่ยวกับตัวเลขจำนวนมากและการเปลี่ยนแปลงเล็กน้อยในตัวเลขเหล่านั้น ดังนั้นสมมติว่าคุณพยายามสร้างแบบจำลองพหุนามลำดับสูงที่มีข้อมูลที่อินพุตของคุณอยู่ในช่วง [1,2] Squaring, cubing, ฯลฯ ตัวเลขที่อยู่ในลำดับที่ 1 หรือ 2 จะทำให้ไม่มีปัญหาเมื่อทำงานในเลขคณิตความแม่นยำสองเท่า หรือเพิ่ม 1e12 ให้กับทุกหมายเลข ในทางทฤษฎีแล้วคณิตศาสตร์จะอนุญาตสิ่งนี้ สิ่งที่มันทำคือเลื่อนโมเดลพหุนามใด ๆ ที่เราสร้างบนแกน x มันจะมีรูปร่างเหมือนกันทุกประการ แต่แปลโดย 1e12 ไปทางขวา ในทางปฏิบัติพีชคณิตเชิงเส้นจะล้มเหลวอย่างน่าสังเวชเนื่องจากปัญหาการจัดอันดับ คุณไม่ได้ทำอะไรนอกจากแปลข้อมูล แต่ทันใดนั้นคุณก็เริ่มเห็นเมทริกซ์เอกพจน์โผล่ขึ้นมา

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

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

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


42

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

n×pXnpp×pXTX(XTX)1

XXnXTX

(XTX)1

X


23

คำตอบของ user974 นั้นยอดเยี่ยมจากมุมมองการสร้างแบบจำลองและคำตอบของ gui11aume นั้นยอดเยี่ยมจากมุมมองทางคณิตศาสตร์ ฉันต้องการปรับแต่งคำตอบเดิมอย่างเคร่งครัดจากมุมมองการสร้างแบบจำลองแบบผสม: โดยเฉพาะมุมมองการสร้างแบบจำลองแบบผสมทั่วไป (GLMM) อย่างที่คุณเห็นคุณได้อ้างถึงฟังก์ชั่น R mer_finalizeซึ่งอยู่ในlme4แพ็คเกจอันน่าอัศจรรย์ คุณยังบอกด้วยว่าคุณกำลังปรับโมเดลการถดถอยโลจิสติกให้เหมาะสม

มีปัญหามากมายที่ครอบตัดกับอัลกอริทึมเชิงตัวเลขประเภทนี้ ปัญหาของโครงสร้างเมทริกซ์ของเมทริกซ์โมเดลของเอฟเฟกต์คงที่เป็นสิ่งที่ควรพิจารณาเมื่อผู้ใช้กล่าวถึง 974 แต่นี่เป็นเรื่องง่ายมากที่จะประเมินเพียงคำนวณmodel.matrixของคุณformula=และdata=ข้อโต้แย้งในรูปแบบและใช้ดีเทอร์มิแนนต์โดยใช้detฟังก์ชัน อย่างไรก็ตามเอฟเฟกต์แบบสุ่มมีความซับซ้อนอย่างมากในการตีความรูทีนการประมาณเชิงตัวเลขและการอนุมานเกี่ยวกับเอฟเฟกต์คงที่ (สิ่งที่คุณมักคิดว่าเป็นสัมประสิทธิ์การถดถอยในรูปแบบการถดถอย

สมมติว่าในกรณีที่ง่ายที่สุดคุณจะติดตั้งโมเดลดักจับแบบสุ่มเท่านั้น จากนั้นคุณก็กำลังพิจารณาว่าจะมีแหล่งที่แตกต่างกันหลายพันแหล่งที่แตกต่างกันของความหลากหลายที่จัดขึ้นอย่างต่อเนื่องในมาตรการซ้ำภายในกลุ่ม คุณประเมินการสกัดกั้น "ใหญ่" แต่บัญชีสำหรับความต่างกันโดยสมมติว่าการสกัดกั้นเฉพาะของคลัสเตอร์มีการแจกแจงปกติบางค่า 0 จุดตัดมีการประมาณซ้ำและใช้เพื่ออัปเดตเอฟเฟ็กต์โมเดลจนกว่าการบรรจบกันจะเกิดขึ้น (ความน่าจะเป็นของบันทึก - หรือการประมาณของมัน - ขยายใหญ่สุด) แบบจำลองผสมนั้นง่ายมากในการมองเห็น แต่ในทางคณิตศาสตร์ความน่าจะเป็นที่ซับซ้อนมากและมีแนวโน้มที่จะเกิดปัญหากับเอกพจน์, มินิมาร์ทในท้องถิ่นและจุดขอบเขต (odds ratios = 0 or infinity) โมเดลผสมไม่มีความน่าจะเป็นกำลังสองเช่น GLM แบบบัญญัติ

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

  1. มีข้อสังเกตกี่ข้อต่อคลัสเตอร์
  2. ผลลัพธ์จากโมเดลร่อแร่เหมาะสมกับการใช้ GEE อย่างไร
  3. ICC ของกลุ่มคืออะไร ความแตกต่างของคลัสเตอร์ภายในมีความใกล้เคียงกับความแตกต่างระหว่างคลัสเตอร์หรือไม่
  4. ติดตั้งเครื่องมือประมาณ 1 ขั้นตอนและดูผลแบบสุ่มโดยประมาณ เป็นปกติหรือไม่?
  5. ติดตั้งโมเดลผสมแบบเบย์และดูการกระจายด้านหลังสำหรับเอฟเฟกต์คงที่ พวกเขาดูเหมือนจะมีการกระจายตัวปกติประมาณ?
  6. ดูพล็อตแผงของกลุ่มที่แสดงการเปิดรับหรือการถดถอยที่น่าสนใจกับผลลัพธ์โดยใช้ที่ราบรื่นกว่า แนวโน้มมีความสม่ำเสมอและชัดเจนหรือมีหลายวิธีที่เป็นไปได้ที่แนวโน้มดังกล่าวอาจอธิบายได้? (เช่น "ความเสี่ยง" ในกลุ่มที่ยังไม่ได้เปิดรับแสงจะปรากฏขึ้นป้องกันหรือเป็นอันตราย?)
  7. เป็นไปได้หรือไม่ที่จะ จำกัด ตัวอย่างไปยังผู้ทดสอบที่มีจำนวนการสังเกตต่อคนที่เพียงพอเท่านั้น (เช่น, n = 5 หรือ n = 10) เพื่อประมาณผลการรักษาแบบ "อุดมคติ"?

อีกวิธีหนึ่งคุณสามารถพิจารณาแนวทางการสร้างแบบจำลองที่แตกต่างกัน:

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

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