Uniwersytet Ekonomiczny we Wrocławiu Wydział

Transkrypt

Uniwersytet Ekonomiczny we Wrocławiu Wydział
Uniwersytet Ekonomiczny
we Wrocławiu
Wydział Zarządzania, Informatyki i Finansów
Krzysztof Drelczuk
Wyszukiwanie wzorców kupna-sprzedaży
w finansowych szeregach czasowych za
pomocą teorii falek i gazów neuronowych
Praca magisterska
Katedra Teorii Informatyki
Promotor:
prof. dr hab. Jerzy Korczak
Wrocław 2008
2
Wrocław University of Economics,
Faculty of Management, Informatics and
Finance
Krzysztof Drelczuk
Discovering buy-sell patterns
in financial time series
using wavelet theory and neural gas algorithm
Master thesis
Department
of Computer Science
Supervisor:
prof. dr hab. Jerzy Korczak
Wrocław 2008
3
Oświadczam,
że
pracę
niniejszą
przygotowałem
samodzielnie.
Wszystkie dane, istotne myśli i sformułowania pochodzące z literatury
(przytoczone dosłownie lub niedosłownie) są opatrzone odpowiednimi
odsyłaczami. Praca ta nie była w całości ani w części, która zawierałaby
znaczne fragmenty przedstawione w pracy jako oryginalne (wyniki badań
empirycznych, obliczenia, spostrzeżenia, oceny, wnioski, propozycje itp.),
przez nikogo przedłożona do żadnej oceny i nie była publikowana.
Krzysztof Drelczuk
4
PODZIĘKOWANIA
Na pierwszych stronach mojej pracy magisterskiej chciałbym bardzo
podziękować mojemu promotorowi prof. dr hab. Jerzemu Korczakowi za czas
mi poświęcony oraz za bardzo cenne wskazówki, bez których praca ta w takiej
formie nigdy by nie powstała. Przede wszystkim jednak jestem wdzięczny za
słowa zachęty, wspieranie moich pomysłów oraz za bardzo dużą swobodę
pozostawioną mi przy tworzeniu niniejszej pracy. Dziękuję również za
wyrozumiałość szczególnie w ostatnim, edycyjnym, etapie tworzenia pracy.
Chciałbym również podziękować Katedrze Teorii Informatyki oraz
Centrum Inteligentnych Technologii Informacyjnych za udostępnienie mi sali
laboratoryjnej, w której mogłem przeprowadzić pierwsze eksperymenty z
prototypem systemu. Bez tej pomocy ukończenie badań w terminie byłoby
niemożliwe.
5
Podziękowania
4
Wstęp
9
Rozdział 1 Wstępna analiza danych
16
1.1 Strumienie danych
17
1.2 Okna przesuwne
18
1.3. Klasyfikacja obserwacji a priori
19
1.4 Transformacja falkowa
22
1.5 Budowa wektora wejściowego
23
Rozdział 2 Klasteryzacja danych
26
2.1 Klasyfikacja a klasteryzacja danych
26
2.2. Funkcje podobieństwa
28
2.3 Kwantyzacja przestrzeni cech i wieloboki Woronoja
29
2.4 Algorytm gazu neuronowego
31
2.5 Ekstrakcja wiedzy z skwantyzowanej przestrzeni cech
34
Rozdział 3 Prototyp systemu wspomagającego podejmowanie decyzji
36
3.1. Metody podejmowania decyzji finansowych
36
3.2 Idea hybrydowego systemu wspomagającego decyzje
38
3.3 Formalizacja decyzji inwestycyjnej
39
3.4 Budowa systemu wspomagania decyzji.
40
3.5 Wartości początkowe systemu
42
Rozdział 4 Analiza skuteczności sysemu H-Adviser
44
4.1 Metodyka analizy skuteczności
44
4.2 Wybór danych do systemu
46
4.3 Symulacja zastosowania systemu H-adviser
47
4.4 Dyskusja wyników
49
Zakończenie
52
Dodatek A Teoria falek
57
A.1 Przestrzeń funkcyjna L2 (ℜ )
57
A.2 Definicja falki
58
A.3 Analiza wielorozdzielcza
60
A.4 Falki Daubechies
64
A.5 Dekompozycja sygnału za pomocą falki D4
67
Dodatek B Opis Programu H-Adviser
B.1 Ogólna charakterystyka
70
70
6
B.2 Panel wyboru danych i ustawień dla klasteryzacji
71
B.2 Panel klasteryzacji
73
Dodatek C Aneks statystyczny
76
Literatura
81
7
Acknowledgements
4
Introduction
8
Chapter 1 Data preprocessing
15
1.1 Data streams
16
1.2 Sliding windows
17
1.3 A priori classification
18
1.4 Wavelet transform
21
1.5 Construction of input vector
22
Chapter 2 Data clasterization
25
2.1 Comparizion of classification and clasterization
25
2.2 Similarity function
27
2.3 Space quantization and voronoi diagrams
28
2.4 Neural gas algorithm
30
2.5 Knowledge extraction from quantized space
40
Chapter 3 Prototype of adviser system
35
3.1 Stock market trading rules
35
3.2 Hydrid adviser system
37
3.3 Formality of financial decisions
38
3.4 Construction of advising system
39
3.5 Default setting
41
Chapter 4 Quality of stock market decisions
43
4.1 Methods of quality measure
43
4.2 Choice of data for quality expertise
45
4.3 Simulation of use H-Adviser in real-life situation
46
4.4 Summary
48
Conclusions
50
Appendix A Wavelet theory
55
A.1 Function space
55
A.2 Wavelet definition
56
A.3 Multiresolution analysis
58
A.4 Daubechies wavelets
62
A.5 Signal decompoition with D4 wavelet
65
Appendix B H-Adviser manual
68
B.1 General characteristic
68
8
B.2 Data and clustering algorithm parameters
69
B.3 Clustering panel
71
Appendix C Statistical attachment
74
Bibliography
79
9
WSTĘP
Klasyfikacja szeregów czasowych przyciąga uwagę coraz większej
rzeszy naukowców i praktyków. Szczególnie widoczne jest to przy
przetwarzaniu długich szeregów czasowych, jakie występują na przykład w
bioinformatyce czy też w sferze finansowej. Klasteryzacja jest jedną z
najczęściej używanych technik pozyskiwania informacji z dużej ilości danych,
o których charakterze ze względu na bardzo dużą wielowymiarowość mamy
nie wielkie pojęcie.
Podstawowym
celem
klasteryzacji
jest
transformacja
danych
źródłowych do postaci bardziej kompaktowej, która jest w stanie w pełni je
odzwierciedlić. Polega na podziale zbioru danych na odpowiednie klasy
abstrakcji, czyli mniejsze podgrupy, gdzie elementy danego klastra są
podobne do siebie a mocno odmienne od innych. Rozwój technologii
informatycznej
w
ostatnich
latach
spowodował
duży
postęp
w
wykorzystywaniu narzędzi sztucznej inteligencji w metodach pozyskiwania
wiedzy z dużych wielowymiarowych struktur danych.
Tematem niniejszej pracy jest klasteryzacja szeregów czasowych za
pomocą algorytmu gazu neuronowego – specyficznej sieci neuronowej,
zaliczanej do narzędzi sztucznej inteligencji.
10
Klasteryzacja jest dobrze ugruntowaną i opisaną w literaturze tematu
metodą analizy struktury populacji, dziale statystyki. Wykładniczy przyrost
informacji w czasie, z jakim mamy aktualnie dotyczenia spowodował, iż
algorytmy klasteryzacji nabrały jeszcze większego znaczenia. Są one
podstawowymi metodami pozyskiwania wiedzy (ang. knowledge discovery)
[Fayyad 1996], pozyskiwania danych (ang. data mining) i inteligentnej
analizie danych [Liu 2000].
Klasteryzacja
jest
metodą
bardzo
często
wykorzystywaną
w
najróżniejszych dziedzinach badań, według [Backer 2000] zastosowanie
można podzielić na cztery grupy:
1. Formułowanie hipotez na podstawie pewnych danych źródłowych.
Bada zachowanie klastrów na różnych poziomach dokładności (dzieli
przestrzeń na coraz mniejsze przestrzenie). Na podstawie obserwacji, w
jakich sytuacjach klastry dzielą się na mniejsze lub scalają się możemy
stawiać hipotezy, w jaki sposób źródło (na przykład rynek) generuje
dane.
2. Tworzenie topologii danych. Zastosowaniem może być na przykład
obserwacja zachowania konsumentów. Dzieląc je na reprezentatywne
grupy możemy ulepszyć skuteczność działań marketingowych.
3. Prognozowanie danych. Problem predykcji może zostać sprowadzony
do identyfikacji wzorców, po których występują stałe zachowania.
4. Optymalizacja procesów. Odpowiednia identyfikacja grup zapytań
może zoptymalizować dostęp do danych.
Istnieje pięć paradygmatów klasteryzacji. Pierwszy z nich hierarchiczny
produkuje drzewiasty opis struktury. Drzewo jest konstruowane rekurencyjnie
scalając klastry niższego poziomu (bardzo szczegółowe) w klastry wyższego
poziomu (bardziej ogólne). Drzewo jest zakończone jednym głównym
klastrem (ang. super-cluster) zawierającym wszystkie elementy populacji.
[Bajcsy 1998], [ElSonbaty 1998].
11
Drugi paradygmat grafowy prezentuje obiekty jako graf ważony. Jest
on bardzo pomocny w analizowaniu struktur dwu-wymiarowych. Waga
pomiędzy jednym węzłem a drugim jest odległością pomiędzy obiektami
zgodnie z ustaloną metryką [Brito 1997], [Pacheco 1998], [Shapiro 1995].
Kolejnym paradygmatem są modele mieszanin (ang. mixtere models).
Klastry są generowane za pomocą kombinacji rozkładów prawdopodobieństw
[McLachlan 1998], [Fraley 1998], [Banfield 1993].
W następnym paradygmacie, grupującym (ang. partional) klastry są
rozłączne, a każdy obiekt może należeć tylko i wyłącznie do jednego klastra
[Lin, Lin 1996], [AlSultan 1996].
Ostatni paradygmat klasteryzacji rozmytej zakłada, iż elementy należą
do odpowiednich klastrów w odpowiednim stopniu. Prowadzi to do
możliwości przynależności jednego elementu do wielu klastrów [Bezdek,
1981], [Hoppner, 199].
Problem klasteryzacji jest, biorąc pod uwagę złożoność obliczeniową,
równoważny z optymalizacją globalną nieliniowych funkcji wielomodalnych
tak, więc zalicza się do problemów NP-trudnych [Weigend 1997]. Pomimo
tego metody eksploracji danych finansowych mające na celu predykcje czy też
klasyfikacje potrafią osiągać bardzo dużą skuteczność mierzoną tak w
wskaźnikach statystycznych jak i realnych korzyściach ekonomicznych.
Teoria błądzenia losowego rynków finansowych, która przekreślałaby
skuteczność powyższej analizy szeregów czasowych również była i jest
szeroko dyskutowana w wielu pracach. Jednakże w większości przypadku nie
dało się jednoznacznie dowieść hipotezy o słabej efektywności rynku według
Famy [Fama 1970]. W szczególności nie udało się tego ustalić dla polskich
rynków kapitałowych [Czekaj 2003].
Problem postawiony w danej pracy brzmi: „Czy można tak podzielić
szeregi czasowe, aby jeden klaster zawierał te, które w przyszłości wykażą
tendencje wzrostowe, a drugi tendencje zniżkowe?” Aby trafniej klasyfikować
wybrane podzbiory szeregów czasowych przynależność do klastrów zostanie
12
za pomocą funkcji przynależności zbiorów rozmytych [Rutkowski 2005].
Taka konstrukcja klastrów pozwoli również dać użytkownikowi bardzo
czytelną odpowiedź w stylu: „Ten szereg czasowy wzrośnie z 78
procentowym prawdopodobieństwem”. Komunikat taki umożliwi podjęcie
decyzji w zależności od skłonności do ryzyka danego inwestora.
Jednym z kluczowych problemów podczas procesu klasteryzacji jest
wielowymiarowość danych wejściowych. Przestrzeń rozwiązań, którą system
będzie dzielić na klastry ma taką wymiarowość jak wektory do niej
wprowadzane. W przypadku, gdy będą brane dane z sześćdziesięciu (dane z
jednej minuty w odstępach jednosekundowych) ostatnich obserwacji,
przestrzeń, jaką będzie musiał podzielić będzie przestrzenią 60-wymiarową.
Klasyfikacja polega na przypisywaniu elementów do odpowiednich klastrów
za pomocą z góry założonej normy (na przykład Euklidesowej). Przy dużej
liczbie wymiarów różnica pomiędzy najbliższym i najdalszym sąsiadem staje
się coraz mniej istotna, co znacznie utrudnia podział przestrzeni na znaczące
klastry [Beyen 1999].
W literaturze przedmiotu istnieje bardzo wiele dobrze poznanych i
bogato opisanych algorytmów redukcji wymiarów takich jak na przykład:
neuronowe sieci autoasocjacyjne, dyskretna transformacja Fouriera, czy też
dyskretna transformacja falkowa. Istnieje także wiele innych mniej znanych
metod jak na przykład: drzewo regresji [Geurts 2001], nieciągłych
reprezentacji (z ang. piecewise
representation) [Keogh 1998],
nieciągłe
zagregowane aproksymacje (z ang. piecewise aggregate approximation)
[Keogh 2000], [Yi 2000].
W niniejszej pracy problem klasteryzacji zostanie użyty do analizy, a w
konsekwencji do predykcji, szeregów finansowych o dużej częstotliwości.
Dane takie często nazywane są w literaturze jako szeregi prawie-losowe (ang.
near-random walk). Analiza i predykcja takich danych jest niezmiernie trudna
a wyniki skuteczności na poziomie 55-60% są uznawane za duże [Lipiński
2005].
13
Istnieje wiele metod, tak teoretycznych jak i obliczeniowych, analizy i
predykcji finansowych szeregów czasowych. Często polega ona na
zbudowaniu formalnego modelu rynku na podstawie długich obserwacji i
wielu zmiennych [Box 1994], [Brockwell 2002], [Karatzas 1998], [Rachev
2004]. Te metody jednakże bywają zawodne w stosunku do danych o
wysokiej czy też ultra-wysokiej częstotliwości, czyli o bardzo częstych
dyskretnych zmian cen wraz z dużą nieregularnością w domenie czasu [Bień
2005].
Jednym z wielu rozwiązań jest podejście obliczeniowe, które
najczęściej polega
na
narzędziach
sztucznej
inteligencji
takich
jak
algorytmach genetycznych, sieci neuronowych, stawia sobie na celu, zamiast
próby budowania kompletnego modelu, znalezienie pewnych chwilowych
własności, które mają istotny wpływ na rynek finansowy [Allen 1999], [Bauer
1994], [Demster 2003], [Kwasnicka 2001], [Tsang 2000].
W niniejszej pracy zostanie zaproponowany system wyszukujący
wzorce w szeregach czasowych o wysokiej i ultra-wysokiej częstotliwości. Ich
poznanie i identyfikacja pozwoli na przewidywanie przyszłych zachowań
szeregów czasowych. Formalnie zostaną teraz sformułowane hipotezy,
których prawdziwość zostanie zweryfikowana w niniejszej pracy.
1. Szereg czasowy zawiera pewne wzorce, po których następuje taka sama
zmiana wartości tego szeregu.
2. Znalezienie i identyfikacja niniejszych wzorców, jest możliwa do
przeprowadzenia
w
bardzo
krótkim
czasie
za
pomocą
jednostanowiskowej aplikacji uruchomionej na komputerze domowym.
3. Wykorzystanie
znalezionych
wzorców
w
środowisku
rynków
finansowych pozwoli na osiągnięcie ponadprzeciętnych zysków.
Próby
weryfikacji
powyższych
hipotez
zastaną
przedstawione
niniejszym pracy. Do weryfikacji hipotez posłuży autorski program H-Adviser
zaimplementowany w C# i działający na platformie uruchomieniowej.NET
14
szczegółowo opisany w niniejszej pracy z szczególnym uwzględnieniem
rozdziału 3 i dodatku C.
Struktura pracy i wybór tematyki jest ściśle związana z procesem
budowy systemu wspomagającego decyzje (od wstępnej analizy danych,
poprzez problem klasteryzacji do konstrukcji samego systemu) lub też w
sposób, w jaki system buduje decyzje (od pobrania i wstępnego przetworzenia
danych,
poprzez klasteryzację do utworzenia decyzji prezentowanej
użytkownikowi).
W rozdziale pierwszym zostanie przestawiony model strumieni danych
za pomocą, których dane zostaną pozyskane a następnie zostanie opisana ich
wstępna obróbka. W tym rozdziale zostanie przedstawiona propozycja
rozwiązania problemu wielowymiarowości wektora wejściowego za pomocą
dyskretnej transformacji falkowej. Zostanie również tutaj przedstawiony
sposób opisu klastrów za pomocą liczb rozmytych. Ostatecznie zostanie
zaprezentowany wektor w takiej postaci, w jakiej zostanie wprowadzony do
systemu klasteruzującego.
Rozdział drugi ma charakter teoretyczny. Zostanie w nim szczegółowo
i formalnie opisany problem klasteryzacji oraz sposób jej przeprowadzenia za
pomocą algorytmu gazu-neuronowego. Zostanie także zaprezentowana
metoda ekstrakcji wiedzy z przestrzeni podzielonej na klastry.
W rozdziale trzecim zostanie przedstawiona budowa systemy
wspomagającego decyzje inwestycyjne zbudowanego na podstawie założeń
przedstawionych w rozdziale pierwszym i drugim.
Ostatni rozdział, czwarty, zawierać będzie analizę skuteczności decyzji
inwestycyjnych opartych na informacjach wygenerowanych poprzez system.
W nim też nastąpi weryfikacja hipotez przedstawionych w niniejszym wstępie.
Dodatkowo praca zawiera trzy dodatki. Pierwszy poświęcony jest teorii
falek. Z większą dokładnością zostanie opisana w nim dyskretna transformacja
falkowa oraz opis i budowa falki Daubechies 4, która została wykorzystana w
niniejszej pracy. Znajdują się tam także szczegółowo opisany algorytm
15
redukcji wymiarów oparty na dyskretnej transformacji falkowej. Ostatni
dodatek jest opisem programu wspomagającego decyzje H-Adviser, którego
prototyp zastał zaprezentowany na łamach niniejszej pracy. W dodatku
ostatnim C, zatytułowanym aneks statystyczny, zestawiono wszystkie szeregi
czasowe wybrane do weryfikacji hipotez przy użyciu hybrydowego systemu
wspomagania decyzji wraz z ich krótkim opisem statystycznym.
16
ROZDZIAŁ 1
WSTĘPNA ANALIZA DANYCH
1.1 Strumienie danych
1.2 Okna przesuwne
1.3 Klasyfikacja obserwacji a priori
1.4 Transformacja falkowa
1.5 Budowa wektora wejściowego
W niniejszym rozdziale autor pracy przedstawi w pierwszej kolejności
sposób pozyskiwania danych finansowych. Zostaną opisane ograniczenia
nałożone na system w związku z traktowaniem wartości szeregów czasowych,
jako strumień danych. Następnie zostanie opisany sposób redukcji wymiarów
oraz zmniejszania wagi sygnałów odległych za pomocą transformacji
falkowej. Na końcu przedstawiona zostanie ostateczna budowa wektora
wejściowego, który używany będzie w procesie klasteryzacji jako wektor
kodujący odpowiedni wzorzec.
17
1.1 Strumienie danych
Strumienie danych (ang. data streams) aktualnie przyciągają uwagę
wielu specjalistów w najróżniejszych technologiach między innymi takich jak
systemy bazodanowe, biometrii lub też systemy rozproszone. Jak sama nazwa
wskazuje o strumieniu danych możemy myśleć, jako o uporządkowanej
sekwencji tych samych elementów (tak bitów jak i bardziej złożonych
obiektów), które oddziela zmienny interwał czasu [Garofalakis 2002], [Golab
2003]. Wykorzystuje się je między innymi w systemach telekomunikacyjnych,
sieciach monitorujących jak też w analizie bieżących danych finansowych.
Pomijając problem magazynowania danych i ich analizy, przetwarzanie
ciągłego strumienia napływających danych rozmieszczonych nieregularnie w
czasie i teoretycznie bez żadnych ograniczeń jest wyzwaniem samym w sobie.
Przy takiej ilości danych nie ma miejsca na to aby składować je w na przykład
w bazach danych i po osiągnięciu ich odpowiedniej ilości poddać obróbce.
Oczywiście strumienie muszą być przetwarzane w czasie rzeczywistym.
Celem niniejszej pracy jest klasyfikacja strumieni danych w taki sposób
aby te podobne do siebie na bieżąco były klasyfikowane do odpowiadających
im grup. Oczywiście surowe dane nie nadają się do analizy chociażby z
powody szumów i zbyt dużej wielowymiarowości. Analiza taka nie dość, że
nie jest wystarczająco skuteczna, to jeszcze jest bardzo czasochłonna.
Rysunek 1 Prosty schemat modelu przetwarzania strumieni danych
Źródło: [Beringer 2007]
18
Model strumieni danych zakłada brak możliwości dostępu do danych w
sposób asynchroniczny z dowolnego źródła danych (RAM lub dysk) choć
dopuszcza możliwość ich buforowania. Komunikacja z serwerem danych jest
jednostronna. Sposób odbierania danych w taki sposób wymusza, co
następuje:
• klient nie wysyła żadnych żądań, działa jak odbiornik i reaguje
odpowiednimi zdarzeniami na pojawiające się dane;
• system nie weryfikuje danych, nie odpowiada serwerowi, gdy dane
otrzyma;
• zakłada się, że długość strumienia danych jest nieskończona;
• nie ma możliwości, aby pobrać dane już wcześniej dostarczone (choć
oczywiście mogą być one buforowane);
• dopuszcza się możliwość bezpowrotnej utraty danych spowodowaną
błędami transmisji.
Wszelkie operacje związane z pobieraniem i przetwarzaniem danych będą
spełniały wyżej wymienione warunki.
1.2 Okna przesuwne
Analiza nieskończenie długich strumieni danych jest niemożliwa do
wykonania, dlatego też należy wydzielić z niego mniejsze fragmenty.
Wielkość wydzielonego fragmentu powinna być na tyle mała, aby strumienie
można było szybko sklasyfikować, ale też na tyle duża, aby analiza była
wiarygodna i mogła stanowić podstawę do podejmowania skutecznych decyzji
inwestycyjnych. Najpopularniejszym sposobem, aby uzyskać taki rezultat jest
wykorzystanie okna przesuwnego (ang. sliding-window). Długość okna może
być stała lub też zmieniać się w czasie podczas wykonywania klasyfikacji.
Rozważając okna przesuwne o założonej długości w, strumień można
formalnie opisać jako w-wymiarowy wektor X = ( x0 , x1 , x2 ,…, xw −1 ) ∈ ℜ w . Każdą
obserwację x traktujemy jako liczbę rzeczywistą. Tak, więc całkowity
19
strumień
X = ( x0 , x1 , x2 ,…, x∞ ) dzielimy oknem przesuwnym na wektory
składowe w następujący sposób:
X 0 = ( x0 , x1 , x2 ,…, xw −1 ) ,
X 1 = ( x1 , x 2 , x3 ,… , x w ) = X 0 − {x0 } ∩ {x w },
X 2 = ( x 2 , x3 , x 4 ,… , x w+1 ) = X 1 − {x1 } ∩ {x w+1 }
lub ogólnie zgodnie ze wzorem (1).
X n = ( x0 + n , x1+ n , x2 + n ,…, xw −1+ n ) = X n −1 − {x0 + n } ∩ {xw −1+ n }
(1)
Tak skonstruowane wektory za pomocą okien przesuwnych posłużą
jako wektory kodowe do wyszukiwania wzorców kupna i sprzedaży.
1.3. Klasyfikacja obserwacji a priori
Ustalony tak wektor jest wystarczający do sprawnego działania
systemu. Jednakże, aby mógł on się kalibrować ze względu na warunki
aktualnie panujące na rynku oraz umożliwić opisanie klastrów w przestrzeni,
do każdego wektora zostanie dodana dodatkowa wartość określająca a priori
przynależność danego wektora do odpowiedniego klastra.
Będzie ona wyrażała procentowo zmianę pierwszej wartości nowego
okna przesuwnego względem ostatniej wartości ostatniego okna przesuwnego.
Wartość tą będzie wyrażać liczba rzeczywista.
Aby zapewnić bardziej precyzyjne opisanie wzorców wartość ta
zostanie znormalizowana do przedziału (-1,1). Obserwację taką będzie można
uznać wtedy jako matrycę wzorca kupna jeśli wartość ta będzie bliska 1, i
odwrotnie jeśli będzie ona bliska -1 będzie wskazywała na wektor który
koduje wzorzec sprzedaży.
Można potraktować ten przedział jako zbiór rozmyty decyzji
inwestycyjnych gdzie na blisko granicy lewostronnej znajdują się decyzje
sprzedaży a blisko granicy prawostronnej decyzje kupna.
20
Mając na uwadze powyższe funkcja tworząca taki zbiór rozmyty musi
spełniać przy tych założeniach następujące warunki:
 lim f = 1
 x → ∞
