我正在尝试在数据集中使用平滑样条。我使用smooth.spline函数。并想接下来画出我的身材但是,由于某种原因,它不会绘制我的模型。它甚至没有给出任何错误。在运行smooth.spline函数后,我只会收到一条错误消息,即“使用非唯一的“ x”值进行交叉验证似乎令人怀疑”。但是我认为这不会对实际结果产生太大影响。
我的代码是:
library('splines')
fit_spline <- smooth.spline(data.train$age,data.train$effect,cv = TRUE)
plot(data$effect,data$age,col="grey")
lines(fit_spline,lwd=2,col="purple")
legend("topright",("Smoothing Splines with 5.048163 df selected by CV"),col="purple",lwd=2)
我得到的是:
有人可以告诉我我在做什么错吗?
答案 0 :(得分:1)
两个问题:
数字1。如果执行smooth.spline(x, y)
,则用plot(x, y)
而不是plot(y, x)
绘制数据。
数字2。请勿传递data.train
进行拟合,然后传递另一个数据集data
进行绘制。如果要查看样条曲线在新数据点的外观,请首先使用predict.smooth.spline
。参见?predict.smooth.spline
。