Я продолжаю получать это сообщение об ошибке, я не слишком уверен, что пошло не так, как я пытаюсь сделать анализ линейной регрессии.
Ind_v является независимой переменной, а dep_v является зависимой переменной. Я переключил data.frame на [], и он тоже не работает. Всем большое спасибо!
Я разделил данные тренировок и тестов на 70 / 30.
linear_regression <- function(training_dataset,
test_dataset,
dependent_variables,
independent_variables){
formular_me <- paste(dependent_variables, "~", independent_variables)
linear_model <- lm(formula = formular_me, data = training_dataset)
ind_v_from_test_dataset <- subset(test_dataset,select=independent_variables)
linear_model_analysis <- predict(linear_model,ind_v_from_test_dataset)
dep_v_from_test_dataset <- test_dataset[,dependent_variables]
RMSE_me <- round(Nrmse(actual = dep_v_from_test_dataset, predicted = linear_model_analysis),digits=2)
MAE_me <- round(Nmae(actual = dep_v_from_test_dataset,predicted = linear_model_analysis),digits=2)
R2_me <- round(Nr2(linear_model_analysis),digits=2)
linear_analysis_error <- dep_v_from_test_dataset - linear_model_analysis
linear_results<- data.frame(dep_v_from_test_dataset,ind_v_from_test_dataset,linear_analysis_error)
linear_results<- linear_analysis_error[order(ind_v_from_test_dataset),]
plot(linear_results[,independent_variables],
linear_results$ind_v_from_test_dataset,
pch=4,
ylab="dependent variable",
xlab="independent variables",
main="Linear Regression Errors",
sub=paste("MAE=",mae,"RMSE=",RMSE," R2=",r2))
abline(linear_model,col = "blue", lwd=6)
suppressWarnings(arrows(linear_results[,ind_v_from_test_dataset],
linear_results$dep_v_from_test_dataset,
linear_results[,independent_variables],
linear_results$dep_v_from_test_dataset-linear_results$error,
length=0.05,angle=90,code=3,col="red"))
return(
list(RMSE_me=RMSE,
MAE_me=mae,
R2_me=r2))
}