Eksperymenty z LSTM: Od prostych modeli po Bayesowskie podejście

Skąd pomysł?

Od dłużeszego czasu zajmuję się tworzeniem narzędzi wspierających analizę rynków finansowych. Interesuje mnie nie tylko trafność prognoz, ale także zrozumienie niepewności, jaka towarzyszy każdej predykcji. W tym krótkim projekcie jako cel obrałem sobie zbadanie modeli sekwencyjnych LSTM i ich przydatności w genererowaniu sygnałów inwestycyjnych oraz jaką wartość dodaną może przynieść podejście bayesowskie - pozwalające oszacować stopień zaufania do przewidywanych wartośći.

Czyli na ile model ufa w to co sam prognozuje.

Dlaczego LSTM?

Model chwalony ze względu na swoją zdolność do przetwarzania danych czasowych, w szczególnośći do uchwycenia wzorców w sekwencjach cen. Architektura, która od lat znajduje zastosowanie w prognozowaniu szeregów czasowych.

Projekt ten powstał jako część większego przedsięwzięcia - budowy osobistej platformy analityczno-inwestycyjnej, w której różne modele, strategie, żródła danych będą współpracować w celu podejmowania decyzji inwestycyjnych.

Celem jest znalezienie odpowiedzi na pytanie, czy modele predykcyjne wraz z niepewności mogą zwiększyć jakość generowanych sygnałów? To także przestrzen na osobite doświadczenia z architekturą LSTM.

Opis danych

Do eksperymentów wykorzystałem dane rynkowe pobrane za pomocą biblioteki 'yfinance', obejmujące notowania wybranego instrumentu finansowego w interwale dziennym. Dane zawierają standardowe kolumny rynkowe: Open, High, Low, Close, Volume.

W zależności od testowanego wariantu modelu, wykorzystywalem różne podzbiory tych danych - od pojedynczej cechy (np. cena otwarcia), po zestawy kilku cech opisujących zachowanie rynku.

Na początku nie przeprowadzałem pełnej filtracji danych, nie usuwałem tzw. outlierów, czyli wartości odstających. W pierwszej fazie chciałem sprawdzić, jak modele radzą sobie z typowymi zakłoceniami.

W kolejnych wariantach uwzględnilem preprocessing (np. znormalizowanie danych, usuwanie ekstremalnych wartości), w celu oceny wpłuwy jakości danych wejściowych na skuteczność predykcji.

Zakres czasowy danych obejmował zazwyczaj kilka lat historii notowań np.(2020-2024).

Warianty testowe

1. Brak preprocessing + tylko cena otwarcia

Opis: Użycie tylko ceny otwarcia, ale z wprowadzeniem preprocessingów: normalizacji oraz ustalonej długości sekwencji (np. 60 dni).

Cel: sprawdzenie, czy LSTM jest w stanie wyłapać podstawowe wzroce w surowych danych. Wyniki:

Metryka Wartość Wniosek
MAE 1.2539 Wysoki, model często myli się
RMSE 1.6665 Wysoka zmienność błędów
Coverage ±σ brak brak estymacji niepewności w tym wariancie
Direction Accuracy 92.42% Bardzo dobra, model dobrze łapie kierunek i zmiany ceny
MAPE 35.80% Nieakceptowalny

Wnioski: Model trenowany wyłącznie na zmiennej Open osiągnął dobrą trafność kierunku (92.42%), ale dużą wartość błędu regresji (MAE = 1.25, MAPE = 35.8%). Oznacza to, że choć model potrafi rozpoznać trend, nie nadaje się do prognozowania poziomu cen bez dodatkowych cech i preprocessingu.

2. Prosta sieć z jedną cechą

Opis: Zamiast usuwać ekstremalne wartości (outliery) z danych finansowych, zastosowano RobustScaler, który minimalizuje ich wpływ na rozkład danych bez utraty potencjalnie istotnych informacji o dynamice rynku. Cel: Zbadanie wpływu przygotowania danych na jakość predykcji. Wyniki:

Metryka Wartość Wniosek
MAE 1.2438 Wysoki, model często myli się
RMSE 1.6822 Wysoka zmienność błędów
Coverage ±σ brak brak estymacji niepewności w tym wariancie
Direction Accuracy 92.93% Bardzo dobra, model dobrze łapie kierunek i zmiany ceny
MAPE 35.37% Nieakceptowalny

Porównanie z poprzednim modelem:

Wariant MAPE MAE RMSE Direction Accuracy
1. StandardScaler 35.80% 1.2539 1.6665 92.42%
2. RobustScaler 35.37% 1.2438 1.6822 92.93%

Wnioski: Wprowadzenie RobustScaler pozwoliło poprawić stabilność modelu: wskaźnik trafności kierunku wzrósł z 92.42% do 92.93%, a średni błąd procentowy spadł z 35.8% do 35.37%. Choć różnice są niewielkie, potwierdzają przewagę odpornego skalowania nad klasycznym StandardScaler, szczególnie w obecności ekstremalnych wartości.

3. Rozbudowana sieć z kilkoma cechami

Opis: Wykorzystanie wielu zmiennych: Open, High, Low, Close, Volume.

Cel: Dostarczenie modelowi bogatszego kontekstu rynkowego.

Wyniki:

Metryka Wartość Wniosek
MAE 0.4624 Wysoki, model często myli się
RMSE 0.7209 Wysoka zmienność błędów
Coverage ±σ brak brak estymacji niepewności w tym wariancie
Direction Accuracy 98.48% Bardzo dobra, model dobrze łapie kierunek i zmiany ceny
MAPE 36.15% Nieakceptowalny