f =  f ( 0) = 0
 lim f = −1
 x → −∞
(2)
Odpowiednią funkcją spełniającą te warunki jest między innymi
tangens hiperboliczny. Z punktu widzenia działania systemu ma ona
dodatkowo dwie ciekawe własności. Pierwsza z nich to łatwość obliczenia jej
wartość przy zadanym argumencie. Dokładną postać funkcji po przestawia
wzór (3).
tanh x =
e x − e−x
e x + e −x
(3)
Aby dokonań obliczenia wystarczy obliczyć wartość funkcji e dla wartość
argumentu x i –x (rysunek 2).
Rysunek 2. Wykres ex
Źródło: opracowanie własne przy użyciu programu Derive
Druga własność to łatwa skalowalność funkcji. Operując parametrem x
można zmieniać kąt nachylenia pomiędzy funkcją, a osiami współrzędnych.
Można potraktować ten parametr jako współczynnik ryzyka. W zależności od
21
niego sygnały kupna lub sprzedaży będą pojawiały się przy mniejszych
zmianach bezwzględnych elementów wektora wejściowego. Ilustruje to
rysunek 3.
Rysunek 3 Skalowanie funkcji tanh(x)
Źródło: opracowanie własne przy użyciu programu Derive
Parametrem tym można także dostrajać system do zmienności szeregu
czasowego. Przy szeregach czasowych o bardzo wysokiej amplitudzie zmian,
zmiana jedno-procentowa może być bardzo znacząca natomiast dla innych o
mniejszej częstotliwości może być zmianą nic nieznaczącą. Wtedy wzorzec
zakodowany jako wzrostowy dla szeregu o mniejszej amplitudzie zmian może
w
rzeczywistości
oznaczać
trend
boczny,
w
którym
porusza
się
klasteryzowany walor i prowadzić do błędnych decyzji inwestycyjnych.
Użytkownik będzie miał możliwość wyboru tego parametru, co sprawi,
że system będzie bardziej elastyczny i lepiej reagował z danych o różnych
amplitudach zmian.
22
1.4 Transformacja falkowa
Dyskretna transformacja falkowa [Daubechies 1992], [Meyer 1995],
[Mallat 1989] jest bardzo częstą techniką wykorzystywaną we wstępnej
analizie danych. Dzięki niej można zarówno zredukować ilość wymiarów
wektora wejściowego, do docelowego systemu analizującego dane (np.
klasyfikującego albo predykcyjnego), jak i usunąć część informacji uznanych
przez
transformacje
jako
szum
lub
redundancje
danych,
jednakże
pozostawiając w sygnale informacje oryginalne (w sensie Shanon’a) [Sharon
1948]. Skrótowy opis teorii falek wraz z opisem pozyskania falki Daubechies2 (D2), która została wykorzystana w systemie przez autora pracy, oraz
kryterium jej wyboru zawiera dodatek A.
Istnieje nieskończenie wiele możliwości podziału wektora wejściowego
na podciągi. Dodatkowo jest wiele możliwości ustawienia stopnia kompresji
danych wejściowych. W niniejszej pracy, przy budowie systemu wspomagania
decyzji na drodze eksperymentów został wybrany następujący model: wektor
przekazany do systemu zostanie poddany dyskretnej transformacji wejściowej
(DTF) za pomocą falki D2 w sposób następujący:
1. pierwsze osiem elementów zostanie zredukowanych do dwóch;
2. kolejne szesnaście elementów zostanie zredukowane do czterech;
3. trzydzieści dwa następne elementy zostanie zredukowane do ośmiu.
Uzyskamy w ten sposób redukcję z przestrzeni 56-wymiarowej do 14wymiarowej:
W procesie decyzyjnym najważniejszą wartość mają dane aktualne. Im
dalej od ostatniego sygnału tym mniejszą wartość informacyjną przypisujemy
danym. Jeśli wektor wejściowy do systemu klasyfikującego ma postać
X = ( x1 , x2 , x3 ,..., xn ) , to największą wagę przypiszemy składowej najmłodszej
(czyli x1 ), mniejszą kolejnej ( x2 ), a najmniejszą ostatniej ( xn ). Taki sposób
podzielenia na podciągi wektora wejściowe zapewni właśnie taki rezultat.
23
1.5 Budowa wektora wejściowego
Uzyskany przez transformację falkową wektor ze strumienia danych po
redukcji wymiarów i dodaniu wartości opisującej wzorzec a priori jest już
prawie gotowy do wprowadzenia do systemu klasteryzującego. Jednakże, jeśli
pozostawimy w wektorze wartości rzeczywiste może dojść do sytuacji, kiedy
dwa
identyczne,
pod
względem kształtu,
wektory kodowe zostaną
zaklasyfikowane do dwóch oddzielnych klastrów. Problem przedstawia
rysunek 4. Problem ten można rozwiązać stosując normalizację danych do
odpowiedniego przedziału. Tak przeskalowane wektory kodowe będą już nie
rozróżnialne dla systemu i zostaną umieszczone w tym samych klastrach.
Formalnie chcemy uzyskać, aby wartości minimalna i maksymalna
danego wektora były, z definicji, równe z góry założonym liczbom. Autor
pracy arbitralnie wybrał wartości -1 i 1 (równie często spotykanym
rozwiązaniem jest wybór wartości 0 i 1).
df
df
a = max( X n ) = 1 , b = min ( X n ) = − 1
(4)
Taką normalizację nazywamy normalizacją mini-max. Wartości składowych
znormalizowanego wektora obliczamy za pomocą wzoru 5.
X* =
X − min( X )
X − min( X )
=
zakres( X )
max( X ) − min( X )
(5)
Przy tak znormalizowanych wartościach, wszystkie wektory kodowe,
zostaną umieszczone w hiperprzestrzeni ograniczonej przez hipersześcian o
środku ciężkości w środku układu współrzędnych.
24
Rysunek 4 Nieznormalizowany wektor kodowy w zakresie [3,18] i [30,180]
Źródło: Opracowanie własne przy użyciu programu MATLAB
25
Tak przygotowany wektor, o zredukowanej transformacją falkową
liczbie wymiarów, składający się z znormalizowanych wartości jest już w
pełni gotowy do przekazania go do systemu klasteryzującego opisanego w
kolejnych rozdziale.
26
ROZDZIAŁ 2
KLASTERYZACJA DANYCH
2.1 Klasyfikacja a klasteryzacja danych
2.2 Funkcje podobieństwa
2.3 Kwantyzacja przestrzeni cech i wieloboki Woronoja
2.4 Algorytm gazu neuronowego
2.5 Ekstrakcja wiedzy z skwantyzowanej przestrzeni cech
W rozdziale tym zostanie teoretycznie nakreślony problem klasteryzacji
oraz zostanie zaproponowana metoda jej wykonania za pomocą algorytmu
gazu neuronowego. Opisany szczegółowo zostanie także sam proces dzielenia
przestrzeni na klastry, czyli kwantyzacja przestrzeni cech. Na samym końcu
zostanie przedstawiony problem wizualizacji przynależności wektora do
danego klastra i zostanie zaproponowane rozwiązanie tego problemu w sposób
intuicyjny i łatwy dla odczytanie przez końcowego użytkownika.
2.1 Klasyfikacja a klasteryzacja danych
Klasyfikacja statystyczna to rodzaj procesu przetwarzania danych,
który przydziela obserwacje statystyczne do klas, bazując na atrybutach
27
(cechach) tych obserwacji. Formalnie problem ten można przedstawić: dla
danego
zbioru
danych
klasyfikator
trenujących
, który przydziela obiektowi
znaleźć
klasę
[Bobrowski 1986]. W przypadku problemu postawionej w niniejszej pracy xi
reprezentować będą wektory kodowe natomiast y określać będą wzorce kupna
lub sprzedaży.
Klasteryzacja jest natomiast klasyfikacją nie nadzorowaną obiektów na
różne podgrupy. Bardziej formalnie jest to partycjonowanie zbioru danych na
podzbiory (klastry), takie, że elementy w każdym zbiorze są do siebie
podobne (identyczne) ze względu na jakąś cechę, natomiast odmienne od
innych elementów zgromadzonych w innych klastrach [Malarska 2005]. Do
porównywania elementów używamy z góry zadanej funkcji liczącej odległości
od elementów i na jej podstawie ustalamy podobieństwo. Inną bardo ważną
cechą klasteryzacji jest to, iż dzielenie elementów, na klastry jest
nienadzorowane. Z tego też względu klasteryzacja nie posiada zbioru
uczącego. Dane analizowane są dla całego zbioru. Idea polega na tym, ze
badamy odległości obiektów od skupisk umieszczonych w przestrzeni
metrycznej za pomocą z góry określonej normy.
Na potrzeby niniejszej pracy gdzie klasteryzujemy wektory kodowe,
które są podciągami szeregu czasowego możemy klasteryzację zdefiniować
następująco. Niech V będzie zbiorem wektorów v j gdzie j = 1,2,..., n . Celem
klasteryzacji jest przyporządkowanie elementów zbioru V elementom zbioru
klastrów K w taki sposób, że zmienne należące go jednego klastra są bardziej
do siebie podobne ze względu na z góry założoną miarę (normę). Wynikiem
tej procedury jest injekcja (w szczególnych przypadkach bijekcja) V → K .
Bardzo ważnym elementem przy klasteryzacji jest wybór funkcji
podobieństwa, czyli normy mierzącej odległości elementów od siebie.
Skrótowe przedstawienie najczęściej wykorzystywanych norm zawiera
kolejny podrozdział.
28
2.2. Funkcje podobieństwa
Istnieje
wiele
podziałów
funkcji
mierzących
dystans
między
elementami umieszczonymi w klasteryzowanej przestrzeni. Jedna najbardziej
widocznym podziałem są normy symetryczne i niesymetryczne. W normach
symetrycznych odległość (podobieństwo) elementu A do elementu B jest
równoważne odległości elementu B do elementu A. W niektórych procesach
klasteryzacji jest to poważne ograniczenie, dlatego też używane są normy
niesymetryczne na przykład sequence-alignment methods [Prinze 2006]. W
niniejszej
pracy
klasteryzacji
podlegają
wektory
umieszczone
w
wielowymiarowej przestrzeni euklidesowej, która jest symetryczna, dlatego
autor pracy ograniczy się do bardziej szczegółowego opisania norm
symetrycznych.
Najczęściej używaną normą, która jest zarazem najbardziej intuicyjna,
jest norma euklidesowa [Rutkowski 2006]. Dla dwóch wektorów P i Q o
składowych odpowiednio pi i qi, gdzie i oznacza naturalny indeks składowej
wektora, normę euklidesową definiujemy, jako:
(6)
Jest to po prostu odległość między dwoma punktami taka jaką znamy z świata
rzeczywistego. Prawdziwość (6) można udowodnić stosując rekursywnie
twierdzenie pitagorasa, dlatego też kiedyś nazywana była
metryką
Pitagorejską.
Inną metodą mierzenia podobieństwa jest metryka Minkowskiego1, dla
wektorów x i y możemy ją zapisać wzorem (7). Jest ona również nazywana
metryką Manhattan, miejską lub taksówkową.
(7)
1
Nazwana tak na cześć Hermanna Minkowskiego (ur. 22 czerwiec 1864. zm. 12 styczeń 1909), niemieckiego
pochodzenia matematyka i fizyka ur. w Aleksotas (obecnie Kowno w Rosji).
29
Nie wszystkie miary ograniczają się tylko i wyłącznie do liczenia
dystansu. Miarą, która nie tylko rozróżnia odległość elementów, ale także
korelacje między tymi jest odległość Mahalanobisa. Mając dane dwa wektory
x i y, oraz pewną symetryczną, dodatnio określoną macierz C możemy ją
opisać wzorem (8).
(8)
Mierzy ona odległość między dwoma punktami w n wymiarowej przestrzeni
różnicując wkład poszczególnych składowych oraz wykorzystując korelacje
między nimi. Ze względu na swoje cechy często nazywana także ważoną
miarą euklidesową, przy czym macierzą wag jest C-1.
W niniejszej pracy w celu uproszczenia problemu oraz zmniejszenia
złożoności obliczeniowej procesu, klasteryzacji jako funkcja podobieństwa
została wybrana norma euklidesowa.
2.3 Kwantyzacja przestrzeni cech i wieloboki Woronoja
Podczas
procesu
uczenia
systemowi
klasyfikującemu
zostaną
przedstawione odpowiednio przygotowane wektory danych. W tym czasie
neurony starają się ulokować pośród tych punktów (danych) i stać się ich
reprezentantami. W ten sposób cała przestrzeń zostaje podzielona na obszary
odzwierciedlające strefy wpływów poszczególnych neuronów. W przypadku
używania metryki euklidesowej są to obszary wypukłe, które czasami
nazywane są wielobokami Woronoja2, które schematycznie przedstawia
rysunek 5.
Reprezentujące te obszary neurony nazywa się wektorami Woronoja
lub wektorami kodowymi.
2
Graf nazwany tak na cześć rosyjskiego matematyka Gieorgija Fieodosjewicza Woronoja (1868 – 1908). Znany
również jako tesselacja Dirichleta, tesselacja Woronoja, lub komórkami Woronoja. W powszechnym użytku
jest też inna pisownia nazwiska – Voronoi.
30
Rysunek 5. Diagram Woronoja dla R2
Źródło: opracowanie własne.
Obszary Woronoja Vi są zdefiniowane jako miejsce geometryczne punktów x
spełniający następujący warunek:
{
}
Vi = x : wi − x < w j − x , j ≠ i
(9)
W rezultacie po wykształceniu stref wpływów poszczególnych
neuronów, cała przestrzeń danych zostaje, skwantyzowana – co oznacza, że
pozostaje ona podzielona na rozłączne obszary, które dopełniają się do całej
przestrzeni, którą kwantyzują. Dla n-wymiarowej rzeczywistej przestrzeni
zachodzą własności (10), mianowicie:
∞
∪V
i
= Rn
i
(10)
∞
∩V
i
=∅
i
Wtedy wektory danych należące do jednego obszaru Woronoja są
reprezentowane przez znajdujący się w tym obszarze neuron.
31
2.4 Algorytm gazu neuronowego
Algorytm Gazu Neuronowego (Neural Gas NG został zaprezentowany
w pracy Martineza, Berkovicha, Schultena „Neural-gas network for vector
quantization and its application to time series prediction.” [Martinetz 1993].).
Celem autorów było dokonanie kwantyzacji przestrzeni cech i uzyskanie
wektorów kodowych, które mogłyby odgrywać role reprezentantów zbioru
danych. W zaproponowanej metodzie wektory te, są znajdywane metodą
nauczenia bez nadzoru w warunkach konkurencji. Używa się łagodnej funkcji
sąsiedztwa obejmującej wszystkie neurony i malejącej wykładniczo w miarę
zwiększania się odległości neuronu od prezentowanego wektora danych.
W przypadku asymptotycznym, gdy ilość neuronów dąży do
nieskończoności,
rozkład
neuronów
w
przestrzeni
opisuje
równanie
różniczkowe identyczne jak równanie charakteryzujące dyfuzję gazu – stąd
nazwa sieci „gaz neuronowy” [Martinetz 1993].
Algorytm gazu neuronowego nie jest tak popularny jak na przykład
metoda samoorganizujących się map Kohonena. Jednak badania wykazały, że
metoda ta jest bardziej efektywna niż sieci Kohonena i parę innych metod
klasyfikacji bez wzorcowej [Osowski 1996]. Jednak metoda ta nie dostarcza w
przeciwieństwie do klasycznych SOM (ang. self-organizing map) wizualizacji
danych.
W metodzie NG nie ma żadnej sieci, natomiast neurony dryfują
swobodnie w przestrzeni próbując ulokować się pomiędzy wektorami
wejściowymi. Liczba neuronów jest stała (zdefiniowana przez projektanta
sieci). Swoboda poruszania się jest jedynie ograniczona współzawodnictwem.
Do
poprawnego
działania
algorytmu
projektant
musi
ustalić
następujące parametry. Pierwszy z nich to oczywiście liczba neuronów. Nie
istnieje idealna recepta na dobór tego parametru. Każdy neuron reprezentuje
odpowiedni obszar w przestrzeni rozwiązań. Zbyt mała liczba będzie
powodowała problem błędnej klasyfikacji wektorów, zbyt duża natomiast
32
stworzy klasy bez reprezentantów, co spowoduje błędy przy uogólnianiu
wiedzy.
Kolejny parametr, który trzeba wziąć pod uwagę to współczynnik
uczenia ε. Na ogół przyjmuje się, że współczynnik ten maleje ze wzrostem
numeru iteracji algorytmu od wartości początkowej εi do końcowej εf
osiąganej w ostatnim przejściu. Najczęściej przyjmuje się, że współczynnik
ten maleje zgodnie z funkcją potęgową:
ε
ε (t ) = ε i  f
 εi
