Я пытаюсь сравнить несколько индексов растительности, чтобы найти лучшее для прогнозирования урожайности. Это означает, что у меня есть один столбец с данными о доходности и несколько других столбцов с индексами. Я создаю линейную модель ( доходность против индекс1 , затем доходность против индекса2 и т. Д. c. Это не множественная регрессия, поскольку я всегда сравниваю только один индекс с доходностью), затем я сделать k-кратную перекрестную проверку и посчитать RMSE, MSE и R ^ 2. Ниже приведен код:
folds <- cut(seq(1,nrow(tabulka)),breaks=10,labels=FALSE)
for(i in 1:10){
testIndexes <- which(folds==i,arr.ind=TRUE)
testData <- tabulka[testIndexes, ]
trainData <- tabulka[-testIndexes, ]
trenmodel1 <- lm(YIELD ~ INDEX1, data=trainData) # build the model
distPred <- predict(trenmodel1, testData) # predict distance
summary(trenmodel1)
actuals_preds <- data.frame(cbind(actuals=testData$VYNOS, predicteds=distPred))
correlation_accuracy <- cor(actuals_preds)
d <- actuals_preds$actuals-actuals_preds$predicted
mse = mean((d)^2)
mae = mean(abs(d))
rmse = sqrt(mse)
R2 = 1-(sum((d)^2)/sum((actuals_preds$actuals-mean(actuals_preds$actuals))^2))
}
Поскольку у меня есть 10 сгибов, я хочу получить 10 различных значений для ошибок в отдельном списке, но с этим кодом у меня есть только одно значение (я не уверен, что это последнее значение или среднее значение). И есть ли способ запустить функцию для всех индексов одновременно (index1-index7), чтобы иметь один список для всех индексов для всех ошибок - 7 индексов, 10 крат = 70 значений RMSE, MSE, R2?
Я знаю, что есть пакет каретки, но, поскольку я не очень хорошо знаком с R, мне легче увидеть, как скрипт на самом деле выглядит и работает без каретки.