#r #regression #linear-regression
#r #регрессия #линейная регрессия
Вопрос:
У меня есть следующий набор данных:
И я пытаюсь соответственно применить многолинейную регрессию к наборам данных для обучения и тестирования, как показано ниже:
library(caTools)
set.seed(123)
split = sample.split(data$G3, SplitRatio = 0.8)
train_set = subset(data, split == TRUE)
test_set = subset(data, split == FALSE)
write.csv(train_set, "student_train.csv", row.names = FALSE)
write.csv(test_set, "student_test.csv", row.names = FALSE)
#Multilinear regression
multi = lm(formula = G3 ~ ., data = train_set)
#Predicting the test values
y_pred_m = predict(multi, newdata = test_set)
library(Metrics)
mae_m = mae(test_set[[10]], y_pred_m)
rmse_m = rmse(test_set[[10]], y_pred_m)
Однако оба моих значения mae и rmse возвращаются как NA в консоли и как NA_real_ на вкладке Environment . Мое data$G3
значение не является фактором, поэтому я не уверен, почему я получаю следующее сообщение об ошибке: In Ops.factor(actual, predicted) : ‘-’ not meaningful for factors.
я новичок в использовании R для регрессии, поэтому, пожалуйста, помогите.
Комментарии:
1. Вместо того, чтобы включать скриншот данных, было бы полезно, если бы вы вставили выходные
dput(data)
данные в текст вашего вопроса. Это позволило бы другим пользователям воспроизводить набор данных локально.
Ответ №1:
Десятый столбец — это фактор, internet
. Так и должно быть
mae_m = mae(test_set$G3, y_pred_m)
rmse_m = rmse(test_set$G3, y_pred_m)