t
 tmax
 ,

(11)
gdzie t jest numerek wykonywanej iteracji a tmax jest ustaloną ilością iteracji.
Ostatnim parametrem jest sąsiedztwo oznaczane, jako λ. Funkcja
sąsiedztwa przyjmuje postać (12). Jako λi oznaczone jest sąsiedztwo
początkowe a jako λf końcowe. Parametry t i tmax oznaczają to samo, co w
formule (11).
λ
λ (t ) = λi  f
 λi
t
 tmax


(12)
Przy λ = 0 mamy do czynienia z zerowym sąsiedztwem i regułą WTA3. Przy
λ > 0 są aktualizowane wagi wszystkich neuronów (czyli również tych, które
są „dalekimi” sąsiadami), lecz współczynnik uczenia odległych sąsiadów
szybko dąży do zera. Jest to sytuacja podobna do tej, z jaką mamy do
czynienia w klasycznym algorytmie SOM z gaussowską funkcją sąsiedztwa
[Martinetz 1993].
33
Klateryzacja za pomocą gazu neuronowego ma następujący przebieg:
Gaz neuronowy – algorytm:
1:
Zainicjalizuj parametry:
−> λi – początkowy współczynnik sąsiedztwa (domyślnie połowa
liczby neuronów),
−> λf – końcowy współczynnik sąsiedztwa (domyślnie 0,01),
−> εi – początkowy współczynnik uczenia (domyślnie 0,5),
−> εf – końcowy współczynnik uczenia (domyślnie 0,005),
−> tmax – czas uczenia (domyślnie 3000),
−> t = 0 – aktualna iteracja algorytmu.
2:
Zainicjuj zbiór A tak aby zawierał N elementów (ilość
A = {c1 , c 2 , c3 , c 4 ,..., c N } .
neuronów)
Każdemu
neuronowi
przyporządkuj wektor wi (składowe ustalane są losowo).
3:
Pobierz jeden sygnał ze zbioru uczącego ξ .
4:
Posortuj
odległość
wszystkie
od ξ
elementy
Neuron
zbioru
najbliższy
A
ze
staje
względu
się
na
neuronem
zwyciężcą. Pozostałe neurony w zależności od odległości
ustawiają
się
w
kolejce
za
nim,
i
otrzymują
miejsca
1,2,3,..,N-1. Miejsca te oznaczane są i, co odczytuje się
„pozycja i-tego neuronu”.
5:
Funkcja sąsiedztwa przyjmie wartość
 −i 

hλ = exp
 λ (t ) 
