Ich weiß, dass dies eine ziemlich spezifische R
Frage ist, aber ich denke möglicherweise falsch über die erklärte Proportionsvarianz . Hier geht.
Ich versuche das R
Paket zu benutzen randomForest
. Ich habe einige Trainingsdaten und Testdaten. Wenn ich ein zufälliges Gesamtstrukturmodell anpasse, randomForest
können Sie mit dieser Funktion neue Testdaten zum Testen eingeben. Anschließend wird der in diesen neuen Daten erläuterte Prozentsatz der Varianz angezeigt. Wenn ich mir das ansehe, bekomme ich eine Nummer.
Wenn ich die predict()
Funktion verwende, um den Ergebniswert der Testdaten basierend auf der Modellanpassung aus den Trainingsdaten vorherzusagen, und den quadratischen Korrelationskoeffizienten zwischen diesen Werten und den tatsächlichen Ergebniswerten für die Testdaten nehme , erhalte ich eine andere Zahl. Diese Werte stimmen nicht überein .
Hier ist ein R
Code, der das Problem demonstriert.
# use the built in iris data
data(iris)
#load the randomForest library
library(randomForest)
# split the data into training and testing sets
index <- 1:nrow(iris)
trainindex <- sample(index, trunc(length(index)/2))
trainset <- iris[trainindex, ]
testset <- iris[-trainindex, ]
# fit a model to the training set (column 1, Sepal.Length, will be the outcome)
set.seed(42)
model <- randomForest(x=trainset[ ,-1],y=trainset[ ,1])
# predict values for the testing set (the first column is the outcome, leave it out)
predicted <- predict(model, testset[ ,-1])
# what's the squared correlation coefficient between predicted and actual values?
cor(predicted, testset[, 1])^2
# now, refit the model using built-in x.test and y.test
set.seed(42)
randomForest(x=trainset[ ,-1], y=trainset[ ,1], xtest=testset[ ,-1], ytest=testset[ ,1])