วิธีรับ R-squared เพื่อความพอดี?


15

จะคำนวณสถิติR-squared ( R2 ) ใน R for loessและ / หรือpredictฟังก์ชั่นเอาต์พุตได้อย่างไร? ตัวอย่างเช่นสำหรับข้อมูลนี้:

cars.lo <- loess(dist ~ speed, cars)
cars.lp <- predict(cars.lo, data.frame(speed = seq(5, 30, 1)), se = TRUE)

cars.lpมีสองอาร์เรย์fitสำหรับรุ่นและse.fitข้อผิดพลาดมาตรฐาน


ในการถดถอยเชิงเส้นเท่ากับความสัมพันธ์กำลังสองระหว่างค่าที่สังเกตและค่าที่ติดตั้ง - แล้วมันเกี่ยวกับอะไร? R2
มาโคร

คำตอบ:


10

ความคิดแรกของฉันคือการคำนวณหลอกR2วัดดังนี้

ss.dist <- sum(scale(cars$dist, scale=FALSE)^2)
ss.resid <- sum(resid(cars.lo)^2)
1-ss.resid/ss.dist

ที่นี่เราได้รับค่า 0.6814984 ( ) ใกล้กับสิ่งที่จะได้รับจากGAM : cor(cars$dist, predict(cars.lo))^2

library(mgcv)
summary(gam(dist ~ speed, data=cars))

loessMultiple R-squaredairqualityairloessR2

ป้อนคำอธิบายรูปภาพที่นี่

R2

spanR2


8
R2R2

R2

3
ไม่จำเป็นว่า "แม่นยำยิ่งขึ้น" อันที่จริงการใช้ Loess เพื่อให้ได้ความแม่นยำในแบบจำลองการทำนายจะเป็นบ้า ฉันคิดว่าการใช้ Loess เป็น "รุ่น" บ่งบอกถึงความเข้าใจผิดที่เป็นไปได้เกี่ยวกับวิธีการทำงานและวิธีการใช้งาน: มันเป็นเครื่องมือกราฟิกและการสำรวจเพื่อช่วยดูรูปแบบและแนวโน้ม เนื่องจากมันเป็นเพียงหน้าต่างเคลื่อนไหวที่นุ่มนวลมันจึงทำหน้าที่เป็นแบบจำลองพื้นที่เชิงพื้นที่ที่ค่อนข้างซับซ้อนซึ่งค่าติดตั้ง ณ จุดหนึ่งขึ้นอยู่กับจุดที่อยู่ใกล้เคียงที่มีอยู่ในชุดข้อมูลและค่าที่มี
whuber

2
R2
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.