ข้อผิดพลาด“ ระบบเป็นเอกพจน์คำนวณ” เมื่อเรียกใช้ glm


29

ฉันใช้แพ็คเกจฐานข้อมูลที่แข็งแกร่งเพื่อเรียกใช้การประมาณค่า GLM อย่างไรก็ตามเมื่อฉันทำฉันได้รับข้อผิดพลาดต่อไปนี้:

Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) : 
  system is computationally singular: reciprocal condition number = 1.66807e-16

สิ่งนี้หมายความว่า / บ่งชี้? และฉันจะแก้ปัญหาได้อย่างไร

PS หากคุณต้องการอะไร (สูตร / ข้อมูลจำเพาะหรือข้อมูล) ที่จะตอบฉันยินดีที่จะให้มัน

คำตอบ:


26

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

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

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


ขอบคุณคำถามสองข้อ: 1. คุณรู้จักโพรซีเดอร์ใดใน r ซึ่งอาจใช้งานได้ดีสำหรับฉันในการแก้ไขข้อบกพร่องนี้? 2. ฉันสามารถเห็นได้ว่าเมื่อฉันเรียกใช้แบบจำลองเดียวกันแน่นอนในข้อมูลเดียวกันที่แน่นอนด้วย glm () แทน glmrob () ฉันไม่ได้รับข้อผิดพลาดใด ๆ - ไม่สมเหตุสมผลหรือหมายความถึงข้อผิดพลาดใน glmrob () ฟังก์ชั่น?
NK1

2

ใช้เวลานานกับข้อผิดพลาดนี้ แต่เช็คเอาต์หน้านี้ซึ่งแก้ไขให้ฉัน

https://www.kaggle.com/c/house-prices-advanced-regression-techniques/discussion/24586

โดยทั่วไปคุณสามารถเปลี่ยนวิธีที่หนูใช้ ฉันใช้ PPN และเปลี่ยนเป็นรถเข็น


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