(13)
gdzie i to pozycja w stosunku do neuronu zwycięskiego a
λ(t) jest wyrażona wzorem (12).
6:
Dokonaj adaptacji wag (pozycji neuronów w przestrzeni)
zgodnie ze wzorem:
∆wi = ε (t ) ⋅ hλ ⋅ (ξ − wi )
(14)
7:
Zwiększ parametr t o jeden.
8:
Jeśli t < tmax wróć do punktu 3 w przeciwnym razie zakończ
działanie.
3
WTA – z ang. Winner Takes All (zwyciężca bierze wszystko)
34
W punkcie czwartym algorytmu występuje przy sortowaniu pojęcie
odległości. Można tutaj użyć dowolnej normy potrafiącej skutecznie
zróżnicować wektory kodowe. Niektóre z najbardziej popularnie stosowanych
zostały opisane w podrozdziale drugim niniejszego rozdziału. W niniejszej
pracy, co było już wspomniane, zostanie użyta norma euklidesowa.
2.5 Ekstrakcja wiedzy z skwantyzowanej przestrzeni cech
Algorytm gazu neuronowego w przeciwieństwie do na przykład
samoorganizującej mapy Kohonena nie zapewnia wizualizacji efektów
klasteryzacji. Aby wizualizować użytkownikowi efekt działania algorytmu
należy wydobyć wiedze z skwantyzowanej przestrzeni cech i w odpowiedni
sposób ją zaprezentować.
W tym celu zostanie przeprowadzona procedura zbliżona do uczenia
sieci. Schemat działania pozyskania wiedzy można schematycznie opisać
następująco:
Ekstrakcja wiedzy – algorytm:
1:
Przedstaw sieci wektor do zaklasyfikowania ψ.
2:
Posortuj wszystkie elementy zbioru A (neurony) ze względu
na odległość od wektora ψ.
3:
Zwróć
wzorzec
wektora ψ wraz
zakodowany
z
w
odległością
neuronie
od
tego
najbliższym
neuronu.
od
Zakończ
działanie.
W ten sposób pozyskamy nie tylko wzorzec, jaki dany neuron koduje,
ale także znając odległość od niego możemy ustalić stopień przynależności
wektora do danego wzorca.
Chociaż zaklasyfikowanie wektora do odpowiedniego wzorca określa
wartość rozmyta to jednak użytkownik systemu wspomagającego decyzje, w
zależności od ustalonych parametrów, musi mieć decyzje „ostrą”. Jako
35
wartość ostrą rozumiemy jednoznaczną
wartość określającą decyzje
inwestycyjną utworzoną z wartości rozmytej. Dzięki temu, że zostanie
zwrócona także odległość wektora od zwycięskiego neuronu określającego
przynależność do danego klastra, w systemie sprawdzając ją można określić
czy jest ona wystarczająca do tego, aby dany wektor uznać, jako posiadający
tendencję wzrostową lub spadkową. Wtedy taka konkretna informacja może
być przedstawiona użytkownikowi. Wyostrzanie liczby rozmytej za pomocą
odległości od środka klasy (neurony) wygeneruje sygnał zawierają jedną z
trzech wartości: -1, 0, 1. Aby uczynić wizualizacje jeszcze bardziej intuicyjną
można przedstawić ten triplet, jako powszechnie znaną i zrozumiałą
sygnalizację świetlną gdzie kolor żółty (odpowiadający zeru) oznaczać będzie
oczekiwanie na sygnał, kolor czerwony (odpowiadający ujemnej jednostce)
będzie oznaczał sugestie do zamknięcia pozycji długiej lub do otwarcia
pozycji krótkiej i analogicznie kolor zielony (odpowiednik jedynki) będzie
sygnalizował otwarcie pozycji długiej lub też zamknięcie pozycji krótkiej.
Tak skonstruowany system klasteryzujący jest już w pełni gotowy do
zaimplementowania i nadaje się do weryfikacji hipotez postawionych we
wstępie niniejszej pracy. Jego budowę prezentuje kolejny, trzeci rozdział.
36
ROZDZIAŁ 3
PROTOTYP SYSTEMU WSPOMAGAJĄCEGO PODEJMOWANIE
DECYZJI
3.1. Metody podejmowania decyzji finansowych
3.2. Idea hybrydowego systemu wspomagającego decyzje
3.3 Formalizacja decyzji inwestycyjnej
3.4. Budowa systemu wspomagania decyzji.
3.5. Wartości początkowe systemu
W niniejszym rozdziale zostanie zaprezentowana idea hybrydowego
systemu
wspomagającego
decyzje.
Zostanie
zaprezentowany
sposób
podejmowania decyzji inwestycyjnych oraz opisane wartości początkowe
systemu wymagane do działania algorytmu klasteryzującego opisanego w
rozdziale wcześniejszym.
3.1. Metody podejmowania decyzji finansowych
Istnieje bardzo wiele metod podejmowania decyzji finansowych na
rynku papierów wartościowych. Można opierać się tylko i wyłącznie na
danych ilościowych takich jak cena waloru oraz wolumen transakcji. Mówimy
37
wtedy o analizie technicznej. Nazywana ona jest inaczej analizą wykresów i
opiera się na trzech założeniach [Murphy 1999]:
1. rynek dyskontuje wszystko – cena uwzględnia wszystkie dostępne
informacje dotyczące danego papieru wartościowego, jego emitenta,
sytuację mikro i makroekonomiczną oraz uwarunkowania gospodarcze
i polityczne;
2. ceny podlegają trendom – ceny znajdują się w określonych trendach
(wzrostowym, spadkowym, horyzontalnym) i będą tym trendom
podlegać,
dopóki
nie
nastąpią
wyraźne
sygnały
oznajmujące
odwrócenie tego trendu;
3. historia się powtarza – analiza techniczna zajmuje się badaniem
przyszłości, w oparciu o badanie przeszłości.
Do narzędzi analizy technicznej należą wskaźniki, formacje jak i mniej
naukowe metody jak teoria fal Elliota [Frost 1995] oraz obserwacje księżyca
[Bernstein 2000].
Inne podejście bierze pod uwagę informacje dotyczące aktualnego
stanu spółki akcyjnej jak na przykład jej dochody, przepływy finansowe oraz
stan otoczenia, w jakim firma prosperuje. W przypadku walorów
niezwiązanych z jedną konkretną instytucją jak na przykład indeksy giełdowe
lub notowania rynków walutowych pod uwagę brane są czynniki takie jak
polityka
fiskalna
i
monetarna,
zdarzenia
polityczne,
sytuacja
w
poszczególnych branżach. Analiza taka nazywana jest analizą fundamentalną
[Ritchie 1997].
Wiele systemów agendowych czerpie dane tak z analizy technicznych
jak i analizy fundamentalnej [Lipiński 2005]. Często używanymi wskaźnikami
analizy fundamentalne są C/Z (cena/zysk ang. P/E Price Earnings Ratio),
C/WK (cena/wartość księgowa ang. Price/BookValue) oraz C/EBIT (ang.
Earnings Before Interest and Tax).
38
3.2 Idea hybrydowego systemu wspomagającego decyzje
Zaprezentowany w pracy system wspomagania decyzji ma celu pomoc
użytkownikowi, działającemu na rynku papierów wartościowych, w podjęciu
decyzji inwestycyjnej, która w przyszłości skutkowałby mogła osiągnięciem
zysków większych niż inwestycja wolna od ryzyka (na przykład lokata
bankowa). Do tego celu zostanie wybrana pierwsza z prezentowanych metod
podejmowania decyzji, analiza techniczna.
Czysto techniczne podejście jest często krytykowane jest w środowisku
inwestorów giełdowych. Uważa się, że sama analiza techniczna może
pominąć informacje, która bezsprzecznie świadczyć będzie za kupnem lub
sprzedażą waloru. Pomijając słuszność tego argumentu należy mieć na uwadze
to, że dostęp do takiej informacji może mieć niewiele osób. Ponadto jeszcze
mniej osób ma wystarczającą wiedzę, aby tę decyzje dobrze zinterpretować.
Kontrargumentem jest jedna z zasad analizy technicznej, która mówi o tym że
rynek dyskontuje wszelką dostępną informację. Dodatkową zaletą podejścia
technicznego jest to, że informacja w większości jest tak samo przez
wszystkich interpretowana.
Zamysłem podczas projektowania systemu, było, iż miałby on być
częścią większego systemu agendowego, który mógłby uwzględniać inne
metody podejmowania decyzji tak fundamentalnych jak i technicznych.
Przykłady i konstrukcje takich systemów można znaleźć w pracy [Korczak
2007].
Moduł H-Adviser bazowałby tylko na cenach walorów i na tej
podstawie generował decyzję inwestycyjne. Nazwa modułu bierze się ze
słowa hybrydowy (h od hybrid) gdyż do podjęcia decyzji będzie wykorzystana
w pierwszej kolejności teoria falek do redukcji wymiarów oraz gaz neuronowy
do klasteryzacji wektorów. Dodatkowo decyzja jest interpretowana zgodnie z
teorią zbiorów rozmytych.
Wynikiem działania systemu po przetworzeniu danych wejściowych
będzie ostra decyzja wskazująca na potencjalny wzrost lub spadek notowań
39
albo brak wystarczających przesłanek o jednoznacznym zaklasyfikowaniu
wprowadzonego wektora. Skonstruowanie jednak takiego komunikatu dla
użytkownika wymaga sformalizowania pojęcia decyzji inwestycyjnej.
3.3 Formalizacja decyzji inwestycyjnej
Pojęcie
decyzji
finansowej
na
rynku
kapitałowym
można
sformalizować niezależnie od wybranej strategii na wiele różnych sposobów.
W niniejszej pracy zaproponowano dwupoziomowy model podjęcia decyzji
bazujący na dwóch poniższych definicjach. Definicje są modyfikacjami
adekwatnymi do założeń systemu definicji zaprezentowanych w [Lipiński
2005]. W obydwu definicjach W oznacza aktualną wiedzę o danych walorze.
Definicja 3.1:
Decyzja inwestycyjna jest funkcją f : W → y ∈ −1,1 , która przypisuje wiedzę
W do liczby y należącą do przedziału −1,1 . Wartość -1 oznacza potencjalny
spadek a 1 wzrost. Wartości pośrednie oznaczając stopień przynależności do
danej decyzji.
Definicja 3.2:
Decyzja
inwestycyjna
jest
funkcją
f : W n → ( k , s ) ∈ −1,1
n
która
przyporządkowuje wiedzę z n następujących po sobie obserwacji do pary (k,s),
gdzie k oznacza liczbę decyzji kupna a s oznacza ilość decyzje sprzedaży w n
okresach.
Definicja 3.2 dla jednej obserwacji jest równoważna definicji 3.1.
Jednakże czasami może zajść potrzeba weryfikacji sygnału lub zaniechaniu
decyzji, gdy informacje sprzeczne pojawiają się po sobie. Zmniejsza ono
ryzyko inwestycji aczkolwiek należy mieć na uwadze, iż takie podejście po
pierwsze uniemożliwi „kupno w dołku” i „sprzedaż na szczycie” i po drugie
może, zmniejszając liczbę decyzji, usunąć tę właściwą.
40
3.4 Budowa systemu wspomagania decyzji.
Na tym etapie, zaprojektowany system jest jednostanowiskową
aplikacją działającą na platformie .NET i zaimplementowaną w C#. Ponieważ
założeniem, że użytkownikiem programu jest użytkownik dysponujący
standardowym komputerem domowym na program nałożono pewne
ograniczenia. Musi on uruchamiać się na komputerze uruchomionym w
system MS Windows w środowisku graficznym. Najważniejszym i
najtrudniejszym do realizacji ograniczeniem jest czas klasteryzacji. Analiza
skuteczna będzie wtedy i tylko wtedy, gdy przy danych tikowych
nadchodzących z częstotliwością, co kilku sekund system musi podejmować
decyzje, co najmniej w takim właśnie czasie. Jednym z rozwiązań tego
problemu jest redukcja przestrzeni wektora wejściowego. W niniejszej pracy
do tego celu została zastosowana dyskretna transformacja falkowa. Ponadto
ilość iteracji została ustawiona na poziomie najniższym możliwym poziomie.
Interfejs użytkownika został zminimalizowany do minimum. Po
pierwsze, dlatego aby aplikacja działała efektywniej a po drugie, aby jak
najbardziej uprościć proces wspomagania decyzji. Diagram przypadków
użycia dla aplikacji H-Adviser przedstawia rysunek 7.
Rysunek 6. Diagram przypadków użycia H-Adviser
Źródło: opracowania własne
41
Działanie systemu można podzielić na dwa moduły. Pierwszy zbierania
danych ma na celu pobranie odpowiedniej ilości danych z serwera
dystrybuującego strumienie danych. W tej fazie tworzone są wektory i
odkładane w pomięci podręcznej. Gdy ich liczba osiągnie odpowiednią
wartość wysyłane są one do klasteryzacji. Za to odpowiedzialny jest drugi
moduł klasteryzacji.
Działanie modułu zbierania danych można przedstawić za pomocą
następujących kroków:
Pobieranie danych – algorytm:
1:
Zainicjalizuj wartości początkowe.
2:
Oczekuj na sygnały.
3:
Po otrzymaniu odpowiedniej liczby sygnałów utwórz wektor
wejściowy.
4:
Przekształć
wektor
wejściowy
według
reguł
opisanych
w
rozdziale pierwszym.
5:
Odłóż wektor wejściowy na stosie.
6:
Gdy liczba wektorów osiągnie założoną ilość prześlij je
do
modułu
klasteryzującego,
po
czym
usuń
ze
stosu
najstarszy wektor i wróć do punktu drugiego. W przeciwnym
przypadku wróć do punktu drugiego.
7:
Gdy liczba wektorów osiągnie założoną ilość prześlij je
do
modułu
klasteryzującego,
po
czym
usuń
ze
stosu
najstarszy wektor i wróć do punktu drugiego.
Algorytm działa aż do momentu, kiedy interakcja użytkownika wyśle
komunikat przerywający kolekcjonowanie danych. Tak przygotowany stos
wektorów kodowych jest gotowy, aby poddać je klasteryzacji, za co
odpowiedzialnych jest drugi moduł systemu. Działanie tego modułu można
natomiast opisać następująco:
42
Przygotowanie wektorów do klasteryzacji – algorytm:
1:
Oczekuj na wektory wejściowe.
2:
Gdy otrzymasz wektory wejściowe zainicjuj algorytm gazu
neuronowego.
3:
Dokonaj kwantyzacji przestrzeni.
4:
Wróć do punktu pierwszego.
Algorytm działa aż do momentu, kiedy interakcja użytkownika wyśle
komunikat przerywający. Stos wektorów po przekazaniu do modułu
klasteryzującego jest w pełni wystarczający do dokonania kwantyzacji
przestrzeni cech, z której później będziemy czerpać wiedzę do budowania
decyzji inwestycyjnych.
3.5 Wartości początkowe systemu
Opis wszystkich parametrów wraz z opisem systemu jest zamieszczony
w dodatku C. Tutaj zamieszczona zostaną jedynie wartości domyślne, dla
których zostały przeprowadzone symulacje. Przedstawia je tabela 1. Należy
zauważyć, iż wartości domyślne nie oznaczają optymalne. Kombinacja
wszystkich możliwych ustawień jest nieskończona ponadto dla każdego
szeregu czasowe mogą się one różnić.
Tabela 1. Domyślne zestawienie parametrów H-Adviser.
Nazwa parametru
Wartość
Falkowa redukcja wymiarów
Stopień kompresji falkowej
4
Ilość podciągów poddanych kompresji
3
Długość podciągów
8,16,32
Długość wektora przed kompresją
56
Długość wektora po kompresji
14
Funkcja tworząca zbioru rozmytego klasyfikacji a priori
43
Parametr α funkcji tanh(αx)
Poziom akceptacji wektorów
Kupno
Sprzedaż
Gaz neuronowy
Początkowy współczynnik sąsiedztwa
Końcowy współczynnik sąsiedztwa
Początkowy współczynnik uczący
Końcowy współczynnik sąsiedztwa
Ilość iteracji
Promień decyzji kupna
Promień decyzji sprzedaży
Ilość neuronów
Dopuszczalna odległość wektora od klastra
Ilość wektorów uczących
1
0,06
-0,06
3
0,01
1,5
0,005
15000
0,04
-0,04
6
10
15
Źródło: opracowanie własne.
Ustawienia
zostały
tak
dobrane,
aby
spełnić
ograniczenia
przedstawione w poprzednim podrozdziale oraz dać dobre rezultaty podczas
klasteryzacji wektorów.
44
ROZDZIAŁ 4
ANALIZA SKUTECZNOŚCI SYSEMU H-ADVISER
4.1 Metodyka analizy skuteczności
4.2 Wybór danych do systemu
4.3 Symulacja zastosowania systemu H-adviser
4.4 Dyskusja wyników
W niniejszym rozdziale zostanie przedstawiony model weryfikacji
skuteczności systemu wspomagającego decyzje H-Adviser. Zostanie także
wykonana sama weryfikacja systemu. Tutaj także zostaną zaprezentowane
kryteria wyboru danych do systemu, na których przeprowadzona będzie
symulacja.
4.1 Metodyka analizy skuteczności
Istnieje
wiele
podejść
do
analizy
skuteczności
systemów
transakcyjnych. Jednakże w warunkach rzeczywistych, inwestorzy na rynkach
kapitałowych, są zainteresowani tylko i wyłącznie jednych wskaźnikiem –
zyskownością. Można uznać, że system jest skuteczny, gdy wartość ta jest
większa od zera oraz że jest nieskuteczny w każdym innym razie. Spojrzenie
na stopę zwrotu jest najprostszą metodą analizy skuteczności aczkolwiek jest
45
to podejście niewystarczające. Po pierwsze załóżmy, że inwestor działa na
runku bardzo dynamicznie zwyżkującym. Uzyskanie wtedy wartości większej
od zera będzie niewystarczające. Wypracowanie kilku procentowego zysku w
sytuacji, gdy rynek wzrósł dziesięciokrotnie więcej nie można uważać za
sukces. Drugim przypadkiem jest wypracowanie zysku mniejszego niż stopa
zwrotu wolna od ryzyka. W takim przypadku inwestowanie w ogóle nie ma
sensu. Żaden inwestor nie byłby zainteresowany lokowaniem pieniędzy na
rynkach kapitałowych, kiedy zyski z tych operacji byłyby mniejsze od zwykłej
lokaty bankowej. Ryzyko wynikające z wahania cen papierów wartościowych
jest nie warte podejmowania, gdy oczekiwana stopa zwrotu jest mniejsza niż
stopa zwrotu z inwestycji niepodlegających częstym zmianom.
Dlatego też badając skuteczność systemu wspomagania decyzji będzie
brany pod uwagę zysk, ale w odniesieniu do strategii „kup i trzymaj oraz stopy
zwrotu z inwestycji wolnej od ryzyka takiej jak lokata bankowa.
Strategia „kup i trzymaj” polega na otwarciu pozycji na początku
założonego okresu i zamknięciu jej na jego końcu. Jest to bardzo często
używana strategia przez inwestorów długo terminowych i jest klasyczną
strategią podążania za trendem. Jest to także najczęściej polecana strategia
przez zwolenników teorii błądzenia losowego rynków finansowych. Podczas
podejmowania decyzji przy strategii „kup i trzymaj” jest wykonywana tylko
jedna transakcja w ciągu dnia. W niniejszej pracy każda transakcja jest
pozycją długą. W analizowanych danych dominuje trend wzrostowy i
zajmowanie pozycji krótkiej jest dużo mniej efektywne.
Wszystkie symulacje wykonywane są na danych dziennych tikowych z
zagregowanymi do jednej minuty. System weryfikujący decyzje inwestycyjne
działa zgodnie z założeniami inwestowania dziennego (ang. day trading).
Strategie takie charakteryzują poniższe założenia:
• każdy dzień rozpoczynamy z pustym portfelem walorów (posiadamy
tylko środki pieniężne),
46
• wszystkie pozycje zamykamy przed zakończeniem dnia; jeśli
pozostały jakieś walory na koniec sesji to automatycznie realizowane
jest zlecenie PKC (po każdej cenie) na zamknięcie.
Wyniki
są
prezentowane
w
procentowych
wartość
bezwzględnych.
Przykładowo wskaźnik 102,4% oznacza, że na koniec dnia wartość portfela
wynosiła 102,4% wartość środków pieniężnych na początku dnia. Stopa
zwrotu z transakcji wynosi 2,4%. We wszystkich transakcja brana będzie pod
uwagę prowizja ustalona przez użytkownika.
4.2 Wybór danych do systemu
Wszystkie dane do systemu są rzeczywistymi danymi archiwalnymi
pobranymi z serwisu www.parkiet.com.pl4. Pliki, które rozpoznaje HAdviser są aplikacji tekstowymi o następującej strukturze (przedstawiony
został nagłówek wraz z kilkoma przykładowymi wierszami):
<ticker>,<per>,<date>,<time>,<open>,<high>,<low>,<close>,<vol>
WIG20_I,1,20030220,100100,1106.53,1106.53,1106.53,1106.53,0
WIG20_I,1,20030220,100200,1107.23,1107.34,1107.23,1107.34,0
WIG20_I,1,20030220,100300,1107.93,1107.93,1107.93,1107.93,0
WIG20_I,1,20030220,100400,1108.30,1108.30,1108.30,1108.30,0
WIG20_I,1,20030220,100500,1108.05,1108.90,1108.05,1108.90,0
WIG20_I,1,20030220,100600,1109.33,1109.91,1109.33,1109.91,0
WIG20_I,1,20030220,100700,1110.50,1110.50,1110.50,1110.50,0
WIG20_I,1,20030220,100800,1110.50,1110.50,1110.17,1110.17,0
WIG20_I,1,20030220,100900,1110.08,1110.08,1109.40,1109.40,0
WIG20_I,1,20030220,101000,1108.88,1108.88,1108.47,1108.47,0
Pierwsza kolumna <ticker> oznacza nazwę waloru, w tym przypadku indeks
WIG 20. Kolumna <date> określa datę nadejścia tiku w formacie rrrr-mm-dd,
natomiast kolumna <time> określa czas w formacie hhmmss. Kolejne cztery
kolumny określają odpowiednio cenę otwarcia, najwyższą i najwyższą w
okresie agregacji czasowej oraz cenę zamknięcia. W przypadku minutowych
danych tikowych wszystkie te wartości są równe. Ostatnia kolumna oznacza
4
link bezpośredni: http://www.parkiet.com/dane/dane.jsp
47
wolumen
transakcji.
W
danych
udostępnionych
przez
serwis
www.parkiet.com.pl wartość ta zawsze jest równa 0.
Analiza skuteczności została przeprowadzona na podstawie indeksu
WIG20. Kontrakty terminowe na WIG 20 są najpłynniejszym walorem
notowanym na Giełdzie Papierów Wartościowych w Warszawie. Dane
pochodzą z pięciu lat (od 2003-02-20 do 2007-03-22). Do analizy wybrano
wszystkie notowania dzienne, które spełniły dwa warunki:
1. odchylenie standardowe wynosiło więcej niż 11,
2. różnica pomiędzy ceną najwyższą a najniższą wynosiła więcej niż 60.
Kryteria te dodano, aby wyeliminować szeregi czasowe poruszające się w
trendzie bocznym. Uwzględnienie danych o dużej wariancji i dużej
amplitudzie zmian pozwoli wybrać te szeregi, w których ruchy cen są istotne i
pozwolą osiągnąć zauważalne zyski przy poprawnej interpretacji wzorców jak
i zauważalne straty przy błędnych decyzjach,
4.3 Symulacja zastosowania systemu H-adviser
W przeprowadzonej symulacji, zastosowania systemu wspomagania
decyzji H-Adviser, wykorzystano 128 szeregów czasowych, które spełniały
warunki wymienione w poprzednim podrozdziale. Decyzja inwestycyjna była
podejmowana przez program zgodnie z definicją 3.2 przedstawioną w
poprzednim rozdziale dla pięciu okresów. System wymagał podwójnego
potwierdzenia sygnału kupna w okresie pięciu decyzji. Algorytm podjęcia
decyzji można opisać w pseudo kodzie w następujący sposób:
Podjęcie decyzji - algorytm
1:
Utwórz pięcioelementową tablicę decyzji D
2:
Jeśli prognoza jest wzrost to dodaj do tablicy D ‘+’
w przeciwnym razie dodaj D ‘-‘
3:
Jeśli ilość elementów w tablicy D jest większe niż 5
usuń pierwszy element
48
4:
Jeśli ilość ‘+’ w tablicy D wynosi 3 otwórz długą
pozycję
5:
Jeśli ilość ‘-‘ w tablicy D wynosi 3 otwórz krótką
pozycję
Algorytm działa aż do momentu, kiedy interakcja użytkownika wyśle
komunikat przerywający. Wraz z każdą otwartą pozycją została ustawiana
wartość stop-loss i stop-gain na poziomie 5% w stosunku do ceny otwarcia
pozycji. Jest to bardzo duża wartość dla kontraktów terminowych jednakże
ustawienie jej na takim poziomie bardziej rygorystycznie pozwoli ocenić
działanie algorytmu wyszukiwania wzorców. W rzeczywistości można te
wartości zmniejszyć. Obserwując wyniki umieszczone w dodatku C
ustawienie poziomu stop-loss na wysokości 2% poprawiłoby wyniki
ostateczne
(zwiększyłoby
stopę
zwrotu).
Celem
badania
jednak
maksymalizacja zysków była celem pośrednim. Głównym celem była
weryfikacja hipotezy postawionej we wstępie, iż istnieją wzorce w szeregach
czasowych i ich wykrycie pozwoli osiągnąć ponadprzeciętne zyski.
Jedyna możliwość zamknięcia pozycji to osiągnięcie któregoś z tych
poziomów.
Otwarcie każdego kontraktu terminowego pociąga za sobą naliczenie
prowizji. Zgodnie z cennikiem domu maklerskiego bossa.pl5 koszt otwarcia
jednego kontraktu wynosi 9.90 pln. Taka też wartość jest odejmowana
każdorazowo przy otwieraniu nowej pozycji.
W dodatku C zestawiono wszystkie 128 szeregów czasowych użytych
do analizy skuteczności systemu wraz z odniesieniem do strategii „kup i
trzymaj”. Szeregi są wybrane zgodnie z kryteriami umieszczonymi w
podrozdziale 4.2 niniejszego rozdziału. Dodatkowo zamieszczono dwie
kolumny z opisem statystycznym szeregu. Maksymalna amplituda określa
rozpiętość pomiędzy minimum i maksimum szeregu w danym dniu. Idea
5
http://bossa.pl/oferta/internet/kontrakty/#prowizje
49
wybrania tych dwóch wartości do opisu szeregu czasowego została
umieszczona również w podrozdziale 4.2 niniejszego rozdziału.
4.4 Dyskusja wyników
Podsumowując w całym okresie strategia „kup i trzymaj” przyniosła
3,97% zysku natomiast konsekwentne podążanie za decyzjami systemu
wspomagającego decyzje H-Adviser wyniosło 31,05%. Kumulatywny
przyrost stóp zwroty został przestawiony na rysunku 7. Używając żargonu
giełdowego stopy zwrotu ze strategii kup i trzymaj są w trendzie bocznym,
natomiast przy podążaniu za decyzjami hybrydowego systemu wspomagania
decyzji H-Adviser są w trendzie wzrostowym. Ponadto przy korzystaniu ze
strategii kup i trzymaj wielokrotnie następował spadek kapitału poniżej
wartości początkowej.
40%
35%
30%
25%
20%
15%
10%
5%
0%
-5%
-10%
Kup i trzymaj
H-Adviser
Rysunek 7 Porównanie stop zwrotu
Źródlo: Opracowanie własne przy pomocy program MS Excel
W porównaniu do inwestycji wolnej od ryzyka przy 128 dniach
inwestycyjnych żadna z dostępnych ofert istniejących na rynku nie byłaby
większa od uzyskanego wyniku 31,05%.
50
Zestawienie stosunku błędnych decyzji do poprawnych zawiera rysunek
8. Ilość poprawnych decyzji, która również jest dobrym wskaźnikiem
skuteczności rozpoznawania i poprawnej klasteryzacji wzorców kupna i
sprzedaży, do decyzji błędnych w wykonanym badaniu wynosi 55,91% przy
korzystaniu z systemu H-Adviser. Przy strategii kup i trzymaj wyniósł on
47,24%. Ten współczynnik nie jest idealny, ale można go zaakceptować
biorąc pod uwagę uzyskane stopy zwrotu. Jednakże należy mieć na uwadze, iż
wybrane szeregi czasowe charakteryzowały się dużą wariancją i maksymalna
amplitudą zmian. W sytuacji trendu bocznego przy takim stosunku decyzji
błędnych i poprawach i po uwzględnieniu prowizji jest prawie pewne, iż
przewidywana stopa zwrotu nie osiągnie oczekiwanego poziomu.
H - Adviser
40,16%
59,84%
Decyzje poprawne
Decyzje błędne
Kup i trzymaj
47,24%
52,76%
Rysunek 8 Stosunek błędnych decyzji do poprawnych
Źródło: Opracowanie własne przy pomocy programu MS Excel
51
Szczegółowa
podsumowanie
skuteczności
systemu
wraz
z
możliwościami jego zastosowania oraz dalszym rozbudowaniem zostanie
przedstawiona w kolejnym rozdziale.
52
ZAKOŃCZENIE
W
niniejszej
pracy
przedstawiono
hybrydowe
podejście
do
wyszukiwania wzorców kupna i sprzedaży w finansowych szeregach
czasowych.
Przedstawiono falkowe
podejście do problemu
redukcji
wymiarów wektora wejściowego. Przynależność do danego wzorca opisano za
pomocą teorii zbiorów rozmytych natomiast sama klasteryzacja została
wykonana za pomocą sieci neuronowej – samoorganizującej się struktury
opartej na algorytmie gazu neuronowego.
W przeciwieństwie do metod analitycznych, w których stopień
przynależności do wzorca jest określony z góry założonymi zasadami,
zastosowano podejście, takie, że to sam system ma wydobyć tę wiedzę z
danych prezentowanych systemowi w procesie uczenia. Taki sposób pozwala
na dynamiczne przekształcanie modelu ekspertyzy i jego adaptacje do różnych
sytuacji mogących zaistnieć na rynku. Pozwala również lepiej dopasować się
systemowi do specyficznych charakterystyk różnych walorów.
Wydajna klasteryzacja, czyli taka, która mogłaby być przeprowadzona
w akceptowalnym przez użytkownika czasie oraz generująca zadowalające
efekty liczone w ilości dobrych decyzji inwestycyjnych, była możliwa dzięki
zastosowaniu w systemie między innymi teorii falek. Dzięki niej dane
pochodzące z rynków inwestycyjnych mogły zostać na tyle uproszczone, że
była możliwa taka ekstrakcja wiedzy w akceptowalnym czasie. Zastosowanie
53
transformacji falkowej umożliwiło bardzo dużą redukcje
złożoności
wprowadzonych danych jednakże beż starty informacji (w sensie Shanon’a).
Bardzo ważnym i trudnym ograniczeniem systemu postawionym w
pracy
było,
aby
decyzje
przez
niego
podejmowane
mogły
być
wykorzystywana w czasie rzeczywistym na przeciętnym komputerze
domowym. Dzięki wykorzystanym algorytmom udało się ten cel osiągnąć.
Cała wstępna analiza danych, optymalizacja, uczenie oraz ekstrakcja wiedzy
przy domyślnych ustawieniach systemu może być zastosowana do
analizowania finansowych strumieni danych w czasie rzeczywistym po
agregacji sygnałów do okresów dwu sekundowych (cały proces od uzyskaniu
sygnału do podjęcia decyzji zajmuje systemowi 1.63s.6).
System był projektowany, aby stał się pomocnym narzędziem dla
inwestorów giełdowych i wspomóc ich proces podejmowania decyzji. We
wstępie pracy postawiono hipotezy, iż finansowe szeregi czasowe zawierają
wzorce, których odnalezienie – o ile istnieją, mogłoby skutkować w decyzjach
inwestycyjnych, które prowadziłyby do osiągnięcia ponad przeciętnych
zysków.
Podczas
badania
analizie
poddano
1026
dziennych
szeregów
czasowych zagregowanych do jednej minuty z okresu ponad 5 lat (od 200302-20 do 2007-03-22). Z tej liczby wybrano 127 szeregi, które posiadały duże
odchylenie
standardowe
i
amplitudę
zmian.
Analizując
systemem
wspomagania decyzji H-Adviser wybrane dane otrzymano potwierdzenie
hipotezy postawionej wstępie w stosunku do wybranych szeregów.
Porównanie przedstawione, po wykonaniu symulacji, w poprzednim
rozdziale zysków osiągniętych podczas podążania za decyzjami systemu HAdviser w odniesieniu do strategii „kup i trzymaj” świadczą o istnieniu takich
wzorców. Ponadto świadczą one także za tym, iż systemowi udało się te
wzorce rozpoznać.
6
Na komputerze z procesorem Inter Core Duo T7250 taktowanym zegarem 2.00 GHz i wyposażonym w 1 GB
pamięci RAM
54
W porównaniu do strategii „kup i trzymaj” system osiągnął dużo
większą stopę zwrotu. Ponadto wielokrotnie udało mu się osiągnąć większe
zyski od strategii „kup i trzymaj”, nawet, gdy generowała ona zyski znacząco
większe od zera.
Dalszy rozwój algorytmów klasteryzujących oraz redukujących
wielowymiarowość przestrzeni danych, może skutkować jeszcze większym
wzrostem skuteczności systemu, rozumianej, jako lepszego dopasowania
skawntyzowanej przestrzeni cech do rzeczywistych charakterystyk szeregów
czasowych. Cel taki może być osiągnięty na przykład poprzez zwiększenie
ilości iteracji procesu uczenia oraz wykonania bardziej wnikliwej wstępnej
analizy danych. Osiągnąć to można albo poprzez wykorzystanie algorytmów o
mniejszej
złożoności
obliczeniowej
albo
też
zwiększeniem
mocy
obliczeniowej komputerów, na których klasteryzacja będzie przeprowadzana.
W tej chwili system nie analizuje podobieństw pomiędzy szeregami
wprowadzonymi do systemu, a tymi, w których decyzje inwestycyjne były
błędne. Jak pokazano w pracy system może nie generować zadawalających
stóp zwrotu przy silnym trendzie bocznym i małej wariancji szeregów
czasowych. Rozbudowując moduł wstępnej analizy danych o dodatkowe
narzędzia analityczne, które mogą być oparte tak na algorytmach sztucznej
inteligencji (na przykład algorytmów ewolucyjnych, lub też dedykowanych
sieci neuronowych) jak i statystycznych, można by dokładniej weryfikować
przydatność wektora wejściowego w procesie klasteryzacji. Dodatkowo
zwiększenie efektywności można by uzyskać poprzez wnikliwszą analizę
częstotliwości szeregów czasowych i dopasowanie do niej stopnia kompresji
falkowej.
Ponadto należy zauważyć, że skuteczność metody została potwierdzona
w stosunku do strategii „kup i trzymaj”. Bardzo ciekawe wyniki mogłyby
dostarczyć porównanie strategii innych systemów w stosunku do programu
wspomagania decyzji H-Adviser.
55
Należy jeszcze podkreślić, że oprogramowanie obsługujące system w
formie, w jakiej został on zaprezentowany w pracy, posiada interfejs
użytkownika, który jest nieprzyjazny dla użytkownika. Wynika to, iż jest ono
w pełni konfigurowalne. Każdy aspekt budowy systemu, każdy wskaźnik i
parametr można ustawić w głównej formatce programu. Ilość parametrów i
ich współzależności, jak i samo zrozumienie działania każdego parametru, jest
niepotrzebnym obciążeniem dla potencjalnego użytkownika. Aby umożliwić
realną przydatność programu H-Adviser należałoby zbudować interfejs
graficzny, który będzie zorientowany na użytkownika a jego wiedza o
parametrach potrzebnych do działania systemu będzie bardzo powierzchna.
Interfejs zaproponowany w niniejszej pracy przez autora jednakże miał
umożliwić pełną konfigurowalność algorytmów z poziomu aplikacji a nie z
poziomu kodu. Celem programu było zweryfikowanie hipotez zawartych we
wstępie, co wymagało dostępu do wszystkich parametrów algorytmów – tak
tych kluczowych jak i tych, które można by pominąć w wersji skierowanej do
końcowego użytkownika.
W dalszych pracach nad systemem można by także rozważyć
utworzenie modułu, którego celem było by dynamiczne, podczas klasteryzacji
on-line, ustalanie optymalnych wartości parametrów. Efektem byłaby większa
elastyczność systemu, która pozwoliłaby mu się automatycznie dostrajać do
warunków aktualnie panującym na różnych rynkach. Rezultat taki może być
osiągnięty za pomocą algorytmów genetycznych gdzie funkcją błędu była by
stopa zwrotu.
Struktura i metoda działania systemu umożliwia, po pewnych
modyfikacjach,
skierowanie
go
tak
do
przeciętnego
użytkownika
zainteresowanego inwestycjami na rynkach finansowych jak i może również
działać, jako część systemu agendowego wspomnianego w treści pracy
[Korczak 2007]. System jest zaimplementowany dla platformy .NET. Bez
większych nakładów pracy może być dzięki temu przeniesiony na serwery
56
ASP.NET, i pracować, jako samodzielna aplikacja on-line w dowolnej
przeglądarce www za pomocą protokołu http.
Podsumowując badanie zawarte w niniejszej pracy można przyjąć
hipotezę przyjętą na początku pracy, iż w szeregach czasowych, na których
przeprowadzono badanie, istnieją wzorce poprzedzające wzrosty i spadki
wartości szeregu za prawdziwą. Dodatkowo systemowi wspomagania decyzji
H-Adviser udało się te wzorce odnaleźć w akceptowalnym czasie i uzyskać
ponad przeciętne zyski na Warszawskiej Giełdzie Papierów Wartościowych
analizując kontrakty terminowe na indeks WIG 20. Należy jeszcze raz
podkreślić, że badanie jedynie ukazało istnienie takich wzorców w dziennych
notowaniach WIG20 o dużej wariancji i amplitudzie zmian. Pełna weryfikacja
hipotezy zawartej we wstępie wymaga dalszych prób na znacznie bogatszym
materiale empirycznym.
57
DODATEK A
TEORIA FALEK
Dyskretna transformacja falkowa [Meyer 1995] jest bardzo częstą
techniką wykorzystywaną we wstępnej analizie danych dzięki bezstratnej
(teoretycznie) i bardzo szybkiej kompresji obiektów (obrazów, szeregów
liczbowych). Dzięki niej można zarówno zredukować ilość wymiarów
wektora wejściowego do docelowego systemu analizującego dane (np.
klasyfikującego, predykcyjnego) jak i usunąć część informacji uznanych przez
transformacje, jako szum lub redundancje danych, jednakże pozostawiając w
sygnale informacje oryginalne (w sensie Shanona) [Shanon 1948].
A.1 Przestrzeń funkcyjna L2 (ℜ )
Sygnał lub funkcja f (t ) w większości przypadków może być lepiej
zanalizowana, opisana i przetworzona, gdy wyrazimy ją, jako liniową
kombinację postaci:
f (t ) = ∑ aψ (t )
Wyś
gdzie l ∈ Z i oznacza indeks sumy (skończony lub nieskończony), a ∈ ℜ ,
natomiast ψ jest zbiorem funkcji rzeczywistych. Jeśli powyższy rozkład jest
jednoznaczny wtedy zbiór funkcji ψ t nazywamy bazą przestrzeni funkcyjnej
58
(przestrzeń liniowa gdzie zamiast wektorów mamy funkcje, natomiast
skalarami są liczby rzeczywiste albo zespolone). Jeśli iloczyn skalarny
wszystkich funkcji ψ jest równy zero wtedy bazę tą nazywamy ortogonalną,
a zapisujemy:
ψ k (t ),ψ (t ) = ∫ψ k (t ) ⋅ψ (t )dt = 0, ∀ k ≠ k ,∈Z
Wyś
Pozwala nam to wyznaczyć współczynniki a za pomocą iloczynu
skalarnego w następujący sposób:
a = f (t ),ψ (t ) = ∫ f (t ) ⋅ψ (t )dt
Wyś
Tak skonstruowaną przestrzeń rozpiętą na funkcjach ψ k nazywamy
przestrzenią Hilberta
L2 (ℜ )
lub przestrzenią funkcji całkowalnych z
kwadratem7. Podsumowując funkcja zmiennej rzeczywistej f (t ) przynależy
do przestrzeni L2 (ℜ ) wtedy i tylko wtedy, gdy f (t ) jest całkowalne, to
2
znaczy, jeśli:
∫ f (t )
2
dt < ∞
Wyś
t∈ℜ
Jej iloczyn skalarny określamy zgodnie z równaniem
(16),
natomiast normę
definiujemy jako:
f =
f, f =
∫ f (t )
2
dt
Wyś
t∈ℜ
Zapisujemy to krócej f (t ) ∈ L2 .
A.2 Definicja falki
Falkę definiujemy [Daubechies 1992] jako funkcje rzeczywistą
ψ (u ) ∈ L2 (ℜ ) jeśli spełnione są następujące warunki:
7
„L” oznacza całkę Lebesgue’a, „2” określa kwadrat modułu funkcji,
funkcji
ℜ wskazuje na rzeczywiste parametry
59
∞
∫ψ (u )du = 1
2
Wyś
−∞
∞
∫ψ (u )du = 0
Wyś
−∞
Rysunek 9 Wykresy trzech przykładowych falek
Źródło: [Percival 1]
Transformatą falkową będziemy nazywać grupę funkcji ψ a.b , taką, że:
t −b
dt
 a 
