Перекрестная степень полинома, для l oop сверх степени полинома - PullRequest
0 голосов
/ 13 февраля 2020

Я довольно новичок в R и пытаюсь использовать пакет карет для перекрестной проверки, чтобы найти оптимальную степень для подгонки полинома к данным. Мой фрейм данных называется «data», зависимой переменной является y, а независимой переменной - x. Это моя попытка, где последняя строка возвращает R ^ 2 для оптимальной степени полинома.

fitpoly <- vector("list",10)
set.seed(123)
train.control <- trainControl(method = "cv", number = 10)
for (k in 1:10){
  fitpoly[[k]]<- train(y ~ poly(x, k, raw = TRUE), data = data, method = "lm", trControl = train.control)$results[[3]]
}
fitpoly <- cbind(c(1:10),unlist(fitpoly, use.names=FALSE))
max(fitpoly[,2])

При запуске l oop я получаю следующий код ошибки: Ошибка в [.data.frame (data, all.vars (Terms), drop = FALSE): выбраны неопределенные столбцы . Я вполне уверен, что ошибка возникла из-за того, что я перебрал аргумент степени в poly, но я не совсем понимаю, как go исправить это. У меня похожая проблема с аргументом степеней свободы при выполнении аналогичного l oop со сплайнами cubi c.

fitspline <- vector("list", 10)
set.seed(123)
for (k in 1:10){
  fitspline[[k]] <- train( y ~ bs(x , degree = 3, df = k+2 ), data = data , method = "lm", trControl = train.control)$results[[3]]
}
fitspline <- cbind(c(1:10),unlist(fitspline, use.names=FALSE))
max(fitspline[,2])

Благодарю всех заранее за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...