uwesterr / CoronaPredict

With AdMOS develop a shiny app to predict corona progress
1 stars 2 forks source link

Erstellen eines Validierungsskripts #102

Open uwesterr opened 4 years ago

uwesterr commented 4 years ago

Was mir insgesamt noch aufgefallen ist: Wir würden uns m.E. leichter tun, wenn wir eine Art Validierungsskript hätten. D.h. wenn wir einfach über alle Datensätze Auswertung machen könnten (z.B. die Differenz von Modell und Daten als quadratischer Fehler in der Log-Skalierung). Vielleicht könnte man in so eine Auswertung auch Alternativmodelle einbauen, mit denen man unser Standardmodell challenged.

Fabian79FFM commented 4 years ago

Hallo Uwe, ich habe mal versucht, etwas Pseudo-Code zu schreiben, um zu zeigen, in welche Richtung ich hier denke: Viele Grüße Fabian ´ df <- historyDfLandkreis metrik <- metrik(log, v) Metrik, um ein Modell zu bewerten. Kann sich auf die tatsächlichen Werte beziehen oder auf Log-Werte. Durch v (Vektor der Länge 'Anzahl Tage') kann man noch einzelnen Tagen eine höhere Gewichtung geben (z.B. kann es wichtiger sein, den fit gut auf die letzten Tage zu machen) Sehr allgemein formuliert. De facto ist m.E. v.a. die folgende Metrik relevant: (sum(v(log(SumAnzahl) - log(modell))^2)/(n-1))^0.5 modell <- modell(modellfunktion, parameter, df) Ermittlung eines Modells für die gegebenen Daten. Im ersten Schritt nicht so wichtig, da wir ja schon eine Modellfunktion haben*

Auswertung 1: aktueller Fit for (landkreis in unique(df$landkreise)){ bewertung_landkreis[landkreis] <- bewertung(metrik,modell, landkreis) *Im wichtigsten Fall also (sum(v(log(SumAnzahl) - log(ErfassteInfizierteBerechnet))^2)/(n-1))^0.5, bzw. auch ohne v (also Fall v=1)** }

Auswertung 2: Bewertung Vorhersagekraft: modell <- modell(modellfunktion, parameter, df, n) Wie oben, aber Modell wird ohne die letzten n in den Daten vorhandenen Tage geschätzt for (landkreis in unique(df$landkreise)){ vorhersage_landkreis[landkreis] <- bewertung(metrik,modell, landkreis, n) Bewertungsfunktion wird nur auf die letzten n Tage angewendet }