ไลบรารี splines มีฟังก์ชั่นbs
และns
ที่จะสร้างพื้นฐานอิสระเพื่อใช้กับlm
ฟังก์ชั่นจากนั้นคุณสามารถใส่โมเดลเชิงเส้นและโมเดลรวมถึง Splines และใช้anova
ฟังก์ชั่นเพื่อทำการทดสอบแบบจำลองทั้งหมดและลดลงเพื่อดูว่า กว่าโมเดลเชิงเส้น
นี่คือตัวอย่างรหัส:
x <- rnorm(1000)
y <- sin(x) + rnorm(1000, 0, 0.5)
library(splines)
fit1 <- lm(y~x)
fit0 <- lm(y~1)
fit2 <- lm(y~bs(x,5))
anova(fit1,fit2)
anova(fit0,fit2)
plot(x,y, pch='.')
abline(fit1, col='red')
xx <- seq(min(x),max(x), length.out=250)
yy <- predict(fit2, data.frame(x=xx))
lines(xx,yy, col='blue')
นอกจากนี้คุณยังสามารถใช้poly
ฟังก์ชั่นเพื่อทำการทดสอบพอดีกับพหุนามและทดสอบคำที่ไม่เป็นเชิงเส้นเป็นการทดสอบความโค้ง
R2
มีเทคนิคในการคำนวณและพล็อตช่วงความมั่นใจสำหรับแบบเหลือง (ฉันคิดว่าอาจมีวิธีในตัวในแพ็คเกจ ggplot2) คุณสามารถลงจุดความเชื่อมั่นและดูว่าเส้นตรงจะพอดีกับวงหรือไม่ ไม่ใช่ค่า p แต่ยังคงให้ใช่ / ไม่ใช่
คุณสามารถใส่แบบจำลองเชิงเส้นและนำส่วนที่เหลือและใส่แบบจำลองที่เหมาะสมกับส่วนที่เหลือเป็นการตอบสนอง (และตัวแปรที่น่าสนใจเป็นตัวทำนาย) ถ้าแบบจำลองที่แท้จริงเป็นแบบเชิงเส้นพอดีแบบนี้ควรอยู่ใกล้กับเส้นแบนและเรียงคะแนนใหม่ สัมพันธ์กับผู้ทำนายไม่ควรสร้างความแตกต่างใด ๆ คุณสามารถใช้สิ่งนี้เพื่อสร้างแบบทดสอบการเปลี่ยนรูป พอดีกับดินเหลืองหาค่าที่ทำนายได้ไกลที่สุดจาก 0 ตอนนี้สุ่มเปลี่ยนจุดและพอดีกับดินเหลืองใหม่และหาจุดทำนายที่ไกลที่สุดจาก 0 ทำซ้ำหลาย ๆ ครั้งค่า p คือค่าสัดส่วนของค่าที่เปลี่ยนแปลง จาก 0 มากกว่าค่าเดิม
คุณอาจต้องการดูการตรวจสอบข้ามเป็นวิธีการเลือกแบนด์วิดท์เหลือง สิ่งนี้ไม่ได้ให้ค่า p แต่แบนด์วิธที่ไม่มีที่สิ้นสุดสอดคล้องกับโมเดลเชิงเส้นที่สมบูรณ์หากการตรวจสอบความถูกต้องไขว้เขวแนะนำแบนด์วิดท์ที่มีขนาดใหญ่มากดังนั้นที่แนะนำโมเดลเชิงเส้นอาจจะสมเหตุสมผลถ้าแบนด์วิดท์สูงกว่า แบนด์วิดท์ขนาดเล็กนั้นแสดงให้เห็นถึงความโค้งที่แน่นอนและเชิงเส้นไม่เพียงพอ