我试图在我的数据集上使用平滑样条曲线。我使用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)
我得到的是:
谁能告诉我这里做错了什么?
两个问题:
数字1.如果你做smooth.spline(x, y)
,用plot(x, y)
而不是plot(y, x)
绘制你的数据。
2号。不要传入data.train
进行拟合,然后使用不同的数据集data
进行绘图。如果要查看样条曲线在新数据点的外观,请首先使用predict.smooth.spline
。见?predict.smooth.spline
。