วิธีการคำนวณปริมาณคงเหลือมาตรฐานใน r
คงเหลือ คือความแตกต่างระหว่างค่าที่สังเกตได้กับค่าที่คาดการณ์ไว้ใน แบบจำลองการถดถอย
มีการคำนวณดังนี้:
คงเหลือ = ค่าที่สังเกตได้ – ค่าที่คาดการณ์ไว้
หากเราพล็อตค่าที่สังเกตได้และวางทับเส้นการถดถอยที่ติดตั้งไว้ ยอดคงเหลือสำหรับ การสังเกต แต่ละครั้งจะเป็นระยะห่างแนวตั้งระหว่างการสังเกตและเส้นการถดถอย:

สารตกค้างประเภทหนึ่งที่เรามักใช้เพื่อระบุค่าผิดปกติในแบบจำลองการถดถอยเรียกว่า สารตกค้างมาตรฐาน
มีการคำนวณดังนี้:
r i = e i / s(e i ) = e i / RSE√ 1-h ii
ทอง:
- e i : สาร ตกค้าง i
- RSE: ข้อผิดพลาดมาตรฐานคงเหลือของแบบจำลอง
- h ii : การเพิ่มขึ้นของการสังเกต ครั้งที่ 3
ในทางปฏิบัติ เรามักจะพิจารณาปริมาณคงเหลือที่เป็นมาตรฐานใดๆ ซึ่งมีค่าสัมบูรณ์มากกว่า 3 ว่าเป็นค่าผิดปกติ
บทช่วยสอนนี้ให้ตัวอย่างทีละขั้นตอนของวิธีคำนวณปริมาณคงเหลือที่เป็นมาตรฐานในหน่วย R
ขั้นตอนที่ 1: ป้อนข้อมูล
ขั้นแรก เราจะสร้างชุดข้อมูลขนาดเล็กเพื่อใช้งานใน R:
#create data data <- data.frame(x=c(8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30), y=c(41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57)) #viewdata data xy 1 8 41 2 12 42 3 12 39 4 13 37 5 14 35 6 16 39 7 17 45 8 22 46 9 24 39 10 26 49 11 29 55 12 30 57
ขั้นตอนที่ 2: ติดตั้งโมเดลการถดถอย
ต่อไป เราจะใช้ฟังก์ชัน lm() เพื่อให้พอดีกับ โมเดลการถดถอยเชิงเส้นอย่างง่าย :
#fit model model <- lm(y ~ x, data=data) #view model summary summary(model) Call: lm(formula = y ~ x, data = data) Residuals: Min 1Q Median 3Q Max -8.7578 -2.5161 0.0292 3.3457 5.3268 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 29.6309 3.6189 8.188 9.6e-06 *** x 0.7553 0.1821 4.148 0.00199 ** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 4.442 on 10 degrees of freedom Multiple R-squared: 0.6324, Adjusted R-squared: 0.5956 F-statistic: 17.2 on 1 and 10 DF, p-value: 0.001988
ขั้นตอนที่ 3: คำนวณปริมาณคงเหลือที่ได้มาตรฐาน
ต่อไป เราจะใช้ฟังก์ชันในตัว rstandard() เพื่อคำนวณค่าคงเหลือที่เป็นมาตรฐานของแบบจำลอง:
#calculate the standardized residuals standard_res <- rstandard(model) #view the standardized residuals standard_res 1 2 3 4 5 6 1.40517322 0.81017562 0.07491009 -0.59323342 -1.24820530 -0.64248883 7 8 9 10 11 12 0.59610905 -0.05876884 -2.11711982 -0.06655600 0.91057211 1.26973888
เราสามารถเพิ่มส่วนที่เหลือที่ได้มาตรฐานลงในกรอบข้อมูลดั้งเดิมได้หากเราต้องการ:
#column bind standardized residuals back to original data frame final_data <- cbind(data, standard_res) #view data frame xy standard_res 1 8 41 1.40517322 2 12 42 0.81017562 3 12 39 0.07491009 4 13 37 -0.59323342 5 14 35 -1.24820530 6 16 39 -0.64248883 7 17 45 0.59610905 8 22 46 -0.05876884 9 24 39 -2.11711982 10 26 49 -0.06655600 11 29 55 0.91057211 12 30 57 1.26973888
จากนั้นเราสามารถจัดเรียงการสังเกตแต่ละรายการจากมากไปหาน้อยโดยอิงจากปริมาณคงเหลือที่เป็นมาตรฐานเพื่อดูว่าการสังเกตใดใกล้เคียงกับค่าผิดปกติมากที่สุด:
#sort standardized residuals descending
final_data[ order (-standard_res),]
xy standard_res
1 8 41 1.40517322
12 30 57 1.26973888
11 29 55 0.91057211
2 12 42 0.81017562
7 17 45 0.59610905
3 12 39 0.07491009
8 22 46 -0.05876884
10 26 49 -0.06655600
4 13 37 -0.59323342
6 16 39 -0.64248883
5 14 35 -1.24820530
9 24 39 -2.11711982
จากผลลัพธ์ เราจะเห็นว่าไม่มีสารตกค้างมาตรฐานใดเกินค่าสัมบูรณ์ที่ 3 ดังนั้นจึงไม่มีข้อสังเกตใดที่ดูเหมือนจะมีค่าผิดปกติ
ขั้นตอนที่ 4: เห็นภาพปริมาณคงเหลือที่ได้มาตรฐาน
สุดท้ายนี้ เราสามารถสร้าง Scatterplot เพื่อให้เห็นภาพค่าของตัวแปรทำนายเทียบกับค่าคงเหลือมาตรฐาน:
#plot predictor variable vs. standardized residuals
plot(final_data$x, standard_res, ylab=' Standardized Residuals ', xlab=' x ')
#add horizontal line at 0
abline(0, 0)
แหล่งข้อมูลเพิ่มเติม
สารตกค้างคืออะไร?
สารตกค้างที่ได้มาตรฐานคืออะไร?
รู้เบื้องต้นเกี่ยวกับการถดถอยเชิงเส้นพหุคูณ