#r
#r #построить #сплайн
Вопрос:
Я пытаюсь использовать сглаживающий сплайн в своем наборе данных. Я использую функцию 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:
Две проблемы:
Номер 1. Если вы это сделаете smooth.spline(x, y)
, постройте график своих данных с plot(x, y)
помощью not plot(y, x)
.
Номер 2. Не передавайте data.train
для подгонки затем другой набор data
данных для построения графика. Если вы хотите увидеть, как выглядит сплайн в новых точках данных, используйте predict.smooth.spline
first . Видишь ?predict.smooth.spline
.