2017-07-07 3 views
0

Ich mache prädiktive Modellierung von multivariaten Zeitreihen Daten in R mit verschiedenen Modellen wie Arima, H2O.Randomforest, Glmnet, LM und einigen anderen Modellen.Scoring und Ranking der Modelle in R

Ich habe eine Funktion erstellt, um ein Modell unserer Wahl auszuwählen und eine Vorhersage zu treffen.

Model1 <- function(){ 
    .. 
    return() 
} 
Model2 <- function(){ 
    ... 
    return() 
} 
Model3 <- function(){ 
    ... 
    return() 
} 
main <- function(n){ 
    if(n == 1) { 
    Model1() 
    } 
    else if(n == 2){ 
    Model2() 
    } 
    else if(n == 3){ 
    Model3() 
    }} 

Jetzt soll ich diese Modelle automatisieren, die von der Suche nach Genauigkeit zwischen den vorhergesagten und beobachteten Wert RMSE und MAPE gibt. Ich würde gerne Punkte (z. B. von 5) für jeden basierend auf der Leistung bereitstellen. Zum Beispiel, wenn Arima gibt eine niedrige RMSE als andere Modelle, wird es hoch bewertet werden und die zweitniedrigste RMSE Modell wird ein weniger als Arima und so weiter.

Und jedes Mal, wenn ich diese Modelle mit verschiedenen Eingabedaten ausführen, muss es die durchschnittliche Punktzahl eines Modells geben. was ich meine zu sagen ist,

1. for model1 it will give scores of each model, let's say *s1*. 
2. for model2 run it give scores of each model, and let's call it *s2*. 

Und ich möchte eine durchschnittliche Punktzahl dieses Modells jedes Mal, wenn ich es mit anderen Eingabe ausführen. Es ist mehr wie Scoring und Ranking-Methode.

Gibt es irgendwelche Methoden oder Pakete in R, die einen Einblick geben können, wie es gemacht wird? oder irgendwelche Beispiele? Irgendwelche Vorschläge wären sehr hilfreich. Ich habe sogar meine Frage here auf Cross validiert.

Vielen Dank.

+0

Nur um zu verdeutlichen: Sie haben ein Datenframe/Matrix mit 'n' Beobachtungen für' m' Zeitreihen für 'j' Motoren' Motor1, Motor2, ... Motorj'? Sie wollen die Aufgabe automatisieren, 1) mehrere Modelle an die Daten von 'motor1, motor2, ... motorj' anzupassen 2) Ordnen Sie die Modelle nach der Güte der Anpassung mit RMSE/MAPE und 3) geben Sie' j' Listen mit dem Modell zurück Ranking für die 'j' Eingangsmotoren? – Numb3rs

+0

Ja. Ich kann 'rank()' verwenden, um die Methoden zu bewerten. aber ich möchte jedem Modell auf der Grundlage seines RMSE/MAPE-Werts (wie Scorecards) Punkte (z. B. von 5) geben. – dhinar

Antwort

0

Nach meinem besten Wissen gibt es kein einziges Paket, das all das für Sie ohne etwas Arbeit von Ihrer Seite tut. Sie müssen nach Paketen suchen, die Möglichkeiten bieten, das zu tun, was Sie brauchen.

Da Sie keine reproduzierbaren Daten zur Verfügung gestellt haben und nur eine allgemeine Vorstellung davon gegeben haben, was Sie als Beispiel wünschen, kann ich Ihnen nur eine grobe Vorstellung davon geben, was ich zu erwarten habe, wie ich das machen würde und was Probleme, die Sie am ehesten begegnen:

1. Modell Fitting

Sie müssen eine gute Idee haben, wie Sie die Modelle an die Daten angepasst werden soll. Nehmen Sie zum Beispiel ARIMA: Es hat drei Ordnungen (p, d, q). In welcher Reihenfolge möchten Sie Ihre Daten anpassen? Ein einfaches ARIMA (1,0,1) Modell? Oder brauchst du eine höhere Ordnung? Es gibt wieder Methoden der besten Passform e. G. indem Sie verschiedene Aufträge eingeben und dann die Bestellung mit der besten (niedrigsten) AIC auswählen. This article from quantstart ist ein schönes Beispiel für ein univariates Serien + Codebeispiel zur Schätzung verschiedener Aufträge und zur Auswahl des am besten geeigneten.
Prüfen Sie, in welchem ​​Maße Sie dies auch für Ihre anderen Modelle (H2O.Randomforest, glmnet, lm usw.) einrichten müssen. Stellen Sie diesen Prozess in Funktionen ein.

2. Modellauswahl

So in Schritt 1 Sie verschiedene Modelle der Zeitreihendaten ausgestattet und unterschiedliche Ergebnisse haben. Jetzt müssen Sie Ihre Gütekriterien RMSE/MAPE in einer Liste/Vektor kombinieren. Entweder sind sie bereits Teil des Ausgabeobjekts Ihres jeweiligen Modells oder Sie müssen sie selbst berechnen. Wenn sie bereits Teil des Schätzprozesses sind, umso besser. Als Teil der Funktion zum Schätzen des Prozesses fügen Sie, falls erforderlich, die Berechnung hinzu und fügen dann die Ergebnisse für das Modell zu der zuvor erwähnten Liste/Vektor hinzu.
Ordnen Sie die Liste nach Ihren gewünschten Kriterien (aufsteigend/absteigend und am höchsten/niedrigsten) und geben Sie diese Liste als Ausgabe an. Zusätzlich möchten Sie wahrscheinlich die Ergebnisse von der besten Anpassung hinzufügen, die Sie tun können, indem Sie das am höchsten eingestufte Ergebnis an Ihre Ausgabe anhängen.


Noch einmal, ohne spezifische Codebeispiele und Probleme, denen Sie gegenüberstehen, ist es schwierig, Ihnen zu helfen. Versuchen Sie, etwas Konkretes einzurichten, und wenn Sie in spezifische Probleme stoßen, können Sie immer hier um Hilfe bitten. Die Bereitstellung von Dummy-Daten und der von Ihnen verwendete Code werden Ihre Chancen auf Antworten auf Ihre Probleme erheblich verbessern.