เริ่มต้นด้วยแนวคิดพื้นฐานของการเปลี่ยนแปลง โมเดลเริ่มต้นของคุณคือผลรวมของการเบี่ยงเบนกำลังสองจากค่าเฉลี่ย ค่า R ^ 2 คือสัดส่วนของความแปรปรวนที่คำนวณโดยการใช้ตัวแบบทางเลือก ตัวอย่างเช่น R-squared บอกคุณว่าความแปรปรวนใน Y ที่คุณสามารถกำจัดได้โดยการรวมระยะทางยกกำลังสองจากเส้นการถดถอยมากกว่าค่าเฉลี่ย
ฉันคิดว่านี่ชัดเจนอย่างสมบูรณ์หากเราคิดถึงปัญหาการถดถอยอย่างง่าย พิจารณาแผนการกระจายทั่วไปที่คุณมีตัวทำนาย X ตามแกนนอนและการตอบสนอง Y ตามแกนตั้ง
ค่าเฉลี่ยคือเส้นแนวนอนบนพล็อตที่ Y คงที่ ความแปรปรวนทั้งหมดใน Y คือผลรวมของความแตกต่างกำลังสองระหว่างค่าเฉลี่ยของ Y และจุดข้อมูลแต่ละจุด มันคือระยะห่างระหว่างเส้นเฉลี่ยกับจุดแต่ละจุดยกกำลังสองและรวมกัน
นอกจากนี้คุณยังสามารถคำนวณการวัดความแปรปรวนอีกครั้งหลังจากที่คุณมีเส้นถดถอยจากโมเดล นี่คือความแตกต่างระหว่างแต่ละจุด Y กับเส้นการถดถอย แทนที่จะเป็น (Y - ค่าเฉลี่ย) กำลังสองเราได้ (Y - จุดบนเส้นการถดถอย) ยกกำลังสอง
หากเส้นการถดถอยนั้นเป็นแนวนอนเราจะได้ระยะทางรวมน้อยกว่าเมื่อเราใช้เส้นการถดถอยที่พอดีนี้แทนที่จะเป็นค่าเฉลี่ยนั่นคือมันมีการเปลี่ยนแปลงที่ไม่สามารถอธิบายได้น้อยกว่า อัตราส่วนระหว่างรูปแบบเพิ่มเติมที่อธิบายและรูปแบบดั้งเดิมคือ R ^ 2 ของคุณ มันเป็นสัดส่วนของความแปรปรวนดั้งเดิมในการตอบกลับของคุณที่อธิบายโดยการปรับเส้นการถดถอยให้เหมาะสม
นี่คือโค้ด R บางตัวสำหรับกราฟที่มีค่าเฉลี่ย, เส้นถดถอยและเซกเมนต์จากเส้นถดถอยไปยังแต่ละจุดเพื่อช่วยให้มองเห็นได้:
library(ggplot2)
data(faithful)
plotdata <- aggregate( eruptions ~ waiting , data = faithful, FUN = mean)
linefit1 <- lm(eruptions ~ waiting, data = plotdata)
plotdata$expected <- predict(linefit1)
plotdata$sign <- residuals(linefit1) > 0
p <- ggplot(plotdata, aes(y=eruptions, x=waiting, xend=waiting, yend=expected) )
p + geom_point(shape = 1, size = 3) +
geom_smooth(method=lm, se=FALSE) +
geom_segment(aes(y=eruptions, x=waiting, xend=waiting, yend=expected, colour = sign),
data = plotdata) +
theme(legend.position="none") +
geom_hline(yintercept = mean(plotdata$eruptions), size = 1)