Lazy Prices: jak sprawdziliśmy raporty giełdowe z ostatnich 20 lat, żeby zweryfikować hipotezę badawczą

Artificial Intelligence & Machine Learning

Sztuczna inteligencja przeistoczyła się z ciekawostki technologicznej do prężnie rozwijającej się gałęzi IT. Większość firm mając w planach swój rozwój, dokonuje tak zwanej transformacji w „data driven business” – biznes napędzany danymi. Oznacza to przejście z trybu podejmowania decyzji za pomocą wyłącznie wiedzy eksperckiej, w tryb podejmowania decyzji głównie w oparciu o dane. 

Biorąc pod uwagę coraz większe sukcesy modeli opartych o sztuczną inteligencję, wiele osób spróbowało swoich sił używając jej do przewidywania cen akcji giełdowych. Możliwość stworzenia algorytmu, który przewidzi wzrost ceny danej akcji i pozwoli użytkownikowi na szybkie wzbogacenie, rozpalał wyobraźnie naukowców zajmujących się danymi od wielu lat. 

Z upływem czasu, pomimo zastosowania wielu różnych metod, nie stworzono algorytmu, który w oczywisty sposób pozwalałby używać strategii wygrywającej w długim terminie na giełdzie. Większość metod oparta jest o próbę dopasowania wybranych algorytmów do historycznych zmiennych takich jak ceny akcji, kursy wymiany walut lub dóbr takich jak złoto czy mięso. 

Punkt wyjścia

W ramach budowanego na potrzeby firmy ‘proof of concept’ również spróbowaliśmy zbadać możliwość przewidywania, które akcje zyskają lub stracą na wartości. Nasz analiza opierała się jednak na analizie tekstu. 

 Wszystkie spółki giełdowe w USA zobowiązane są do publikowania kwartalnych i rocznych raportów, które opisują ich kondycję finansową. Raporty mają odgórnie wymuszoną strukturę, która określa jakie rozdziały powinny się w nich znaleźć. 

 Spółki publikują podczas jednego roku trzy raporty kwartalne (zwane 10-Q), oraz jeden raport roczny (zwany 10-K). 

Raporty giełdowe nie są lektura prostą i przyjemną. Są one zatrważająco długie. Ostatni raport roczny firmy Microsoft liczył 130 stron. 

Dodatkowo język, którym są napisane, jest bardzo oficjalny, prawniczy i powtarzalny. Dodatkowo, średnia długość raportów, pod względem liczby słów w nich użytych, zwiększa się praktycznie każdego roku, co przedstawione jest na poniższym wykresie. 

 

Dla analityków giełdowych kluczowe znaczenie mają dane finansowe, które informują o zyskach lub stratach i podane są w przejrzystych tabelach.  

Możliwe, że są to jedyne fakty na które zwróci uwagę analityk giełdowy, który pod koniec roku ma do przeczytania kilkadziesiąt 100-stronicowych raportów. 

Trójka ekonomistów: Lauren Cohen, Christopher Malloy z Harvard Business School, oraz  Quoc Nguyen z Uniwersytetu DePaul postawiła w swojej pracy 'Lazy Prices' tezę, według której porównując raporty giełdowe jesteśmy w stanie przewidzieć spadek lub wzrost ceny akcji danej spółki. 

 Naukowcy użyli technik analizy tekstu do obliczenia podobieństw pomiędzy raportami giełdowymi. Dowodzili oni hipotezy, według której spółki, których raporty cechują się dużym podobieństwem do swoich wersji z poprzedniego roku, będą zyskiwać na giełdzie. Spółki, których raporty zawierają wiele różnic, są za to narażone na przyszłe spadki cen lub nawet bankructwo. Może to interpretować także jako hipotezę, że stabilne spółki będą radzić sobie lepiej na giełdzie. 

Badacze w celu porównania raportów używają miar służących do obliczania podobieństwa tekstu takich jak miara kosinusowa czy miara Jaccarda. 

Nasz proces

 W celu weryfikacji hipotezy postawionej przez badaczy postanowiliśmy pobrać tysiące raportów giełdowych i w oparciu o metody NLP przeprowadzić własną analizę, która mogłaby potwierdzić jej prawdziwość. 

Pobranie i czyszczenie danych 

W początkowym etapie napisany został automatyczny scrapper, który pobierał raporty ponad 200 losowo wybranych firm z giełdy amerykańskiej.  

We wstępnym etapie analizy tekstu często wykonywane są operacje, które pozwalają wyczyścić i zmniejszyć występowanie rzadkich odmian słów. 

Jednymi z podstawowych metod, które pozwalają uzyskać lepsze metody w późniejszej analizie są: 

a) stemming– polega na pozostawieniu jedynie tematu wyrazu; ma na celu sprowadzenie  słowa występującego w różnych odmianach do jednakowej formy. Przykładem może być sprowadzenie każdego ze słów „tematy”, „tematów”, „tematem” do jednego słowa „temat”, 

b) usuniecie „stopwords” –częstą praktyką jest usuniecie słów, które występują bardzo często i nie wnoszą do tekstu dodatkowych informacji. Szczególnie analizując tekst w języku angielskim ważne jest usuniecie słów typu „the”, „a”, „an” i tym podobnych, 

c) usuniecie interpunkcji,

d) zamiana wielkich liter na małe.

Obliczenie miar podobieństwa 

Po wyczyszczeniu tekstu wszystkich raportów przechodzimy do obliczenia miar podobieństwa.  

 Obliczanie podobieństwa między dwoma dokumentami tekstowymi jest powszechnym zadaniem w NLP i ma wiele praktycznych zastosowań. Metoda ta jest używana, na przykład, do pozycjonowania wyników w wyszukiwarce lub polecania czytelnikom podobnych treści. 