Wnioski: Zastosowanie wielu cech wejściowych znacząco poprawiło jakość predykcji. MAE spadło do 0.46, a trafność kierunku osiągnęła 98.48%. Choć błąd procentowy (MAPE) pozostał wysoki, świadczy to o trudności w dopasowaniu wartości względnych, szczególnie przy niskich poziomach cen. Model ten dobrze nadaje się do wykrywania trendu, a zastosowanie podejścia Bayesian LSTM pozwoliłoby dodatkowo ocenić pewność prognoz.

Wariant z głębszą architekturą sieci:

Metryka Wariant 1 (płytszy) Wariant 2 (głębszy) Wniosek
MAPE 35.37% 35.34% brak poprawy w trafności wartości
MAE 1.2438 1.1055 lekka poprawa — mniejsze błędy
RMSE 1.6822 1.5321 bardziej stabilne błędy
Direction Acc. 92.93% 94.95% zauważalna poprawa kierunku

Wnioski: Choć rozbudowanie sieci LSTM do czterech warstw zwiększyło trafność kierunku z 92.93% do 94.95%, nie wpłynęło istotnie na dokładność predykcji wartości (MAPE ~35%). Sugeruje to, że dalsze ulepszanie wyników wymaga raczej lepszego doboru cech niż zwiększania złożoności sieci.

4. Bayesowski LSTM z szacowaniem niepewności

Opis: Dodanie mechanizmu estymacji niepewności predykcji za pomocą MC Dropout. Każda predykcja wykonywana była wielokrotnie (np. 100 razy), a wyniki analizowano statystycznie (średnia i odchylenie standardowe).

Cel: Otrzymanie nie tylko wartości predykcji, ale także miary zaufania do tej wartości (np. pokrycie ±σ).

Wyniki:

Metryka Wartość Komentarz
MAPE 18.97% bardzo dobry wynik — poniżej 20% = realnie używalna prognoza
MAE 0.0384 ekstremalnie niski — model myli się średnio o 4 centy (!), świetna kalibracja
RMSE 0.0536 niska wariancja błędów — brak skrajnych pomyłek
Direction Accuracy 96.46% bardzo wysoka trafność kierunku — idealne do strategii opartych o trend
Coverage ±σ (1σ) 64.32% blisko ideału (~68%)można ufać predykcji ŷ ± σ

Szczegóły modelu i parametrów: Szacowanie czasu uczenia (1 epoka)... Szacowany czas treningu (200 epok): 9.38 s ≈ 0.16 min

Wnioski: Po zastosowaniu podejścia Bayesian LSTM z techniką MC Dropout i zwiększonym współczynnikiem Dropout, uzyskano bardzo niskie wartości błędów regresji (MAPE 18.97%, MAE 0.0384) oraz wysoką trafność kierunku (96.46%). Pokrycie predykcji w przedziale ±σ wyniosło 64.32%, co wskazuje na realistyczne oszacowanie niepewności modelu.

Porównanie wyników

Dla każdego z czterech wariantów przeprowadziłem ocenę jakości prognoz przy użyciu zarówno klasycznych metryk błędu, jak i wskaźników uwzględniających niepewność predykcji. Celem nie była jedynie maksymalizacja dokładności, ale także zrozumienie, jak różne podejścia wpływają na charakterystykę i wiarygodność sygnałów inwestycyjnych.

Wariant MAPE (%) MAE RMSE Direction Accuracy (%) Coverage ±σ (%) Total Score
4. Bayesian + Dropout 0.4 18.97 0.0384 0.0536 96.46 64.32 0.266667
3. OHLCV + RobustScaler 36.15 0.4624 0.7209 98.48 nan -0.186596
2. Open + RobustScaler 35.37 1.2438 1.6822 92.93 nan -0.845683
1. Open + StandardScaler 35.8 1.2539 1.6665 92.42 nan -0.889923

Metryki użyte w porównaniu:

MAE (Mean Absolute Error) – średni błąd bezwzględny.

RMSE (Root Mean Squared Error) – pierwiastek z błędu średniokwadratowego.

Coverage ±σ – procent przypadków, w których rzeczywista wartość znalazła się w przedziale: (predykcja ± odchylenie standardowe).

Wskaźnik trafności kierunku (Direction Accuracy) – procent przypadków, w których model poprawnie przewidział, czy cena wzrośnie/spadnie.

MAPE – Mean Absolute Percentage Error - średni błąd procentowy - czyli o ile % średnio model się myli

Obserwacje:

Dodanie preprocessingów i większej liczby cech systematycznie obniżało błędy predykcji. Model Bayesowski nie osiągnął najniższych wartości MAE, ale jako jedyny dostarczał informacji o niepewności, co ma istotne znaczenie praktyczne. Wartość Coverage ±σ wynosząca 74% sugeruje, że model poprawnie kalibruje swoje rozkłady predykcyjne – co może być wykorzystane do filtrowania „niskozaufaniowych” sygnałów.

Wnioski końcowe

Dokładność to nie wszystko. W inwestycjach równie ważne jest zrozumienie niepewności predykcji. Model, który trafnie przewiduje wzrost, ale nie jest tego pewien, może być mniej użyteczny niż taki, który przewiduje stabilnie mniejsze zmiany — ale z wysokim zaufaniem. Bayesowskie modele LSTM zmieniają reguły gry. Pozwalają nie tylko klasyfikować lub przewidywać wartości, ale również oceniać zaufanie do każdej prognozy. To może stanowić fundament systemu inwestycyjnego, który dynamicznie waży sygnały na podstawie ich niepewności (ŷ ± σ).

Andrzej