Do zwiększania rozdzielczości danych (zagęszczania) może służyć wiele metod interpolacyjnych. W przypadku szeregów czasowych najlepiej nadają się do tego krzywe sklejane. Które dają najlepsze wyniki? W tym artykule sprawdziłem następujące interpolacje:
- stałą, tj. przyjęcie wartości z najbliższego węzła,
- liniową,
- kwadratową,
- sześcienną naturalną (natural cubic spline) oraz
- niektóre odmiany interpolacji sześciennej, tj. interpolację Akimy, Hermite’a (Catmulla-Roma), Kochanka-Bartelsa , Steffena oraz Steffena – miękką.
Zakres danych, metoda weryfikacji i wybór miary błędu interpolacji
Do analizy wybrałem wielkości publikowane w rozdzielczości 15-minutowej w
BPKD (bieżącym planie koordynacyjnym dobowym) przez Polskie Sieci
Elektroenergetyczne (#PSE) od 14 czerwca do 25 sierpnia 2024 r. Dane najpierw
celowo „rozrzedziłem”, tj. zagregowałem do danych godzinowych (przyjąłem, że
wartością reprezentatywną jest wartość średnią z czterech kwadransów każdej
godziny i założyłem, że wartość ta obowiązuje dokładnie w 30. minucie godziny),
a następnie dane te rozagregowałem na przedziały 15-minutowe, ale już przy
użyciu badanych algorytmów interpolacyjnych. Wreszcie, wyniki interpolacji odniosłem
do wartości wyjściowych i na tej podstawie wyznaczyłem błędy interpolacji dla
każdej metody.
Jako miary błędu użyłem średniego względnego błędu prognozy MAPE (Mean
Absolute Percentage Error):
MAPE = |F
– A|
/ A
gdzie F to wartość otrzymana z
algorytmu interpolacji, a A to wartość
faktycznie zaobserwowana (opublikowana). Naturalnie, tak zdefiniowana miara
mogła być użyta tylko dla tych wielkości, które nie przyjmują wartości zerowych
lub bliskich zeru, a więc dla:
- zapotrzebowania na moc KSE,
- planowanych ograniczeń dyspozycyjności i odstawień MWE,
- sumy generacji jednostek grafikowych w KSE (JGw, JGm, JGz i JGa),
- sumy generacji jednostek grafikowych wytwórczych (JGw),
- sumarycznej generacji jednostek wytwórczych nieuczestniczących aktywnie w RB,
- sumy zdolności wytwórczych jednostek grafikowych wytwórczych (JGw1),
- sumy zdolności wytwórczych jednostek wytwórczych w KSE (JGw, JGm, JGz i JGa),
- rezerwy mocy ponad zapotrzebowanie,
- rezerwy mocy poniżej zapotrzebowania.
Tam zaś, gdzie występowały wartości zerowe, zmodyfikowałem miarę błędu w
taki sposób, że jako punkt odniesienia wybrałem maksymalną wartość zaobserwowaną
w badanym okresie:
MAPE = |F
– A|
/ S
gdzie F i A
mają te same znaczenia co wyżej, natomiast S
oznacza właśnie wartość maksymalną zaobserwowaną w badanym okresie, odpowiednio
dla poniższych wielkości:
- sumy generacji jednostek grafikowych magazynów (JGm1),
- sumy zdolności wytwórczych jednostek grafikowych magazynów (JGm1),
- sumarycznej generacji źródeł fotowoltaicznych,
- sumarycznej generacji źródeł wiatrowych,
- sumarycznej mocy ładowania JGm.
Wyniki błędów interpolacji
Krótki rzut oka na animowany rysunek poglądowy dla zapotrzebowania na moc KSE w dniu 20 czerwca 2024 r. wystarczy, by spośród rozpatrywanych algorytmów interpolacji od razu wykluczyć interpolację kwadratową. Dla porządku jednak poniżej podałem wyniki dla wszystkich metod – kolorem czerwonym oznaczyłem te najgorsze, kolorem zielonym – najlepsze:
Cena, jaką płacimy za ciągłość pochodnej, jest nieproporcjonalnie wysoka w
stosunku do otrzymanych rezultatów, co ilustruje poniższy wykres dla wybranej
doby:
Po usunięciu interpolacji kwadratowej z listy, najsłabsze rezultaty daje interpolacja wielkościami stałymi z najbliższego dostępnego węzła:
Nic w tym dziwnego – interpolacja stałymi jest właściwie założeniem, że w każdym kwadransie godziny mamy wartość średnią z czterech kwadransów:
Jej stosowanie jest uzasadnione tylko wtedy, gdy mamy pewność, że dane
wyjściowe są faktycznie godzinowe (tak jak obecnie w przypadku krajowego salda
wymiany międzysystemowej w BPKD), co oznacza, że w istocie nie potrzebujemy
interpolacji.
Interpolacja liniowa, pomimo swojej prostoty, w porównaniu do interpolacji stałymi radzi sobie całkiem nieźle. Natomiast poza nielicznymi wyjątkami, jej wyniki są w przeważającej mierze gorsze od wyników interpolacji funkcjami sześciennymi:
Mimo to, warto ją rozważyć z oczywistego powodu – jest wyjątkowo prosta w
implementacji.
Porównanie samych metod sześciennych przedstawia się następująco (kolory
zostały przeskalowane do zaktualizowanego zakresu wartości błędów):
Tutaj wyniki nie są już tak jednoznaczne i mogą zależeć od interpolowanej
wielkości. Średnio najlepiej wypadają obie metody Steffena i metoda Akimy. Dla
funkcji sześciennej naturalnej wyniki są najczęściej minimalnie gorsze –
prawdopodobnie na skutek niespełnienia warunku na monotoniczność funkcji
interpolacji pomiędzy węzłami z powodu obowiązywania warunku na ciągłość drugiej pochodnej w
punktach węzłowych.
Do wyboru optymalnej metody można użyć także np. rankingu dla każdej z badanych
wielkości:
Przy tym podejściu także najlepsza okazała się metoda Steffena (miękka),
dalej już nieco inaczej niż przy średniej, tj. kolejno metoda Akimy i metoda Hermite’a.
Poniżej znajdują się wizualizacje rezultatów dla tych trzech algorytmów dla
wybranej doby 20 czerwca – charakteryzowała się ona największym rozrzutem
wyników wśród tych metod (akurat dla tej doby metoda Akimy dała minimalnie lepszy
wynik niż ogólnie lepsza dla całego zakresu danych metoda Steffena – miękka):
Wracając do tabel z wartościami MAPE warto zwrócić uwagę, że wyniki
interpolacji dla rezerw mocy są dużo słabsze od wyników interpolacji dla
pozostałych wielkości publikowanych w ramach BPKD. Dlatego na poniższym histogramie
rezerwy nie zostały pokazane, aby nie zaburzać skali dla pozostałych wielkości:
Słabsze wyniki interpolacji dla rezerw mają związek z tym, że mogą one zmieniać
się w skokowy sposób z kwadransa na kwadrans. Przykładowo, dla tej samej doby
20 czerwca 2024 r. pomiędzy godzinami 18:00 a 20:00 wystąpiło kilka takich silnych
wahnięć:
Dlatego właśnie wyniki błędów interpolacji dla obu rezerw mieszczą się w
znacznie wyższym przedziale, co obrazuje poniższy histogram:
Podsumowanie
Wyniki interpolacji z wartości godzinowych na interwały 15-minutowe wielkości
publikowanych w ramach BPKD funkcjami sklejanymi różnią się w zależności od
algorytmu interpolacji. Najlepsze pod względem miary MAPE są zmodyfikowane
funkcje sześcienne, ale są dość trudne w implementacji. Nieco gorsze rezultaty
dają funkcje sześcienne naturalne – prawdopodobnie z powodu niespełnienia
warunku na monotoniczność funkcji pomiędzy węzłami interpolacji. Dość dobre,
ale zauważalnie słabsze wyniki daje interpolacja liniowa, jest ona jednak bardzo
prosta we wdrożeniu. Interpolacja funkcjami stałymi, w porównaniu do interpolacji
sześciennej i liniowej daje już dużo gorsze wyniki, natomiast interpolację
funkcjami kwadratowymi należy z góry odrzucić.
Wyniki mogą różnią się także w zależności od interpolowanych wielkości, co
jest naturalnym następstwem ich zmienności. W przypadku, gdy występują znaczne
wahania w ramach jednej godziny (tak, jak w przypadku dostępnych rezerw mocy),
wyniki interpolacji będą znacznie gorsze. Jednak bez względu na rodzaj
rozpatrywanych powyżej wielkości, metody sześcienne dały zawsze najlepsze
rezultaty.
Podziękowanie
Przy wyznaczaniu wartości interpolowanych skorzystałem z algorytmów
zaimplementowanych w bibliotece ACQ (https://github.com/ratesquant/ACQ).
Dziękuję serdecznie jej autorom za jej utworzenie i udostępnienie.
Brak komentarzy:
Prześlij komentarz