Nehmen wir an, ein analytisches Modell sagt einen epidemischen Trend über die Zeit voraus, dh die Anzahl der Infektionen über die Zeit. Wir haben auch eine Computersimulationsergebnisse im Laufe der Zeit, um die Leistung des Modells zu überprüfen. Ziel ist es zu beweisen, dass die Simulationsergebnisse und die vorhergesagten Werte des analytischen Modells (beide Zeitreihen) statistisch nahe beieinander liegen oder ähnlich sind. Mit Ähnlichkeit meine ich, dass das Modell die Werte vorhersagt, die nahe an dem liegen, was die Simulation liefert.
Hintergrund : Bei der Recherche zu diesem Thema bin ich auf folgende Beiträge gestoßen:
Beide Diskussionen schlagen drei Ansätze vor, bei denen ich grundsätzlich an zwei interessiert bin:
(1). Verwendung von ARIMA; (2). Verwendung des Granger-Tests
Für die erste vorgeschlagene Lösung wurde dies in Bezug auf ARIMA in (1) geschrieben:
Führen Sie ARIMA für beide Datensätze aus. (Die Grundidee hier ist zu sehen, ob der gleiche Parametersatz (aus dem das ARIMA-Modell besteht) beide temporären Zeitreihen beschreiben kann. Wenn Sie auto.arima () in Prognose (R) ausführen, werden die Parameter ausgewählt p, d, q für Ihre Daten, eine große Bequemlichkeit.
Ich habe auto.arima für die Simulationswerte ausgeführt und dann die Prognose ausgeführt. Hier sind die Ergebnisse:
ARIMA(2,0,0) with zero mean
Coefficients:
ar1 ar2
1.4848 -0.5619
s.e. 0.1876 0.1873
sigma^2 estimated as 121434: log likelihood=-110.64
AIC=227.27 AICc=229.46 BIC=229.4
Ich habe auto.arima für vorhergesagte Modellwerte ausgeführt und dann prognostiziert. Dies ist das Ergebnis des vorhergesagten Modells:
ARIMA(2,0,0) with non-zero mean
Coefficients:
ar1 ar2 intercept
1.5170 -0.7996 1478.8843
s.e. 0.1329 0.1412 290.4144
sigma^2 estimated as 85627: log likelihood=-108.11
AIC=224.21 AICc=228.21 BIC=227.05
Frage 1 Welche Werte müssen verglichen werden, um zu beweisen, dass die beiden Reihen ähnlich sind, insbesondere der zeitliche Trend?
In Bezug auf die zweite vorgeschlagene Option habe ich darüber gelesen und festgestellt, dass der Granger-Test normalerweise verwendet wird, um festzustellen, ob die Werte der Serie A zum Zeitpunkt t die Werte der Serie B zum Zeitpunkt t + 1 vorhersagen können .
Frage 2 Grundsätzlich möchte ich in meinem Fall die Werte der Zeitreihen A und B gleichzeitig vergleichen. Wie ist diese dann für meinen Fall relevant?
Frage 3 Gibt es eine verfügbare Methode, um zu beweisen, dass der Trend zweier Zeitreihen über die Zeit ähnlich ist?
Zu Ihrer Information. Ich habe eine andere Methode gesehen, die den Pearson-Korrelationskoeffizienten verwendet, und ich konnte den Überlegungen dort folgen. Darüber hinaus ist die Überprüfung analytischer Modelle mit Simulationen in der Literatur weit verbreitet. sehen:
Antworten:
Ich verstehe die Situation wie folgt. Sie haben ein Modell, das Sie Ihre Simulation nennen und von dem Sie sicher sind, dass es einen Datensatz generiert, der genau darstellt, was tatsächlich in der Epidemie passieren wird. Aus irgendeinem Grund (vermutlich, weil das Erstellen und Ausführen teuer oder langsam ist oder theoretisches Interesse an einer einfachen Gleichung besteht, die ähnliche Ergebnisse wie das komplexe Modell generiert), haben Sie ein alternatives Modell (das Sie als Modell bezeichnen), das ebenfalls generiert werden kann eine Reihe von Daten, und Sie möchten überprüfen, ob die von diesem Modell generierte Version der vom bekanntermaßen guten Modell generierten Version nahe kommt.
Ich gehe auch davon aus, dass jedes Mal, wenn eines der Modelle Daten generiert, ein ähnlicher und ziemlich regelmäßiger Trend zu anderen Zeiten generiert wird. Andernfalls (zum Beispiel, wenn es einen zufälligen "Start" -Moment gibt, in dem die Serie plötzlich bricht) gibt es eine weitere große Komplikation.
Erstens ist die Methode zum Vergleichen von Parametern aus einem ARIMA mit automatischer Anpassung schlecht (ich vermute, der Grund für die Antwort, die Sie mit "Überlebt" verknüpft haben, ist, dass es sich eher um einen Stapelüberlauf als um eine Kreuzvalidierung handelt, bei der die statistischen Probleme aufgetreten wären wahrscheinlich abgeholt). Der Grund dafür ist, dass dieselbe Zeitreihe mit ganz unterschiedlichen Kombinationen von automatisch regressiven und gleitenden Durchschnittswerten gut passt. Es gibt keine offensichtliche Möglichkeit, die "Ähnlichkeit" zweier verschiedener ARIMAs zu betrachten - solche, die sehr unterschiedlich aussehen, können tatsächlich ähnlich sein. Wie @IrishStat in seiner Antwort auf die zweite Frage , mit der Sie verlinkt haben, sagt , könnten Sie einen F-Test eines gemeinsamen Parametersatzes für beide Modelle erstellen , aber das würde etwas erfordern, das etwas komplexer ist als
auto.arima()
. Und selbst dann stellen Sie möglicherweise fest, dass sie keine gemeinsamen Parameter haben, sondern ähnliche Vorhersagen des Trends liefern, an dem Sie tatsächlich interessiert sind, und nicht die Details des ARMA-Prozesses, der einen Teil des zufälligen Rauschens um den Trend erzeugt .Was würde ich stattdessen empfehlen? Es hört sich so an, als wären Sie nicht besorgt über die kleinen Schwankungen, sondern nur über den allgemeinen Trend. Ich würde eine geglättete Version des Trends jedes Datensatzes vergleichen und zunächst einen visuellen Vergleich durchführen. In dem Fall, den Sie haben, zeigt dies, dass es sich definitiv nicht um dieselbe Zeitreihe handelt. einer von ihnen schwebt um 1478, der andere um Null, und das ist gut genug für mich. Aber wenn es eine Mehrdeutigkeit gäbe, würde ich wahrscheinlich die Quadrate oder Absolutwerte der Differenz zwischen den beiden geglätteten Reihen summieren und feststellen, ob dies nah genug ist, für eine willkürlich gewählte Bedeutung von "nah genug", die am Ende abhängen muss auf Ihrer Domain und die Kosten für das Unrecht. Auf jeden Fall würde ich mit der Grafik beginnen.
Wenn Sie einen objektiveren Benchmark wünschen, würde ich versuchen, beide Simulationen mehrmals auszuführen und festzustellen, wie groß der Unterschied (Summe der Quadrate oder absoluten Unterschiede) zwischen verschiedenen Instanzen derselben Simulation ist, und diesen mit den Unterschieden zwischen den Simulationen vergleichen. Wenn sie gleich sind, zeigt dies, dass Sie nicht sagen können, welches Modell die Simulation erzeugt hat. Wenn sie unterschiedlich sind, müssen Sie immer noch ein Urteil darüber fällen, wie unterschiedlich zu viel ist, aber Sie haben einige Zahlen, die Ihnen helfen.
Das Anpassen von ARIMA-Modellen ist zwar eine schlechte Idee, um Ähnlichkeiten in Trends zu erkennen, aber es ist eine gute Möglichkeit, einige Daten zu generieren. Im Folgenden wird beschrieben, wie ich das gemacht habe. Ich vermute, dass etwas mit den Daten nicht stimmt. Vielleicht passen Sie das ARIMA-Modell an eine transformierte oder differenzierte Version der Daten an. In diesem Fall möchten Sie möglicherweise den nächsten Schritt zur Quantifizierung des Unterschieds zwischen den beiden Trends ausführen.
Bearbeiten
Ich habe darüber unter http://ellisp.github.io/blog/2015/09/20/timeseries-differences gebloggt und im Grunde nur untersucht, wie Sie mithilfe von Brute Force-Simulationen feststellen können, ob zwei Modelle ähnlich sind. Ich komme jedoch zu dem Schluss, dass Sie noch eine (wahrscheinlich) subjektive Entscheidung über eine Kostenfunktion benötigen - natürlich sind Ihre beiden Methoden unterschiedlich, aber wie unterschiedlich sind Sie bereit, sich damit abzufinden?
quelle