Otrzymanie pojedynczej liczbowej wartości, która wskazuje skale podobieństwa dwóch tekstów, w znaczący sposób ułatwia i automatyzuje wiele procesów związanych z analiza danych. Istnieje wiele algorytmów, które sprawdzają podobieństwo tekstu. Niektóre z nich działają bazując na liczbie identycznych słów w dokumentach, inne, bardziej zaawansowane, budują zrozumienie zawartości dokumentów i umiejscawiają podobne teksty blisko siebie w wytrenowanej uprzednio przestrzeni wektorowej. 

W naszym projekcie użyliśmy dwóch miar, które zostały zastosowane w pracy Lazy Prices. Były to miary kosinusowe oraz Jaccarda. 

Podobieństwo kosinusowe jest miarą podobieństwa między dwoma wektorami wewnątrz danej przestrzeni unitarnej. Jest ona wyrażana poprzez kosinus kąta, wyznaczonego przez dwa wektory i określa w jakim stopniu skierowane są one w podobnym kierunku. 

Współczynnik Jaccarda mierzy podobieństwo zbiorów obliczając iloraz liczby elementów wspólnych do mocy sumy obu zbiorów. 

 W celu zastosowania miary kosinusowej oraz Jaccarda do obliczenia podobieństwa dokumentów tekstowych potrzebne jest odwzorowanie ich w przestrzeni wektorowej. 

W tym celu zebrane zostają wszystkie słowa występujące w przynajmniej jednym raporcie giełdowym. Następnie każdy raport zostaje przekształcony na wektor zawierający liczby, które odpowiadają ilości wystąpienia danego słowa w analizowanym raporcie.  

Tak stworzone wektory zostają użyte do obliczenia obu miar podobieństwa.  

 

Na powyższym obrazku widzimy przykład, w którym zdania są rzutowane na przestrzeń wektorową. Aby obliczyć podobieństwo kosinusową dwóch zdań, obliczylibyśmy kosinus kąta między odpowiadającymi im wektorami. 

Poniżej przedstawiamy sposób obliczania podobieństwa Jaccarda. Dla dwóch zdań obliczamy iloraz liczby słów wspólnych do liczby wszystkich unikalnych słów w obu zdaniach. 

Analiza zmiany cen 

W celu sprawdzenia korelacji pomiędzy podobieństwem raportów z kolejnych lat, a kondycją finansową spółki pobrane zostały historyczne ceny wszystkich analizowanych spółek począwszy od daty publikacji najstarszego raportu giełdowego.  

Raporty spółek zostały pogrupowane na raporty o małym (poniżej 10 percentyla), średnim (pomiędzy 10, a 80 percentylem) i dużym (powyżej 80 percentyla) podobieństwie. W każdym okresie rozliczeniowym wartości odpowiednich percentyli obliczane były normalizując według podobieństw wszystkich raportów z danego okresu.

 

Według pracy ‘Lazy Prices’ w celu zaobserwowania zmian w kondycji spółki potrzebne jest odczekanie trzech miesięcy od zakupu akcji, którą powinniśmy nabyć miesiąc po publikacji raportu. Na tej podstawie testowanie hipotezy będziemy przeprowadzać obliczając potencjalny zwrot z operacji zakupu danej akcji w dniu publikacji raportu oraz sprzedaży jej po upływie trzech miesięcy.  

W następnym kroku obliczymy średnie zwroty dla każdej z grup akcji (o małym, średnim i dużym podobieństwie). Zakładając prawdziwość hipotezy spodziewamy się wzrostów w grupie dużego podobieństwa i spadków w grupie małego podobieństwa. 

Analizę przedstawiliśmy w interaktywnej aplikacji napisanej przy użyciu biblioteki Streamlit. Na wykresach pokazane są średnie zwroty po 1, 2, 3, 4, 5 i 6 miesiącach od zakupu akcji. Według założonej strategii skupiamy się na zwrocie po trzecim miesiącu. Kolor linii oznacza grupę podobieństwa.  

Na wykresie obserwujemy dodatni zwrot bez względu na grupę podobieństwa raportów. Akcje kupowane są w momencie “1m” - miesiąc po publikacji raportu, oraz sprzedawane w momencie “4m” - 3 miesiące po zakupie. Wynika to z faktu, że analiza została przeprowadzona na historycznych danych giełdowych z okresu ostatnich 20 lat. W okresie tym uśredniając wszystkie akcje notowały wzrost cen. Stąd ciężko znaleźć podzbiór akcji, które po uśrednieniu zanotowałyby spadek. 

Ciekawa jest natomiast wyraźna różnica pomiędzy grupami. Akcje spółek, których raporty cechowały się dużym podobieństwem uzyskały po 3 miesiącach od zakupu zysk większy o ponad 3 punkty procentowe, co sugeruje, że hipoteza postawiona w pracy ‘Lazy Prices’ może być prawdziwa.  

 Zaskakujący również wydaje się fakt, że udało się nam uzyskać takie rezultaty przy użyciu bardzo podstawowych technik miary podobieństwa tekstu. Kolejnymi krokami, które mogą ulepszyć jakoś naszej predykcji spółek rosnących może być wprowadzenie zaawansowanych miar opartych o algorytmy typu word2vec czy transformerów. Dodatkowo zamiast obliczania historycznych zwrotów można pokusić się o budowę modelu ML, który korzystając z wartości różnych miar podobieństwa spróbuje rozwiązać problem regresji i przewidzieć dokładną wartość zmiany ceny akcji po trzech miesiącach.

tel:
email:
background triangle