2016-04-11 17 views
0

Es ist schwer, die accuracy()-Funktion von {forecast} zu erhalten, um auf vorhergesagten Testwerten zu arbeiten.R: Verwendung Vorhersage :: Genauigkeit() auf Split-Daten

Zuerst das LM-Modell auf den Trainingsdaten bauen (hier für die Reproduzierbarkeit):

library(ISLR) 
set.seed(1) 
train <- sample(392, 196) 
lm.fit <- lm(mpg~horsepower, data = Auto, subset = train) 

dann den MSE der Testdaten berechnen:

mean((auto$mpg - predict(lm.fit, Auto))[-train]^2) 

Mein Ziel ist es forecast::accuracy() zu verwenden, um bekomme MSE (und nicht die oben genannten) und zusätzliche Fehlermaße. Aber ich kann es einfach nicht zum Laufen bringen, egal was ich es füttere. Das ist definitiv ein Benutzerfehler und sucht nach irgendwelchen Gedanken da draußen.

Ich weiß forecast::accuracy() enthält keine MSE "Out of the Box", aber ich plane es über accuracy(data)[, 2]^2 zu berechnen und mit dem anderen Ausgang zu verschmelzen.

+0

Warum möchten Sie 'Forecast' verwenden, das für Zeitreihen ist? – adaien

+0

Ich mag die multiplen Messungen des Fehlers 'Prognose :: Genauigkeit 'erzeugt. Die Hilfedokumentation 'accuracy()' kann 'LM'-Objekte annehmen, also glaube, dass dies möglich ist. –

Antwort

1
accuracy(forecast(lm.fit, newdata=Auto[-train,]), Auto$mpg[-train])[,2]^2 
+0

Danke! Arbeitete perfekt. Ich habe das zweite Argument mit 'accuracy()' durcheinander gebracht. –

Verwandte Themen