วิธีแก้ไข: การคาดการณ์การปรับอันดับที่ไม่ดีอาจทำให้เข้าใจผิดได้


คำเตือนทั่วไปที่คุณอาจพบใน R คือ:

 Warning message:
In predict.lm(model, df):
  prediction from a rank-deficient fit may be misleading

คำเตือนนี้อาจเกิดขึ้นได้จากสองสาเหตุ:

เหตุผลที่ 1 : ตัวแปรทำนายสองตัวมีความสัมพันธ์กันอย่างสมบูรณ์แบบ

เหตุผลที่ 2 : คุณมีพารามิเตอร์โมเดลมากกว่าการสังเกตในชุดข้อมูล

ตัวอย่างต่อไปนี้แสดงให้เห็นว่าแต่ละปัญหาอาจเกิดขึ้นในทางปฏิบัติได้อย่างไร

เหตุผลที่ #1: ตัวแปรทำนายสองตัวมีความสัมพันธ์กันอย่างสมบูรณ์แบบ

สมมติว่าเราใส่โมเดลการถดถอยเชิงเส้นพหุคูณต่อไปนี้ลงใน R แล้วลองใช้มันเพื่อทำนาย:

 #create data frame
df <- data. frame (x1=c(1, 2, 3, 4),
                 x2=c(2, 4, 6, 8),
                 y=c(6, 10, 19, 26))

#fit multiple linear regression model
model <- lm(y~x1+x2, data=df)

#use model to make predictions
predict(model, df)

   1 2 3 4 
 4.9 11.8 18.7 25.6 
Warning message:
In predict.lm(model, df):
  prediction from a rank-deficient fit may be misleading

เราได้รับข้อความเตือนเนื่องจากตัวแปรทำนาย x1 และ x2 มี ความสัมพันธ์กันอย่างสมบูรณ์

โปรดทราบว่าค่า x2 นั้นเท่ากับค่า x1 คูณด้วยสอง นี่คือตัวอย่างของ multicollinearity ที่สมบูรณ์แบบ

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

วิธีที่ง่ายที่สุดในการแก้ปัญหานี้คือเพียงลบตัวแปรทำนายตัวใดตัวหนึ่งออกจากแบบจำลอง เนื่องจากการมีตัวแปรทำนายทั้งสองตัวในแบบจำลองนั้นซ้ำซ้อน

เหตุผลที่ #2: มีพารามิเตอร์โมเดลมากกว่าการสังเกต

สมมติว่าเราใส่โมเดลการถดถอยเชิงเส้นพหุคูณต่อไปนี้ลงใน R แล้วลองใช้มันเพื่อทำนาย:

 #create data frame
df <- data. frame (x1=c(1, 2, 3, 4),
                 x2=c(3, 3, 8, 12),
                 x3=c(4, 6, 3, 11),
                 y=c(6, 10, 19, 26))

#fit multiple linear regression model
model <- lm(y~x1*x2*x3, data=df)

#use model to make predictions
predict(model, df)

 1 2 3 4 
 6 10 19 26 
Warning message:
In predict.lm(model, df):
  prediction from a rank-deficient fit may be misleading

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

  • x1
  • x2
  • x3
  • x1*x2
  • x1*3
  • x2*x3
  • x1*x2*x3

อย่างไรก็ตาม เรามีข้อสังเกตทั้งหมดเพียงสี่รายการในชุดข้อมูล

เนื่องจากจำนวนพารามิเตอร์โมเดลมากกว่าจำนวนการสังเกตในชุดข้อมูล เราจึงเรียก ข้อมูลมิติสูง นี้

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

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

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีจัดการกับข้อผิดพลาดทั่วไปอื่น ๆ ใน R:

วิธีจัดการ: glm.fit: อัลกอริทึมไม่ได้มาบรรจบกัน
วิธีจัดการ: glm.fit: ความน่าจะเป็นที่ปรับด้วยตัวเลข 0 หรือ 1 เกิดขึ้น

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *