Попытка выполнить перекрестную проверку, чтобы найти лучшую степень для полинома - PullRequest
0 голосов
/ 30 октября 2018

Итак, у меня есть задание для моего класса статистического обучения, и я действительно борюсь с этим конкретным вопросом. Он гласит: «Теперь используйте 10-кратную перекрестную проверку для выбора наилучшего полинома степени. Какая степень была выбрана? Соответствует ли она выводу, сделанному вами в (b)?

Бетон - это набор данных. Мы пытаемся предсказать прочность на сжатие, используя возраст.

Я пробовал несколько разных способов выполнить перекрестную проверку, и это самое близкое, что я мог получить:

deltas = rep(NA, 10, FALSE)
for (i in 1:7) {
  cv.poly.fit = glm(concrete$Concretecompressivestrength~poly(concrete$Age, i))
  deltas[i] = cv.glm(concrete$Concretecompressivestrength, cv.poly.fit, K = 10)$delta[1]
}

Мы должны выбрать степень от 1 до 7, я использовал anova, чтобы сказать мне, что 5-градусная модель лучше. Теперь мы должны использовать перекрестную проверку, чтобы сравнить и посмотреть, получим ли мы другой ответ.

Проблема в части "deltas [i]", которая постоянно выдает мне сообщение об ошибке:

Error in if ((K > n) || (K <= 1)) stop("'K' outside allowable range") : 
missing value where TRUE/FALSE needed`

Я действительно не знаю, что означает сообщение об ошибке или как его исправить.

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