Używamy STL (implementacja R) do prognozowania danych szeregów czasowych.
Codziennie przeprowadzamy codzienne prognozy. Chcielibyśmy porównać wartości prognozowane z wartościami rzeczywistymi i zidentyfikować średnie odchylenie. Na przykład uruchomiliśmy prognozę na jutro i otrzymaliśmy punkty prognozy, chcielibyśmy porównać te punkty prognozy z rzeczywistymi danymi, które otrzymamy jutro. Zdaję sobie sprawę, że wartości prognoz i rzeczywiste dane mogą się nie zgadzać przez większość czasu, dlatego jest to jeden z powodów, dla których chcielibyśmy śledzić, jak dokładni jesteśmy każdego dnia.
Teraz próbujemy ustalić, jakie jest najlepsze podejście do rozwiązania tego problemu? wszelkie wskazówki dotyczące pomocy będą mile widziane.
Spojrzałem na pytanie o dokładność pomiaru prognozy , ale wydaje się, że jest to związane z porównywaniem modeli, a nie z obliczaniem dokładności z rzeczywistymi wartościami.
Patrzyłem na implementację funkcji dokładności w R , ale myliłem się z dwoma pytaniami:
1) Czy będzie działać na danych rzeczywistych a danych prognozowanych, ponieważ większość samouczka mówi „dane testowe” a „dane prognozowane”
2) Wydaje się, że funkcją dokładności jest tablica wartości, a nie% odchylenia.
Odpowiedzi:
Istnieje wiele różnych sposobów pomiaru dokładności prognozy, a
accuracy()
funkcja z pakietu prognozy dla R generuje kilka z nich. Z twojego komentarza na temat „% odchylenia” brzmi, jakbyś chciał zastosować średni bezwzględny błąd procentowy, który jest jednym z mierników zapewnionych przezaccuracy()
. Poniżej omówiono najczęstsze miary dokładności prognoz . Możesz zastanowić się, czy MAPE jest najbardziej odpowiednią miarą dla twojego problemu, czy też jedna z pozostałych miar jest lepsza.Ta
accuracy()
funkcja działa na rzeczywistych danych. „Dane testowe” to dane, które nie zostały wykorzystane do zbudowania prognoz. Czasami są one dostępne, ale nie są używane podczas obliczania prognoz (klasyczny podział danych na zestawy szkoleniowe i testowe). W innych sytuacjach wszystkie dostępne dane są wykorzystywane do obliczania prognoz, a następnie musisz poczekać, aż pojawią się pewne przyszłe obserwacje, które można wykorzystać jako dane testowe.Więc jeśli
f
jest wektorem prognoz ix
jest wektorem obserwacji odpowiadającym tym samym czasom, tozrobi co chcesz.
źródło
Po pierwsze, wyjaśnijmy, że istnieją pojęcia dokładności i precyzji. Dokładność zwykle wiąże się z błędem, tj. Systematycznym odchylaniem prognozy od rzeczywistych. Precyzja zwykle wiąże się z wariancją błędów prognozy. Coś takiego:A c c u r a c y= E( f) - y vs. P.r e c i s i o n = Va r [ f- y] . Kiedy więc wspomniałeś o „dokładności” w swoim poście, wiedziałeś o tym rozróżnieniu?
Po drugie, istnieją zintegrowane miary jakości prognozy, takie jakM.S.fami=1n∑ni = 1(faja-yja)2) , gdzie faja i yja są prognozy i aktualności. Istnieją statystyki dla tego pomiaru, takie jak test Chow dla stałości parametrów.
źródło
Robiłem to w R, oto mój kod dla moich danych zarówno dla danych w próbie, jak i poza próbką:
mam nadzieję, że to trochę pomoże. jeśli chcesz mój pełny kod, który kiedyś uruchamiałem, zapytaj, ponieważ jest to bardzo proste
źródło
Krótka odpowiedź: aby ocenić jakość swoich prognoz, użyj dokładnie tej samej miary, którą zastosowałeś podczas szkolenia (dopasowania) swojego modelu.
Długa odpowiedź:
Aby wybrać miarę dokładności swoich prognoz, najpierw musisz wiedzieć, jak interpretujesz swoje prognozy. Innymi słowy, co tak naprawdę podajesz jako „prognozę”? Czy to średnia wartość? Mediana? Najbardziej prawdopodobna wartość? Odpowiedź na to pytanie będzie jednoznacznie identyfikować miarę dokładności prognozy. Jeśli przewidujesz średnią, musisz użyć pierwiastka odchylenia średniej kwadratowej jako miary dokładności prognozy. Jeśli przewidujesz medianę, musisz zastosować średnie bezwzględne odchylenie jako miarę dokładności.
Opowiem trochę o tym punkcie. Załóżmy, że dokonujesz prognozy / prognozy na jutro. Załóżmy również, że dla każdej wartości, którą możesz zaobserwować jutro, masz odpowiednie prawdopodobieństwo, że zostanie zaobserwowane. Na przykład wiesz, że możesz zaobserwować 1 z prawdopodobieństwem 0,03, 2 z prawdopodobieństwem 0,07, 3 z prawdopodobieństwem 0,11 i tak dalej. Mamy więc rozkład prawdopodobieństwa dla różnych wartości. Mając ten rozkład, możesz obliczyć różne właściwości i podać je jako „prognozy”. Możesz obliczyć średnią i podać ją jako prognozę na jutro. Alternatywnie możesz użyć mediany jako prognozy. Możesz także znaleźć najbardziej prawdopodobną wartość i podać ją jako prognozę na jutro.
Jeśli użyjesz wartości średniej jako prognozy, to pytanie „jak zmierzyć dokładność mojej prognozy” musi zostać zastąpione przez „jaka jest miara dokładności średniej”, a odpowiedź brzmi: „odchylenie średniej kwadratowej średniej między rzeczywiste wartości i prognozy ". Jeśli używasz mediany jako prognozy, musisz użyć średniego bezwzględnego odchylenia.
Może się zdarzyć, że nie wiesz, czy używasz mediany, wredności czy czegoś innego. Aby dowiedzieć się, czego faktycznie używasz jako prognozy, musisz wiedzieć, jaką miarę starasz się zminimalizować podczas treningu. Jeśli spróbujesz znaleźć parametry modelu, które minimalizują odchylenie średniej kwadratowej odchylenia między przewidywaniami a wartościami docelowymi na podstawie danych treningowych, twoje przewidywania należy traktować jako średnie. Jeśli zminimalizujesz odchylenia bezwzględne, trenujesz swój model, aby zapewnić mediany i tak dalej.
DODANY
Chciałbym podkreślić jedną rzecz. Jak wspomniałem powyżej, ważne jest zachowanie tej samej miary dokładności w „dopasowaniu” i w „przewidywaniu”. Ponadto chciałbym powiedzieć, że masz absolutną swobodę w wyborze swoich środków. Nie ma „lepszych” ani „gorszych” miar. Miarę należy ustalić na podstawie sposobu, w jaki Ty (lub Twój klient) korzystasz z Twoich prognoz. Na przykład może być bardzo ważne (dla ciebie lub twojego klienta), aby mieć dokładne dopasowanie, a jeśli go nie masz, nie odgrywa żadnej roli, jeśli różnica między rzeczywistą a przewidywaną wartością jest duża lub mała. W innych przypadkach różnica ta odgrywa pewną rolę. Różnica 1 jest lepsza niż różnica 2. W niektórych przypadkach różnica 2 jest 2 razy gorsza niż różnica 1. W innych przypadkach różnica równa 2 jest 100 razy gorsza niż różnica równa 1. Możesz również wyobrazić sobie przypadki egzotyczne, w których musisz wygenerować wartość inną niż obserwacje. Tak więc miarą jakości generowanych liczb może być cokolwiek chcesz, w zależności od tego, czego potrzebujesz. Ważne jest, aby używać tej samej miary do treningu (dopasowania) i oceny prognoz.
źródło