วิธีแก้ไข: การคาดการณ์การปรับอันดับที่ไม่ดีอาจทำให้เข้าใจผิดได้
คำเตือนทั่วไปที่คุณอาจพบใน 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 เกิดขึ้น