Как объяснил Олли Перкинс в своем ответе, ошибка, которую вы получаете, указывает на то, что вы передаете что-то, что не имеет сортируемой природы и, следовательно, не может использоваться для анализа ROC.
В случае predict.qda
элемент class
является фактором с 1
s и 0
s, указывающими класс.
Вместо преобразования класса в упорядоченный предиктор лучше использовать апостериорные вероятности. Давайте использовать вероятность принадлежать к классу 1
:
roc_qda <- roc(response = ctrain$diabetes, predictor = predict_qdatrain$posterior[,"1"])
plot(roc_qda, col="red", lwd=3, main="ROC curve QDA")
auc(roc_qda)
Это даст вам более плавную кривую и большее количество порогов классификации на выбор.