ψ a ,b (t ) = w(a ) ⋅ψ 
Wyś
Gdzie a i b są parametrami skalującymi natomiast w(a) jest funkcją ważącą
zapewniającą, że energia falki nie zmienia się ze zmianą skali, czyli
ψ a ,b = ψ = a ∈ ℜ + . W większości przypadków za w(a) kładziemy a −1 / 2 .
Wtedy transformata flakowa przybiera postać:
ψ a ,b (t ) =
Jednakże formuła
(23)
1
a
t −b
dt
 a 
ψ
Wyś
jest właściwa jedynie dla sygnałów ciągłych. W
niniejszej pracy sygnał wejściowy ma charakter dyskretny. Aby umożliwić
zastosowanie powyższej transformaty należy dokonać próbkowania sygnału
wejściowego. Osiągniemy to stosując dyskretyzację logarytmiczną skali a i
uzależnimy ją od wielkości kroku pomiędzy odległościami od kolejnych
parametrów b. Taka dyskretna transformata falkowa ma postać:
60
ψ m ,n (t ) =
 t − nb0 a 0m
⋅ 
m
a 0m  a 0




1
Wyś
Dobór parametrów a0 i b0 ma kluczowe znaczenie, aby funkcje ψ a ,b
utworzyły bazę ortogonalną w L2 . Najpopularniejszym wyborem tych
parametrów jest odpowiednio przyporządkowanie im wartości liczbowych 2 i
1. Mówimy wtedy o próbkowaniu diadycznym. Falka
(24)
przyjmuje wtedy
postać:



