ฉันกำลังใช้ rlm ในแพ็คเกจ R MASS เพื่อถดถอยโมเดลเชิงเส้นหลายตัวแปร มันใช้งานได้ดีสำหรับตัวอย่างจำนวนหนึ่ง แต่ฉันได้รับค่าสัมประสิทธิ์เสมือนสำหรับรุ่นเฉพาะ:
Call: rlm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, maxit = 50, na.action = na.omit)
Residuals:
Min 1Q Median 3Q Max
-7.981e+01 -6.022e-03 -1.696e-04 8.458e-03 7.706e+01
Coefficients:
Value Std. Error t value
(Intercept) 0.0002 0.0001 1.8418
X1 0.0004 0.0000 13.4478
X2 -0.0004 0.0000 -23.1100
X3 -0.0001 0.0002 -0.5511
X4 0.0006 0.0001 8.1489
Residual standard error: 0.01086 on 49052 degrees of freedom
(83 observations deleted due to missingness)
สำหรับการเปรียบเทียบค่าสัมประสิทธิ์เหล่านี้คำนวณโดย lm ():
Call:
lm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, na.action = na.omit)
Residuals:
Min 1Q Median 3Q Max
-76.784 -0.459 0.017 0.538 78.665
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.016633 0.011622 -1.431 0.152
X1 0.046897 0.004172 11.240 < 2e-16 ***
X2 -0.054944 0.002184 -25.155 < 2e-16 ***
X3 0.022627 0.019496 1.161 0.246
X4 0.051336 0.009952 5.159 2.5e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.574 on 49052 degrees of freedom
(83 observations deleted due to missingness)
Multiple R-squared: 0.0182, Adjusted R-squared: 0.01812
F-statistic: 227.3 on 4 and 49052 DF, p-value: < 2.2e-16
พล็อต lm ไม่แสดงค่าผิดปกติสูงเป็นพิเศษใด ๆ ตามที่วัดได้จากระยะทางของ Cook:
แก้ไข
สำหรับการอ้างอิงและหลังจากยืนยันผลลัพธ์ตามคำตอบที่ได้รับจากมาโครคำสั่ง R เพื่อตั้งค่าพารามิเตอร์การปรับแต่งk
ใน Huber estimator คือ ( k=100
ในกรณีนี้):
rlm(y ~ x, psi = psi.huber, k = 100)
@ jbowman Y ถูกต้อง เพิ่มวิธีการ MM สัญชาตญาณของฉันเหมือนกับที่คุณพูดถึง ส่วนที่เหลือของรุ่นนี้มีขนาดค่อนข้างเล็กเมื่อเทียบกับรุ่นอื่นที่ฉันได้ลอง ดูเหมือนว่าวิธีการจะยกเลิกการสังเกตส่วนใหญ่
—
Robert Kubrick
@RobertKubrick คุณเข้าใจว่าการตั้งค่า k เป็น 100 หมายความว่าอย่างไร
—
user603
จากสิ่งนี้: หลายค่า R-squared: 0.0182, R-squared ที่ปรับแล้ว: 0.01812คุณควรตรวจสอบแบบจำลองของคุณอีกครั้ง Outliers, การเปลี่ยนแปลงของการตอบสนองหรือตัวทำนาย หรือคุณควรพิจารณาโมเดลที่ไม่ใช่เชิงเส้น Predictor X3 ไม่สำคัญ สิ่งที่คุณทำไม่ใช่แบบจำลองเชิงเส้นที่ดี
—
Marija Milojevic
rlm
ฟังก์ชั่นน้ำหนักกำลังทำการสำรวจเกือบทั้งหมด คุณแน่ใจหรือว่ามันคือ Y ตัวเดียวกันในการถดถอยสองครั้ง? (เพียงตรวจสอบ ... ) ลองใช้สายmethod="MM"
ของคุณrlm
แล้วลอง (หากล้มเหลว)psi=psi.huber(k=2.5)
(2.5 ผิดพลาดยิ่งใหญ่กว่าค่าเริ่มต้น 1.345) ซึ่งกระจายขอบเขตที่lm
คล้ายกันของฟังก์ชันน้ำหนัก