Итак, у меня есть задание для моего класса статистического обучения, и я действительно борюсь с этим конкретным вопросом. Он гласит: «Теперь используйте 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`
Я действительно не знаю, что означает сообщение об ошибке или как его исправить.