Zeitreihen mit mehreren Themen und mehreren Variablen

8

Ich bin ein Webentwickler und ein unerfahrener Statistiker.

Meine Daten sehen ungefähr so ​​aus

Subject  Week   x1  x2  x3  x4  x5  y1
A        1      .5  .6  .7  .8  .7  10
B        1      .3  .6  .2  .1  .3  8
C        1      .3  .1  .2  .3  .2  6  
A        2      .1  .9  1.5 .8  .7  5
B        2      .3  .6  .3  .1  .3  2
D        2      .3  .1  .4  .3  .5  10  

Ich versuche, y1 als Produkt der x-Variablen vorherzusagen. Ich habe jedoch Grund zu der Annahme, dass die Auswirkung der mehreren x-Variablen auf y1 möglicherweise verzögert ist, dh die x-Variablen ab Woche 1 für Subjekt A beeinflussen y1 für Subjekt A in Woche 2.

Beachten Sie, dass nicht alle Probanden Datenpunkte für jede Woche haben (die meisten sogar nicht). Die Probanden haben in der Regel Datenpunkte für beispielsweise Woche 1, 2, 3, 4, fallen dann ab und werden erst in Woche 7,8,9 wieder angezeigt. Ich bin bereit, meine Analyse auf Datenpunkte zu beschränken, an denen wir aufgrund meiner Hypothese über die Verzögerung Daten für die letzten N Wochen haben.

Wie gesagt, ich bin ein Neuling und nicht sicher, wie ich am besten mit einem Datensatz dieser Form umgehen soll. Ich hoffe, diese Analyse entweder in R, Python oder einer Kombination aus beiden durchführen zu können. Ich denke nicht, dass die x-Variablen der aktuellen Woche keine Auswirkung haben werden. Ich denke, sie werden eine gewisse Wirkung haben, vielleicht größer als in den vergangenen Wochen. Ich glaube nur, dass die vergangenen Wochen einige Auswirkungen haben werden.

Ich erwarte eine Verzögerung von zwei bis drei Wochen. Um einen kleinen Kontext zu geben, bezieht sich die Analyse, die ich hier versuche, auf die Beurteilung der Qualität des Online-Verkehrs. Jede Woche erhalte ich eine Bewertung der Qualität eines bestimmten Benutzerstroms, den ich an eine bestimmte Website sende. Ich versuche, sekundäre Metriken wie Browserverteilung, prozentuale doppelte Klickraten usw. zu finden, mit denen ich vorhersagen kann, wie hoch diese Punktzahl im Voraus sein wird.

Spencer
quelle
Ich gehe davon aus, dass dies keine vollständige Antwort sein wird, sondern Ihnen einen Ausgangspunkt geben sollte. Ich würde mit dem Material in Kapitel 7 / Abschnitt 6/7/8 des Buches "Bayesian Statistical Modeling" von Peter Congdon beginnen. Mein Problem bestand in der räumlichen / zeitlichen Vorhersage von IED-Ereignissen und war etwas komplexer als deins, aber die Teile sind alle da; Ich versuche, meinen alten WinBUGS-Code zu finden (den Sie in eine R / JAGS-Implementierung überarbeiten können). Für Congdons Beispiele steht jedoch WinBUGS-Code zur Verfügung, der Ihnen einen guten Ausgangspunkt bieten sollte.
Aengus
Glauben Sie, dass Sie als Neuling auf hohem Niveau für mich zusammenbrechen könnten, was ich tun muss und was dies für die Analyse bedeutet? Vielen Dank und jeder Code, den Sie zur Verfügung stellen könnten, wäre mehr als dankbar! Ich bin vertraut mit Python und R.
Spencer
Über wie viel Verzögerung sprichst du? Nur eine Woche oder mehrere Wochen? Erwarten Sie, dass eine Funktion der s von nur einer vorherigen Woche oder vielen vorherigen Wochen ist? Obwohl Ihr Beispiel gut angelegt ist, erhalten Sie durch die Bereitstellung einer Reihe realer Variablen wahrscheinlich bessere Antworten, da die Antwortenden sehen können, was Sie tun möchten. yweek nx
Naught101
Ich erwarte eine Verzögerung von 2-3 Wochen. Ich habe die Frage bearbeitet, um ein Beispiel aus der Praxis zu geben.
Spencer
Ich würde es als einfache Regression betrachten. Die Kovariaten sind x1 (t), x2 (t), ..., x5 (t) plus Ihre verzögerten Variablen x1 (t-1), x1 (t-2) usw. Je nachdem, wie hoch entwickelt Sie sein möchten, Sie können einfach die Verzögerungen erraten und x1 (t-lag) gegen y1 zeichnen und nach Beziehungen suchen, oder Sie können eine Autokorrelation ausführen. Sie sollten in der Lage sein, Ersteres sehr schnell in R mithilfe von Datenrahmen durchzuführen, und Sie haben keine Viele Verzögerungsschritte, über die man sich Sorgen machen muss. Ich habe die Diskussion über Themen ausgelassen, aber ich steige ein. Der einfachste Weg, um mit diesen zu beginnen, besteht darin, sie als diskrete Variablen zu codieren.
Aengus

Antworten:

1

Wie ich oben in meinem Hinweis erwähnt habe, würde ich dies als Regressionsproblem behandeln. Hier ist ein Link zum Erstellen der Lag- (und Lead-) Variablen aus Ihren Daten ( R Head ) in R.

Der Beitrag enthält eine kurze Einführung in die Verwendung der resultierenden Daten in einem Regressionsmodell. Möglicherweise möchten Sie auch ein wenig Hintergrundinformationen zum R-Paket dynlm (dynamische lineare Regression) erstellen.

Aengus
quelle
Ich lese über dynamische lineare Regression und es scheint zu passen, was ich suche. Haben Sie Lesevorschläge?
Spencer
Tut mir leid, nicht von oben. Sie kennen wahrscheinlich bereits das 'dlm'-Paket in R; Hier ist ein Link mit einigen R-Code- Link
Aengus
0

Sie können Tabellen erstellen, in denen das y1 um 0,1,2,3,4 Wochen verschoben ist.

Anschließend führen Sie eine Analyse durch. Sie könnten beispielsweise ein neuronales Netzwerk erstellen, das versucht, y1 aus x vorherzusagen. Für einige Ideen können Sie Weka eine Spritztour geben.

Dann haben Sie ein gewisses Maß für die Vorhersage von y1 aus x für jede Verzögerung. Auf diese Weise können Sie die Verzögerung finden, die am besten passt.


Alternativ können Sie eine Tabelle erstellen, die x aus der aktuellen Woche, x aus der vorherigen Woche, ... und y1 enthält. Führen Sie dann eine Einflussanalyse durch (z. B. PCA ), um festzustellen , welche Woche und welche Variable den größten Einfluss hat.

j13r
quelle
Ich denke nicht, dass die x-Variablen der aktuellen Woche keine Auswirkung haben werden. Ich denke, sie werden eine gewisse Wirkung haben, vielleicht größer als in den vergangenen Wochen. Ich glaube nur, dass die vergangenen Wochen einige Auswirkungen haben werden. Da ich bereits mit R und Python vertraut bin, würde ich diese Tools lieber verwenden.
Spencer
@Spencer In Weka finden Sie Python / R-Pakete für alle Tools. Siehe die aktualisierte Antwort.
13.