Wyś
ψ m ,n (t ) = 2 − m / 2 ⋅ψ (2 − m t − n )
Wyś
ψ m ,n (t ) =
 t − n ⋅ 2m
⋅ 
m
2m  2
1
co po uproszczeniu daje nam:
Ponieważ falka podstawowa ma postać:
ψ m ,0 (t ) = 2 − m / 2 ⋅ψ (2 − m t )
Wyś
ψ m ,n (t ) = ψ m ,0 ⋅ψ (t − 2 − m )
Wyś
więc
co oznacza, że 2 m jest krokiem, z jakim przesuwane są w czasie falki ψ m.n na
poziomie skali m. Natomiast kolejne potęgi dwójki wyznaczają próbkowanie
na osi skali. Ponadto zbiór falek opisanej wzorami
(25)-(28)
są ortogonalne
względem siebie:
∞
1
∫ψ (t ) ⋅ψ (t )dt = 0
m ,n
m ', n '
−∞
⇔ m = m '∧ n = n '
⇔ m ≠ m '∧ n ≠ n '
Wyś
A.3 Analiza wielorozdzielcza
Rozkład sygnału wejściowego nosi nazwę analizy wielorozdzielczej
[Mallat 1989]. Sygnał
f (t ) ∈ L2
rozkładany jest na składowe, które
lokalizowane są w podprzestrzeniach rozpiętych na odpowiednich funkcjach
skalujących. Funkcja skalująca ma taką samą postać jak falka (porównaj ze
wzorem (27)):
61
φ m ,n (t ) = 2 − m / 2 ⋅ φ (2 − m t − n )
Wyś
Jednakże w przeciwieństwie do falki jej całka wynosi 1 (całka falki
zgodnie z założeniem (21) wynosi 0):
∞
∞
−∞
−∞
∫ φ0,0 (t )dt = ∫ φ (t ) = 1
Wyś
Podprzestrzenie takie definiujemy następująco (przestrzeń z bazą
ortogonalną daną funkcją skalującą
{ (
(30)):
)}
Vm = Span φ n 2 −m t = Span{φ m ,n (t )}
n
Wyś
n
Największą rozdzielczość wiążemy z przestrzenią L2 .
Schematycznie
ilustruje
zagnieżdżenie
podprzestrzeni.
Przestrzenie
rozpinane na odpowiednich funkcjach spełniają poniższe warunki:
{0} ⊂ … ⊂ V− 2 ⊂ V−1 ⊂ V0 ⊂ V1 ⊂ V2 ⊂ … ⊂ L2
lub indukcyjnie:
∀ (Vm ⊂ Vm +1 )
Wyś
j∈Z
przy czym:
∪V
m
= L2 oraz
m∈Z
∩V
m
= {0}
m∈Z
Rysunek 10 Schematyczne zagnieżdżenie podprzestrzeni
funkcjach falkowych
Źródło: [Burrus 2001]
L2 rozpinanych na
62
Ponadto spełnione muszą być jeszcze warunki:
f (t ) ∈ Vm ⇔ f (2 m t ) ∈ V0
Wyś
co oznacza, że wszystkie przestrzenie Vm są przeskalowanymi odmianami
przestrzeni V0 . Następnym warunkiem jest niezmienniczość przestrzeni Vm
względem przesunięć całkowitych, to znaczy:
∀ ( f (t ) ∈ V0 ⇒ f (t − n ) ∈ V0 )
Wyś
n∈Z
co uwzględniając (34), prowadzi do niezmienniczości Vm względem przesunięć
będących całkowitą wielokrotnością 2 m . Funkcja φ zawiera się w V0 oraz w
V1 , przestrzeni rozpiętej przez φ (2t ) , tak więc φ (t ) możemy zapisać w postaci
ważonej sumy przeskalowań φ (2t ) :
φ (t ) = ∑ hn 2 ⋅ φ (2t − n )
Wyś
n
gdzie hn jest ciągiem liczb rzeczywistych lub zespolonych, nazywanym
współczynnikami
funkcji
skalującej.
Przez
odpowiedni
wybór
tych
parametrów możemy znaleźć rodzinę falek optymalną dla reprezentacji danej
klasy sygnałów. Sygnał znajdujący się w przestrzeni Vm można wyrazić
wzorem:
x m (t ) =
∞
∑S
m, n
⋅ φ m.n (t )
Wyś
n = −∞
gdzie współczynniki aproksymacji S m, n wyrażone są wzorem:
∞
S m ,n =
∫ x(t ) ⋅ φ (t )dt
m,n
Wyś
−∞
Mając funkcję skalującą φ używamy ją do zdefiniowania głównej
funkcji falkowej. Zdefiniujemy przestrzeń Vm następująco:
Vm −1 = Vm ⊕ Wm
Wyś
gdzie Wm oznacza ortogonalne dopełnienie przestrzeni Vm w Vm +1 . Analogicznie
do (32) możemy ją zdefiniować:
Wm = Span{ψ m ,n }
n
Wyś
63
Możemy stwierdzić, że
W m ⊥ Wk ⇔ j ≠ k
Wyś
W m ⊂ Vk ⊥ W k ⇔ j > k
tak więc:
V1 = V0 ⊕ W0 , V2 = V0 ⊕ W0 ⊕ W1
I ogólnie
(42)
L2 = V0 ⊕ W0 ⊕ W1 ⊕ W2 ⊕ ...
Schematycznie ilustruje to rysunek 11.
Istnieją bardzo dokładne procedury znajdowania ψ mając dane φ
([Daubechies 1992] rozdział 5.1). Jedną z możliwości ([Daubechies 1992]
twierdzenie 5.1.1.), która została wykorzystana w tej pracy, jest ustalenie
funkcji falkowej w następujący sposób:
ψ (t ) = ∑ (−1) n hn −1 2 ⋅ φ (2t − n )
Wyś
n
Sygnał zawarty w przestrzeni Wm można uzyskać stosując wzór:
∞
∑T
d m (t ) =
m,n
⋅ φ M .n (t )
Wyś
n = −∞
Gdzie transformata wyraża się wzorem:
∞
Tm ,n =
∫ x(t ) ⋅ψ (t )dt
Wyświetlany tekst musi mie
m ,n
−∞
Rysunek 11 Schematyczne zagnieżdżenie podprzestrzeni
funkcjach falkowych wraz z funkcjami skalującymi
Źródło: [Burrus 2001]
L2 rozpinanych na
64
Cały sygnał zawarty w L2 możemy uzyskać syntetyzując (37) i (38):
∞
∑ S m0 ,n ⋅ φm.n (t ) +
x(t ) =
n = −∞
m0
∞
∑ ∑T
m ,n
⋅ φ M .n (t )
Wyświetlany tekst musi mie
m = −∞ n = −∞
Tak, więc sygnał jest przedstawiony, jako synteza aproksymacji na danym
poziomie oraz sumy detali do danego poziomu włącznie. Upraszczając
możemy zapisać powyższe równanie, jako:
x(t ) = x m0 (t ) +
m0
∑ d (t )
Wyświetlany tekst musi mie
m
m = −∞
Z równania (48) widać bezpośrednio główną ideę analizy wielorozdzielczej.
x m −1 (t ) = x m (t ) + d m (t )
Wyświetlany tekst musi mie
Jeśli dodamy do detalu sygnału na założonym poziomie (indeks m) do
aproksymacji na tym samym poziomie to otrzymamy aproksymacje na
niższym poziomie, czyli o zwiększonej rozdzielczości (indeks m-1).
Uogólniając odpowiada to założeniom (42).
A.4 Falki Daubechies
Falki Daubechies, nazwane tak ze względu na ich twórcę Ingrid
Daubechies8, są rodziną falek ortogonalnych szczegółowo opisanych w
[Daubechies 1992]. Falki te oznaczane D2-D20 (tylko parzyste indeksy
oznaczające niezerowe współczynniki funkcji skalującej) są bardzo często
używane, między innymi, ze względu na bardzo małą złożoność obliczeniową,
która
wynosi
Ο(n ) .
Porównywalnie
powszechnie
używana
szybka
transformacja Fouriera ma złożoność obliczeniową Ο(n ⋅ log n ) . Graficzne
porównanie przedstawia rysunek 12.
W niniejszej pracy falką używaną w analizie sygnału będzie D4, czyli
falka Daubechies o czterech współczynnikach funkcji skalującej.
8
Belgijski fizyk i matematyk urodzona w 1954 roku, aktualnie profesor na uniwersytecie Prinstone, New Jersey,
USA
65
Rysunek 12 Porównanie złożoności obliczeniowej Szybkiej Transformacji
Falkowej i Szybkiej Transformacji Fouriera
Źródło: opracowanie własne.
Rysunek 13 Falka i funkcje skalujące D4
Źródło: opracowanie własne przy użyciu MATLAB.
66
Z równania
(36)
wiemy, że funkcja skalująca dla czterech parametrów (n=4)
ma postać:
φ (t ) = 2 (h0φ (2t ) + h1 (2t − 1) + h2 (2t − 2) + h3 (2t − 3))
Wyś
a z równania (40) odpowiadająca mu funkcja falkowa:
ψ (t ) = 2 (h3φ (2t ) − h2 (2t − 1) + h1 (2t − 2) − h0 (2t − 3))
Wyś
Ponadto załóżmy, że współczynniki hn spełniają poniższe równania:
∑h
n
=2
Wyś
n
∑h h
n
n+2k '
n
2 k ' = 0
=
0 k ' ≠ 0
Wyś
Powyższe warunki wynikają z tego, że chcemy, aby utworzone falki były
ortogonalne. W naszym przypadku dla falki D4, warunki te przyjmują postać:
h0 + h1 + h2 + h3 = 2
Wyświetlany tekst musi mie
h02 + h12 + h22 + h32 = 2
Wyświetlany tekst musi mie
Ponadto Daubechies żąda aby współczynniki spełniały warunek:
N n −1
∑ (− 1)
n
hn n m = 0
Wyświetlany tekst musi mie
n
dla arbitralnie wybranego m.
Tak, więc dla m=0 i m=1 odpowiednio otrzymujemy równania:
Rozwiązując równania
h0 − h1 + h2 − h3 = 0
Wyświetlany tekst musi mie
− h12 + 2h22 − 3h32 = 0
Wyświetlany tekst musi mie
(53), (54), (56)
i
(57)
otrzymujemy współczynniki (w
obliczeniach należy uwzględnić jeszcze parametr normalizujący (w niniejszej
pracy przyjęto
1
2
h0 =
):
1+ 3
3+ 3
3− 3
1− 3
h1 =
h2 =
h3 =
4
4
4
4
Wyświetlany tekst musi mie
oraz
h0 =
1− 3
3− 3
3+ 3
1+ 3
h1 =
h2 =
h3 =
4
4
4
4
Wyświetlany tekst musi mie
67
Współczynniki
(58)
odpowiadają funkcji skalującej φ (t ) natomiast
(59)
φ (− t ) .
Mając te współczynniki możemy zdefiniować już falkę.
A.5 Dekompozycja sygnału za pomocą falki D4
Rozkładając sygnał wejściowy na składowe, z każdym krokiem
pozbywamy się pewnej ilości detali zakłócających sygnał. Kolejne
przestrzenie Vm zawierają odpowiednie aproksymacje sygnału wejściowego,
natomiast przestrzenie Wm detale usunięte z sygnału. Mając na uwadze
ortogonalność przestrzeni możemy być pewni, że nie nastąpi redundancja
sygnału oraz każdy detal zostanie wyeliminowany tylko raz.
Na rysunku 14 widać dekompozycje silnie zaszumionej funkcji sin(x)
wraz z detalami usuniętymi w każdym kroku dekompozycji. Sygnał
wejściowy możemy przedstawić, jako sumę kolejnych detali wraz z ostatnią
aproksymacją. Odnosząc się do oznaczeń na rysunku sygnał ma postać
s = a 7 + d 7 + d 6 + d 5 + d 4 + d 3 + d 2 + d1 co jest zgodne z założeniami (42).
Aby
dokonać
rekurencyjnie wzór
(48).
dekompozycji
sygnału
wejściowego
stosujemy
Zaczynając od skali m-1=0 otrzymujemy sygnał dla
skali m=1:
x1 (t ) = x0 (t ) − d1 (t )
Wyświetlany tekst musi mie
następnie dla skali m=2:
x 2 (t ) = x0 (t ) − d1 (t ) − d 2 (t )
Wyświetlany tekst musi mie
i dalej:
x 2 (t ) = x0 (t ) − d 1 (t ) − d 2 (t ) − d 3 (t )
Ilustruje to rysunek 15.
Wyświetlany tekst musi mie
68
Rysunek 14 Dekompozycja zaszumianej funkcji sinus na aproksymacje a1..a9
oraz detale d1..d9
Źródło: opracowanie własne przy użyciu MATLAB
Rysunek 15 Dekompozycja szeregu.
Źródło: [Burrus 2001].
69
Rysunek 16 Schemat dekompozycji wektora
Źródło: [Burrus 2001].
Można zauważyć, że n sukcesywnie podwaja się z każdą iteracją
algorytmu. Dla m=1 mamy 2M/21=N/2 współczynników aproksymacji. Dla
m=2 mamy już 2M/22=N/4. Rozkładając wektor zawierający osiem
składników
otrzymujemy
( S 0,0 , S 0,1 , S 0, 2 , S 0,3 , S 0, 4 , S 0,5 , S 0, 6 , S 0, 7 )
wektor
w
pierwszej
( S1, 0 , S1,1 , S1, 2 , S1,3 , T1, 0 , T1,1 , T1, 2 , T1,3 ),
( S 2,0 , S 2,1 , T2, 0 , T2,1 , T1, 0 , T1,1 , T1, 2 , T1,3 ) i tak dalej.
w
iteracji
kolejnej
70
DODATEK B
OPIS PROGRAMU H-ADVISER
B.1 Ogólna charakterystyka
H-Adviser jest programem autorskim wykonanym na potrzeby
weryfikacji hipotez zawartych w niniejszej pracy. Został napisany w języku
C# i działa na platformie .NET. Została ona utworzona przez Microsoft i
zapewnie niezależność kodu od systemu, na którym będzie on wykonywany.
Uruchomienie
wykonawczego,
jego
wymaga
które
www.micriosoft.com
można
jednak
zainstalowania
pobrać
(Microsoft
.NET
bezpośrednio
Framework
środowiska
ze
strony
Version
2.0
Redistributable Package)9. W sytuacji, gdy używanym systemem jest MS
Vista wtedy nie jest to koniecznie. System ten ma standartowo zainstalowane
wyżej wymienione środowisko uruchomieniowe.
Program dołączony jest do pracy w wersji instalacyjnej. Instalacja
nastąpi po uruchomieniu aplikacji setup.exe. Umieści on system wspomagania
decyzji na komputerze użytkownika. W systemie MS Windows uruchomić go
będzie można poprzez wybranie w menu „Start” folderu H-adviser i kliknięcie
aplikacji o tej samej nazwie.
9
Bezpośredni odnośnik: http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D8EDD-AAB15C5E04F5&displaylang=en
71
Do programu dołączono również pliki z danych, na których wykonana była
weryfikacja hipotez zawartych w pracy.
B.2 Panel wyboru danych i ustawień dla klasteryzacji
Parametry falkowa redukcji wymiarów:
• stopień kompresji – stopień kompresji podciągów ciągu wejściowego
utworzonego z współrzędnych wektora wejściowego; przy stopniu
kompresji 4x podciąg o długości 32 zostanie zredukowany do ciągu o
długości 8;
• podciągi wektora wejściowego – wektor wejściowy jest dzielony na
mniejsze części w celu uzyskania zmiany istotności wpływu danych
odległych na decyzje inwestycyjną; z powodu zastosowania dyskretnej
transformacji falkowej wielkość podciągu musi być potęgą dwójki;
72
• ilość podciągów wektora – liczba na jaką zostanie podzielony wektor
wejściowy;
Parametry gazu neuronowego
• początkowy współczynnik sąsiedztwa – szczegółowo opisany w
rozdziale 2.4 „Algorytm gazu neuronowego”;
• końcowy współczynnik sąsiedztwa – jak wyżej;
• początkowy współczynnik uczący – jak wyżej;
• końcowy współczynnik uczący – jak wyżej;
• ilość neuronów – jak wyżej;
• ilość iteracji – ilość powtórzeń procesu uczenia
• promień decyzji kupna – decyzja inwestycyjna reprezentowana jest
poprzez liczbę rozmytą osadzoną w przedziale [-1,1] gdzie 0 oznacza
brak decyzji; ustalając promień decyzji można rozciągnąć tę wartość na
większy przedział; na przykład ustalając poziom na 0,1 wszystkie
decyzje z przedziału [0;0,1] będą uważane za niewystarczające do
podjęcia decyzji inwestycyjnej;
• promień decyzji sprzedaży – jak wyżej;
• dopuszczalna odległość od klastra – odległość wektora od środka
wieloboku Woronoja liczony w normie euklidesowej;
• ilość wektorów uczących – ilość wektorów, które będą przekazane do
procesu uczenia;
Poziom akceptacji wektorów
• kupno – klasa przynależności od której wektory są brane pod uwagę w
procesie klasteryzacji jako kodujące wzorzec kupna;
• sprzedaż – jak wyżej, z tym że dotyczy wzorca sprzedaży;
Funkcja tworząca zbioru rozmytego klasyfikacji a priori
• współczynnik funkcji – współczynnik α funkcji tworzącej zbiór
rozmyty tanh(αn) szczegółowo opisany w rozdziale 1.3;
73
B.2 Panel klasteryzacji
Większą część okna zajmuje dziennik zdarzeń, w którym ukazywane są
wszystkie komunikaty systemu. Przykładowe komunikaty mogą mieć
następującą postać:
2008-05-30 17:53:14 > Otrzymano wartość: 12,25
Przygotowano wektor do wstępnej analizy:
12,3 12,3 12,3 12,3 12,25 12,25 12,25 12,25 12,2 12,2
12,2 12,25 12,2 12,2 12,2 12,2 12,25 12,25 12,25 12,25
12,25 12,25 12,2 12,25 12,25 12,25 12,25 12,25 12,25 12,25
12,25 12,3 12,25 12,25 12,25 12,25 12,25 12,25 12,25 12,25
12,25 12,25 12,25 12,25 12,2 12,25 12,2 12,25 12,2 12,2
12,2 12,25 12,25 12,3 12,25 12,25
Przygotowano wektor do klasyfikacji:
0,353 -1
0,795 -0,03 0,353 1
0,353 0,294 0,795 -0,03
0,353 0,353 0,353
Wektor przyjęto (klasa: 0,39)
74
W tej wersji systemu jedynie za pomocą tych czterech komunikatów system
komunikuje się z użytkownikiem.
Pierwsza linijka określa czas, w którym nadeszła wartość (składowana
szeregu czasowego) oraz jej wielkość. Po uzyskaniu wystarczającej ilości
danych tworzony jest wektor wejściowy i przekazywany jest on do wstępnej
analizy danych, co prezentuje linia druga linia (z powodów edycyjnych w
pracy została przedstawiona w siedmiu wierszach). Trzecie linijka (tutaj
zapisana w trzech wierszach) przedstawia znormalizowany wektor po
wstępnej analizie danych. Widać tutaj wyraźnie redukcje wymiarów wektora
wejściowego. Ostatnia linia informuje, do jakiej klasy należy wektor (liczba
oznacza stopień przynależności określony przez liczbę rozmytą utworzoną za
pomocą funkcji tworzącej – proces ten szczegółowo opisany został w
rozdziale 1.3) oraz czy został on przyjęty czy odrzucony. Czynność tak jest
realizowana w zależności od ustawienia parametru „Poziom akceptacji
wektorów”. System przyjmuje, iż dla wartości ujemnych wektor koduje
wzorzec sprzedaży a dla wartości dodatnich „kupno” wzorzec kupna.
Panel stan systemu informuje użytkownika o tym czy klasteryzacja już
się rozpoczęła czy też wciąż trwa zbieranie danych potrzebnych do aktywacji
systemu. Ukazuje on także ile wektorów jeszcze musi być dostarczonych, aby
system wystartował.
Panel użytkownika przestawia informację, która w założeniu ma być
jedyną widoczną oznaką działania systemu w aplikacji z interfejsem
graficznym zorientowanym na użytkownika. Wykorzystując powszechnie
znaną sygnalizację świetlną stosowaną w ruchu ulicznym, system ma
informować użytkownika o prawdopodobnym wykryciu wzorca, po których
powinien wystąpić wzrost (kolor zielony – sugerujący otwarcie pozycji
długiej) lub spadek (kolor czerwony – sugerujący otwarcie pozycji krótkiej).
Kolor żółty jest ukazywany podczas zbierania danych oraz wtedy, gdy brak
jednoznacznych przesłanek do klasyfikacji zaprezentowanego wektora
wejściowego.
75
Ocena skuteczności prezentuje sytuacje jaka zaistniałaby gdyby
zainwestowano 100 000,00 pln na rynku finansowym i konsekwentnie
podążano za decyzjami systemy wspomagającego decyzje.
Przycisk
„Wstrzymaj”
zatrzymuje
klasteryzację
jednakże
z
możliwością wznowienia jej od momentu, w których została zatrzymana.
Natomiast
możliwości.
przycisk
„Przerwij”
zatrzymuje
klasteryzację
bez
takiej
76
DODATEK C
ANEKS STATYSTYCZNY
Zestawienie stóp zwrotu uzyskanych ze strategii “kup i trzymaj” oraz
podążając za decyzjami systemu wspomagania decyzji H-Adviser wraz z
krótką charakterystyką szeregów.
Data
Odchylenie Maksymalna
Zysk ze strategii
Zysk H-Adviser
standardowe
amplituda
kup i trzymaj
2003-09-01
13,3
73,42
+3,70%
-2,4%
2003-10-06
18,26
75,21
+4,89%
+4,5%
2003-10-14
13,55
66,41
-3,27%
+3,4%
2003-10-21
18,88
71,28
+3,37%
-2,8%
2003-10-22
11,14
60,99
+3,06%
+3,4%
2003-10-28
19,78
89,89
-4,42%
+0,4%
2003-12-08
12,38
64,63
-4,19%
-2,6%
2004-01-05
11,46
62,45
-3,53%
+0,7%
2004-05-07
11,42
70,04
+3,63%
-2,1%
2005-09-19
13,87
92,66
-3,52%
+2,7%
2005-09-20
12,51
84,63
+2,56%
+0,5%
2005-09-26
22,97
67,47
-2,08%
+2,2%
2005-09-28
12,45
63,95
+2,13%
-0,9%
2005-10-03
19,95
75,27
-1,90%
-2,6%
2005-10-06
15,49
62,39
+1,89%
-2,3%
2005-10-13
14,89
97,68
+4,00%
+1,8%
77
Data
Odchylenie Maksymalna
Zysk ze strategii
Zysk H-Adviser
standardowe
amplituda
kup i trzymaj
2005-10-26
20,06
88,44
3,47%
-2,8%
2005-10-28
11,18
60,51
-2,22%
-2,3%
2006-01-02
14,99
75,24
-2,41%
+1,6%
2006-01-03
16,51
88,96
-3,20%
+1,8%
2006-01-06
19,67
76,02
-2,01%
+2,5%
2006-01-09
21,44
82,07
+1,68%
-2,5%
2006-01-16
12,04
61,66
-2,01%
+1,2%
2006-01-19
14,36
73,36
-2,42%
+1,0%
2006-01-23
14,64
71,1
-1,83%
-1,5%
2006-01-31
26,37
150,78
+5,13%
-2,6%
2006-02-10
12,66
72,7
+2,30%
+2,1%
2006-02-17
29,66
109,32
-3,64%
+3,4%
2006-02-28
28,36
107,03
+0,94%
+1,9%
2006-03-03
11,01
70,02
+0,91%
+0,4%
2006-03-07
18,14
83,93
+1,68%
-0,1%
2006-03-08
19,47
84,82
+1,80%
-0,2%
2006-03-10
16,38
61,3
+0,18%
-1,5%
2006-03-16
13,82
71,57
-2,22%
-2,1%
2006-03-29
11,68
77,46
-1,66%
+1,8%
2006-04-19
13,44
66,67
1,44%
-0,2%
2006-04-20
24,48
89,26
-0,83%
+1,2%
2006-04-21
28,16
118,62
-2,69%
+1,7%
2006-04-24
14,37
61,6
-1,12%
+0,3%
2006-04-26
11,61
74,45
-0,96%
-1,3%
2006-04-27
39,8
131,25
3,49%
-2,4%
2006-05-04
11,52
92,13
-2,52%
-2,4%
2006-05-05
14,08
97,74
-1,39%
-1,9%
2006-05-11
16,53
74,51
-0,69%
-0,5%
2006-05-12
11,93
63,54
+1,34%
-1.4%
2006-05-15
15,51
129,82
+3,78%
-2,0%
2006-05-16
16,16
82,8
-1,21%
+1,8%
2006-05-17
38,68
179,2
+5,06%
-4,1%
78
Data
Odchylenie Maksymalna
Zysk ze strategii
Zysk H-Adviser
standardowe
amplituda
kup i trzymaj
2006-05-18
16,88
197,58
+4,94%
+5,9%
2006-05-24
48,22
144,13
+2,81%
-1,9%
2006-05-25
32,64
190,08
-3,96%
+4,8%
2006-05-29
13,77
89,96
+2,62%
-1,9%
2006-05-31
21,05
98,33
-2,99%
+0,6%
2006-06-05
16,19
76,47
+0,41%
-1,2%
2006-06-09
25,1
101,12
+3,13%
+2,3%
2006-06-13
29,61
125,1
-0,98%
+2,5%
2006-06-14
21,47
183,94
-3,52%
+1,8%
2006-06-16
21,72
87,17
2,38%
-2,2%
2006-06-20
11,94
63,63
-1,54%
-0,6%
2006-06-21
17,76
96,74
-2,25%
-1,7%
2006-06-22
18,04
83,13
2,75%
+1,4%
2006-06-27
30,4
121,29
-2,47%
-1,2%
2006-06-28
17,95
106,89
-3,85%
-2,8%
2006-06-29
13,05
100,28
-2,26%
-2,4%
2006-06-30
12,86
60,17
+0,91%
+0,5%
2006-07-06
31,92
105,24
-3,22%
+3,2%
2006-07-07
21,78
93,10
-0,10%
0,04%
2006-07-10
32,44
122,05
-2,85%
+1,9%
2006-07-11
15,29
76,64
-0,04%
-0,8%
2006-07-12
14,76
65,87
+0,36%
+1,3%
2006-07-13
34,75
183,6
5,73%
+5,4%
2006-07-14
14,7
74,74
-1,76%
-0,3%
2006-07-17
11,33
61,55
+1,85%
-0,2%
2006-07-18
13,24
61,17
-1,78%
-0,1%
2006-07-26
12,25
70,95
-1,75%
+1,9%
2006-07-27
21,88
78,32
-2,06%
-1,7%
2006-08-01
18,17
88,36
+2,62%
+1,6%
2006-08-02
16,01
76,58
+0,98%
+0,1%
2006-08-03
30,04
109,77
+2,82%
+1,4%
2006-08-04
16,13
72,69
+0,36%
+0,5%
79
Data
Odchylenie Maksymalna
Zysk ze strategii
Zysk H-Adviser
standardowe
amplituda
kup i trzymaj
2006-08-07
16,67
71,95
-0,07%
-1,1%
2006-08-09
24,06
83,53
-0,98%
-1,6%
2006-08-10
14,42
68,79
+0,45%
+0,6%
2006-08-11
27,4
131,18
+3,19%
+2,8%
2006-08-25
14,59
72,86
+2,02%
+1,2%
2006-08-29
14,76
66,3
-2,08%
+0,5%
2006-08-31
21,39
74,88
+1,91%
-1,8%
2006-09-04
30,88
107,64
-2,94%
-2,0%
2006-09-08
18,75
77,51
+2,25%
+1,8%
2006-09-12
17,29
86,87
-1,87%
+2,0%
2006-09-14
13,8
69,83
+2,01%
+1,9%
2006-09-21
12,08
67,99
+1,5%
-1,5%
2006-10-04
11,12
90,45
-2,89%
+2,3%
2006-10-10
11,9
69,66
-1.88%
+0,3%
2006-10-12
13,86
80,41
-2,39%
-2,4%
2006-10-18
17,55
89,85
-1,27%
-0,1%
2006-10-20
21,03
88,17
+1,46%
+1,2%
2006-10-27
17,88
78,56
+2,04%
+1,8%
2006-11-13
16,69
67,37
-0,38%
+0,2%
2006-11-15
30,95
106,95
+2,53%
+0,4%
2006-11-16
13,52
69,88
-0,23%
+0,1%
2006-11-27
11,7
72,73
+1,83%
-1,3%
2006-11-29
11,83
67,5
-2,05%
+1,2%
2006-12-05
18,29
80,81
-2,09%
-1,2%
2006-12-15
22,67
102,75
+0,09%
-2,8%
2006-12-19
13,95
65,93
+0,91%
-0,5%
2006-12-20
23,18
93,07
+1,98%
+1,7%
2007-01-02
11,23
61,64
-1,31%
+0,01%
2007-01-05
22,86
97,75
+2,72%
+1,5%
2007-01-08
16,25
74,61
-1,37%
+1,7%
2007-01-10
14,45
61,86
-0,76%
+0,6%
2007-01-18
16,08
94,54
-1,33%
-0,1%
80
Data
Odchylenie Maksymalna
Zysk ze strategii
Zysk H-Adviser
standardowe
amplituda
kup i trzymaj
2007-01-22
25,36
107,25
+2,22%
-2,2%
2007-01-23
11,8
76,38
-1,6%
-2,1%
2007-01-25
19,16
124,23
+2,32%
+2,6%
2007-01-26
15,56
68,92
-1,7%
+0,8%
2007-02-08
20,47
84,39
+1,83%
+1,2%
2007-02-13
18,31
94,34
-2,54%
-1,4%
2007-02-15
15,3
67,69
+1,42%
+0,7%
2007-02-21
12,19
60,69
-1,39%
+0,9%
2007-02-27
31,56
176,65
+4,97%
+3,7%
2007-03-01
34,08
113,36
+1,11%
+0,3%
2007-03-05
16,25
99,22
-2,06%
-2,1%
2007-03-07
17,12
66,13
-0,5%
+0,1%
2007-03-09
16,22
75,45
-1,04%
-1,0%
2007-03-13
25,34
147,86
+3,58%
+3,8%
2007-03-14
13,04
118,58
-3,68%
-2,4%
2007-03-16
20,47
71,39
-1,75%
-1,8%
81
LITERATURA
[Rachel 2000]
S.T. Rachev, S. Mittnik. Stable Paretian model in
finance. Wiley&Sons. 2000.
[Rachev 2004]
S.T. Rachev. Handbook of Numerical Methods in
Finance. Springer. 2004.
[Allen 1999]
F. Allen, R. Karjalainen. Using Genetic Algorithms to
Find Technical Trading Rules. Journal of Financial
Economics, 245-279. 1999.
[AlSultan 1996]
K.S. AlSultan, M.M. Khan. Computational experience
on four algorithms for the hard clustering problem.
Pattern Recognition Letters, 17(3), 295–308. 1996.
[Backer 2000]
E. Backer. Computer-Assisted Reasoning in Cluster
Analysis. Prentice Hall. 2000.
[Bajcsy 1998]
P. Bajcsy, N. Ahuja. Location and density-based
hierarchical clustering using similarity analysis. IEEE
Transactions
on
Pattern
Analysis
and
Machine
Intelligence, 20(9), 1011–1015. 1998.
[Banfield 1993]
J.D. Banfield, A.E. Raftery. Model-Based Gaussian and
Non-Gaussian Clustering. Biometrics, 49(September),
803–821. 1993.
82
[Bauer 1994]
R.J. Bauer. Genetic Algorithms and Investment
Strategies. Wiley. 1994.
[Beringer 2007]
J. Beringer, E. Hullermeier. Fuzzy Clustering of Parallel
Data
Streams.
Otto
von
Guericke
Universitat
Magdeburg. Germany. 2007.
[Bernstein 2000]
J. Bernstein. Cykle giełdowe. WIG-PRESS. 2000.
[Beyen 1999]
K. Beyen, J. Goldstein, R. Ramakrishnan, U. Shaft.
When is nearest neighbor meaningful? In Proceedings
of the 7th International Conference on Database Theory,
217–235. 1999.
[Bezdek 1981]
J. Bezdek. Pattern Recognition with Fuzzy Objective
Function Algorithms. Plenum Press. 1981.
[Bień 2005]
K.
Bień.
Wybrane
modele
ekonometryczne
finansowych szeregów czasowych o ultrawysokiej
częstotliwości. Rozprawa doktorska SGH Warszawa.
2005.
[Birto 1997]
M.R. Brito, E.L. Chavez, A.J. Quiroz, J.E. Yukich.
Connectivity of the mutual k-nearest-neighbor graph in
clustering
and
outlier
detection.
Statistics
and
Probability Letters, 35(1), 33–42. 1997.
[Bobrowski 1986]
D.
Bobrowski.
Probabilistyka
w
zastosowaniach
technicznych. WNT. 1986.
[Box 1994]
G.E.P. Box, G.M. Jenkins, G.C. Reinsel. Time Series
Analysis, Forecasting and Control. Prentice Hall. 1994.
[Brockwell 2002]
P.J. Brockwell, R.A. Davis. Introduction to Time Series
and Forecasting. Springer. 2002.
[Burrus 2001]
C.S. Burrus. Introduction to Wavelets and Wavelet
Transform. Pretntice Hall. 2001.
[Czekaj 2003]
J. Czekaj, M. Woś, J. Żarnowski. Efektywność
giełdowego rynku akcji w Polsce. PWN. 2003.
83
[Daubechies 1992]
I. Daubechies. Ten Lectures on Wavelets, Society for
Industrial and Apllied Mathematics. 1992.
[Demeter 2003]
M.A.H.
Dempster,
Y.
Romahi.
Evolutionary
reinforcement learning in FX order book and order flow
analysis, Proceedings of the International Conference
on
Computational
Intelligence
for
Financial
Engineering, Hong Kong. China. 2003.
[ElSonbaty 1998]
Y.
ElSonbaty,
M.
Ismail.
On-line
hierarchical
clustering. Pattern Recognition Letters, 19(14), 1285–
1291. 1998.
[Fama 1970]
E. F. Fama. Efficient Capital Markets: A Review of
Theory and Empirical Work. Journal of Finance. 1970.
[Fayyad 1996]
U. M. Fayyad, G. Piatetsky-Shapiro, P. Smyth.
Advances in knowledge discovery and data mining.
AAAI Press/MIT Press. 1996.
[Fraley 1998]
C. Fraley, A.E. Raftery. How many clusters? Which
clustering method? Answers via model-based cluster
analysis. Computer Journal, 41(8), 578–588. 1998.
[Frost 1995]
J. Frost, R. Prechter. Teoria fal Elliota. WIG-PRESS.
1995.
[Garofalakis 2002]
M. Garofalakis, J. Gehrke, and R. Rastogi. Querying
and mining data streams: you only get one look. In
Proceedings of the 2002 ACM SIGMOD International
Conference on Management of Data, pages 635–635.
ACM Press. 2002.
[Geurts 2001]
P.
Geurts.
Pattern
extraction
for
time
series
classification. In Proceedings of the 5th European
Conference
on
Principles
of
Data
Knowledge Discovery, 115–127. 2001.
Mining
and
84
[Golab 2003]
L. Golab, M. Tamer. Issues in data stream management.
SIGMOD Rec., 32(2):5–14. 2003.
[Hopper 1999]
F. Hoppner, F. Klawonn, K. Rudoft, T. Runkler. Fuzzy
Cluster Analysis. Wiley. 1999.
[Karatzas 1998]
I. Karatzas, S.E. Shreve. Methods of Mathematical
Finance. Springer. 1998.
[Keogh 1998]
E. Keogh, M. Pazzani. An enhanced representation of
time series which allows fast and accurate classification,
clustering and relevance feedback. In Proceedings of the
4th International Conference of Knowledge Discovery
and Data Mining, 239–241. 1998.
[Keogh 2000]
E. Keogh, K. Chakrabarti, S. Mehrotra. Dimensionality
reduction of fast similarity search in large time series
databases. Journal of Knowledge and Information
System, 3:263–286. 2000.
[Korczak 2007]
J. Korczak, P. Lipiński. Systemy agentowe we
wspomaganiu
decyzji
na
rynku
papierów
wartościowych. 2007.
[Kwasnicka 2001]
H. Kwasnicka, M. Ciosmak. Intelligent Techniques in
Stock Analysis, Intelligent Information Systems 2001,
Proceedings of the 10th International Symposium on
Intelligent Information Systems. Springer. 195-208.
2001.
[Lin 1996]
J. Lin, W. Lin. Real-time and Automatic Two-Class
Clustering by Analytical Formulas. Pattern Recognition,
29(11), 1919–1930. 1996.
[Lipiński 2005]
P. Lipiński. Evolutionary data-mining methods in
discovering stock market expertise from financial time
series. Université Louis-Pasteur. 2005.
85
[Liu 2000]
X. Liu. Progress in Intelligent Data Analysis. Applied
Intelligence, 11(3). 2000.
[Malarska 2005]
A. Malarska. Statystyczna analiza danych. SPSS. 2005.
[Mallat 1989]
S.G. Mallat. A theory for multiresulution signal
decomposition:
Transactions
the
on
wavelet
Pattern
representation.
Analysis
and
IEEE
Machine
Intelligence, 11(7), 647-693. 1989.
[Martinetz 1993]
M. Martinetz, S. Berkovich, K. Schulten. “Neural-gas”
network for vector quantization and its application to
time series prediction. IEEE Trans. Neural Networks, V.
4, 1993, 558-569. 1993.
[McLachlan]
G.J. McLachlan, K.E. Basford. Mixture models:
inference and applications to clustering. Marcel Dekker.
1988.
[Meyer 1995]
Y.
Meyer.
Wavelets
and Operators,
Cambridge
University Press. 1995.
[Murphy 1999]
J. Murphy. Analiza techniczna rynków finansowych.
WIG-PRESS. 1999.
[Osowski 1996]
S. Osowski. Sieci neuronowe w ujęciu algorytmicznym.
WNT. 1996.
[Pacheco 1998]
F.A.L. Pacheco. Finding the number of natural clusters
in groundwater data sets using the concept of
equivalence class. Computers and Geosciences, 24(1),
7–15. 1998
[Prinze 2006]
A. Prinze, D. Van Den Poel. Investigating Purchasing
Patterns for Financial Services using Markov, MTD and
MTDg Models/ European Journal of Operational
Research, 170 (3), 710-734. 2006.
[Ritchie 1997]
J.C. Ritchie. Analiza fundamentalna przekład polski.
WIG-PRESS. 1997.
86
[Rutkowski 2005]
L. Rutkowski. Metody I techniki sztucznej inteligencji.
PWN. 2005.
[Rutkowski 2006]
L. Rutkowski. Metody i techniki sztucznej inteligencji.
PWN. 2006.
[Shannon 1948]
A. Shannon, A mathematical theory of communication,
the Bell System technical Journal, 27 (3), 379-423 &
623-656. 1948.
[Shapiro 1995]
L.S. Shapiro. Affine Analysis of Image Sequences.
Ph.D. thesis, University of Oxford. 1995.
[Tsang 2000]
E.P.K. Tsang, S. Markose, A. Salhi, G. Iori. EDDIE In
Financial Decision Making, Journal of Management and
Economics, Vol.4, No.4. 2000.
[Weigend 1997]
A.S. Weigend. Data Mining in Finance: Report from the
Post-NNCM-96 Workshop on Teaching Computer
Intensive Methods for Financial Modeling and Data
Analysis. Neural Networks in the Capital Markets
NNCM-96, 399-411. 1997.
[Yi 2000]
B. K. Yi, C. Faloustos. Fast time sequence indexing for
arbitrary lp norms. In Proceedings of the 26th
International Conference on Very Large Databases,
385–394. 2000.

Podobne dokumenty