10.07.2015 Views

Zaawansowane modele finansowe z wykorzystaniem Excela i VBA

Zaawansowane modele finansowe z wykorzystaniem Excela i VBA

Zaawansowane modele finansowe z wykorzystaniem Excela i VBA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4 <strong>Zaawansowane</strong> <strong>modele</strong> <strong>finansowe</strong> z <strong>wykorzystaniem</strong> <strong>Excela</strong> i <strong>VBA</strong>2.13.4. Mnożenie macierzy...................................................i......................................472.13.5. Odwracanie macierzy...................................................i...................................492.13.6. Rozwiązywanie układów równoważnych równań liniowych.........................502.13.7. Podsumowanie funkcji macierzowych w Excelu ...........................................51Podsumowanie ...................................................i...................................................i............51Rozdział 3. Wprowadzenie do <strong>VBA</strong> ...................................................................... 533.1. Korzyści ze znajomości <strong>VBA</strong> ...................................................i.................................533.2. Zorientowane obiektowo cechy <strong>VBA</strong>...................................................i.....................553.3. Zaczynamy pisać makra w <strong>VBA</strong>...................................................i.............................573.3.1. Kilka przykładowych procedur <strong>VBA</strong> ...................................................i............573.3.2. Interakcja z zastosowaniem MsgBox...................................................i.............583.3.3. Edytor kodu źródłowego...................................................i................................593.3.4. Wpisywanie kodu i wykonywanie makr...................................................i........603.3.5. Rejestrowanie naciśnięć klawiszy i edytowanie kodu ......................................613.4. Elementy programowania ...................................................i.......................................633.4.1. Zmienne i typy danych...................................................i...................................633.4.2. Zmienne tablicowe <strong>VBA</strong> ...................................................i...............................643.4.3. Struktury sterujące ...................................................i.........................................663.4.4. Sterowanie procedurami powtarzalnymi ...................................................i.......673.4.5. Stosowanie w kodzie funkcji <strong>Excela</strong> oraz funkcji <strong>VBA</strong>...................................693.4.6. Ogólne uwagi na temat programowania ...................................................i........693.5. Komunikacja między makrami a arkuszem ...................................................i............703.6. Przykładowe procedury...................................................i...........................................743.6.1. Wykresy ...................................................i...................................................i......743.6.2. Wykres prawdopodobieństwa normalnego...................................................i....773.6.3. Generowanie granicy efektywności za pomocą Solvera ..................................79Podsumowanie ...................................................i...................................................i............82Lektury ...................................................i...................................................i......................83Dodatek 3A. Edytor Visual Basic ...................................................i..................................83Krokowe wykonywanie makra i korzystanie z innych narzędzi testujących .............86Dodatek 3B. Rejestrowanie naciśnięć klawiszy w trybie „odwołań względnych”...........88Rozdział 4. Tworzenie funkcji <strong>VBA</strong> zdefiniowanych przez użytkownika.................. 914.1. Prosta funkcja obliczająca prowizję od sprzedaży...................................................i..924.2. Wstawianie funkcji Commission(Sales) do arkusza ..................................................934.3. Dwie funkcje z wieloma danymi wejściowymi służące do wyceny opcji .................944.4. Manipulowanie tablicami w <strong>VBA</strong>...................................................i...........................974.5. Funkcje wartości oczekiwanej i wariancji z tablicami wejściowymi ........................984.6. Funkcja wariancji portfela posiadająca tablice wejściowe ......................................1014.7. Funkcje zwracające tablice...................................................i....................................1034.8. Stosowanie funkcji <strong>Excela</strong> i <strong>VBA</strong>w funkcjach zdefiniowanych przez użytkownika...................................................i......1054.8.1. Stosowanie funkcji <strong>VBA</strong> w funkcjach zdefiniowanych przez użytkownika ... 1054.8.2. Dodatki...................................................i...................................................i......1064.9. Zalety i wady tworzenia funkcji <strong>VBA</strong> ...................................................i..................106Podsumowanie ...................................................i...................................................i..........107Dodatek 4A. Funkcje ilustrujące obsługę tablic...................................................i...........108Dodatek 4B. Funkcje wyceny opcji z zastosowaniem drzewa dwumianowego.............110Ćwiczenia w pisaniu funkcji ...................................................i........................................115Rozwiązania ćwiczeń w pisaniu funkcji ...................................................i......................117


Spis treści 5Część II<strong>Zaawansowane</strong> <strong>modele</strong> akcji........................................121Rozdział 5. Wprowadzenie do akcji ................................................................... 123Rozdział 6. Optymalizacja portfela .................................................................... 1256.1. Średnia i wariancja portfela...................................................i...................................1256.2. Reprezentacja portfeli za pomocą ryzyka i zwrotu ..................................................1286.3. Zastosowanie Solvera do znajdowania portfeli efektywnych..................................1296.4. Wyznaczanie granicy efektywności (podejście Huanga i Litzenbergera) ...............1326.5. Portfele efektywne z warunkami ograniczającymi ..................................................1346.6. Łączenie aktywów ryzykownych i pozbawionych ryzyka.......................................1366.7. Problem pierwszy: łączenie aktywa pozbawionego ryziykaz aktywem ryzykownym...................................................i............................................1376.8. Problem drugi: łączenie dwóch aktywów ryzykownych..........................................1396.9. Problem trzeci: łączenie aktywa wolnego od ryzyka z portfelem ryzykownym......1416.10. Funkcje zdefiniowane przez użytkownika w Module1..........................................1436.11. Funkcje w Module1 dla trzech ogólnych problemów konstrukcji portfela ...........1456.12. Makra z modułu ModułM ...................................................i...................................146Podsumowanie ...................................................i...................................................i..........148Lektury ...................................................i...................................................i....................148Rozdział 7. Wycena aktywów............................................................................ 1497.1. Model jednoindeksowy ...................................................i.........................................1507.2. Szacowanie współczynników beta...................................................i........................1517.3. Model wyceny aktywów kapitałowych...................................................i.................1547.4. Macierze wariancji-kowariancji...................................................i............................1547.5. Value-at-Risk ...................................................i...................................................i.....1567.6. Horyzont zysków...................................................i...................................................i1597.7. Momenty rozkładów powiązanych ze sobąna przykładzie rozkładów normalnego i logarytmiczno-normalnego ..........................1617.8. Funkcje zdefiniowane przez użytkownika w Module1............................................162Podsumowanie ...................................................i...................................................i..........163Lektury ...................................................i...................................................i....................164Rozdział 8. Mierzenie efektywności i jej przypisywanie ..................................... 1658.1. Tradycyjny pomiar efektywności...................................................i..........................1668.2. Zarządzanie aktywne-pasywne ...................................................i.............................1688.3. Wprowadzenie do analizy stylu ...................................................i............................1708.4. Prosta analiza stylu...................................................i................................................1728.5. Analiza stylu dla kolejnych okresów ...................................................i....................1738.6. Przedziały ufności dla udziałów stylu...................................................i...................1758.7. Funkcje zdefiniowane przez użytkownika w Module1............................................1788.8. Makra w ModuleM...................................................i................................................179Podsumowanie ...................................................i...................................................i..........180Lektury ...................................................i...................................................i....................181Część III Opcje na akcje...................................................w..........183Rozdział 9. Wprowadzenie do opcji na akcje...................................................... 1859.1. Geneza formuły Blacka-Scholesa ...................................................i.........................1869.2. Formuła Blacka-Scholesa...................................................i......................................1879.3. Portfele zabezpieczające ...................................................i.......................................1889.4. Wycena niezależna od ryzyka...................................................i...............................1909.5. Proste jednokrokowe drzewo dwumianowe z wyceną niezależną od ryzyka..........191


6 <strong>Zaawansowane</strong> <strong>modele</strong> <strong>finansowe</strong> z <strong>wykorzystaniem</strong> <strong>Excela</strong> i <strong>VBA</strong>9.6. Parytet put-call ...................................................i...................................................i...1929.7. Dywidendy ...................................................i...................................................i.........1939.8. Cechy opcji amerykańskiej ...................................................i...................................1949.9. Metody ilościowe ...................................................i..................................................1949.10. Zmienność i stopy zwrotu z akcji mające rozkład inny od normalnego ................195Podsumowanie ...................................................i...................................................i..........196Lektury ...................................................i...................................................i....................197Rozdział 10. Drzewa dwumianowe....................................................................... 19910.1. Wprowadzenie do drzew dwumianowych ...................................................i..........20010.2. Uproszczone drzewo dwumianowe...................................................i.....................20110.3. Drzewo dwumianowe JR ...................................................i....................................20310.4. Drzewo CRR ...................................................i...................................................i....20710.5. Przybliżenia dwumianowe a formuła Blacka-Scholesa .........................................20810.6. Zbieżność drzew dwumianowych CRR ...................................................i..............21010.7. Drzewo LR ...................................................i...................................................i.......21110.8. Porównanie drzew CRR i LR...................................................i..............................21210.9. Opcje amerykańskie oraz amerykańskie drzewo CRR ..........................................21410.10. Funkcje zdefiniowane przez użytkownika w Module0 i Module1 ......................216Podsumowanie ...................................................i...................................................i..........218Lektury ...................................................i...................................................i....................218Rozdział 11. Formuła Blacka-Scholesa ................................................................ 21911.1. Formuła Blacka-Scholesa...................................................i....................................21911.2. Formuła Blacka-Scholesa w arkuszu ...................................................i..................22011.3. Opcje na waluty i towary ...................................................i....................................22211.3. Obliczanie „greckich” parametrów opcji ...................................................i............22311.5. Portfele zabezpieczające ...................................................i.....................................22411.6. Formalne wyprowadzenie formuły Blacka-Scholesa.............................................22711.7. Funkcje zdefiniowane przez użytkownika w Module1..........................................229Podsumowanie ...................................................i...................................................i..........230Lektury ...................................................i...................................................i....................231Rozdział 12. Inne metody ilościowe dla opcji europejskich.................................. 23312.1. Wprowadzenie do symulacji Monte Carlo...................................................i..........23412.2. Symulacja przy użyciu przeciwnych zmiennych losowych...................................23612.3. Symulacja przy użyciu próbkowania quasi-losowego ...........................................23712.4. Porównanie metod symulacji ...................................................i..............................23812.5. Obliczanie parametrów greckich w symulacji Monte Carlo..................................24012.6. Całkowanie numeryczne ...................................................i.....................................24012.7. Funkcje zdefiniowane przez użytkownika w Module1..........................................242Podsumowanie ...................................................i...................................................i..........244Lektury ...................................................i...................................................i....................244Rozdział 13. Rozkłady inne niż normalny oraz zmienność wewnętrzna.................. 24513.1. Zastosowanie w formule Blacka-Scholesaalternatywnych założeń dotyczących rozkładów...................................................i.......24613.2. Zmienność wewnętrzna...................................................i.......................................24813.3. Uwzględnianie skośności i kurtozy...................................................i.....................24913.4. „Uśmiech zmienności”...................................................i........................................25213.5. Funkcje zdefiniowane przez użytkownika w Module1..........................................254Podsumowanie ...................................................i...................................................i..........257Lektury ...................................................i...................................................i....................257


Spis treści 7Część IV Opcje na obligacje...................................................w.....259Rozdział 14. Wprowadzenie do wyceny opcji na obligacje ................................... 26114.1. Struktura czasowa stóp procentowych ...................................................i................26314.2. Przepływy pieniężne z obligacji kuponowychi rentowność w momencie wykupu ...................................................i...........................26414.3. Drzewa dwumianowe...................................................i..........................................26514.4. Formuła Blacka na wycenę opcji na obligację...................................................i....26614.5. Trwałość i wypukłość...................................................i..........................................26714.6. Sposób zapisu...................................................i...................................................i...269Podsumowanie ...................................................i...................................................i..........269Lektury ...................................................i...................................................i....................270Rozdział 15. Modele stóp procentowych ............................................................. 27115.1. Model Vasicka struktury czasowej ...................................................i.....................27215.2. Wycena opcji europejskich na obligacje zerokuponowe — model Vasicka .........27415.3. Wycena europejskich opcji na obligacje kuponowe — model Vasicka ................27615.4. Model CIR struktury czasowej...................................................i............................27615.5. Wycena europejskich opcji na obligacje zerokuponowe — model CIR................27715.6. Wycena europejskich opcji na obligacje kuponowe — model CIR.......................27815.7. Funkcje zdefiniowane przez użytkownika w Module1..........................................279Podsumowanie ...................................................i...................................................i..........281Lektury ...................................................i...................................................i....................281Rozdział 16. Dopasowywanie struktury czasowej................................................ 28316.1. Drzewa ze stopami procentowymi o rozkładzie logarytmiczno-normalnym.........28416.2. Drzewa ze stopami procentowymi o rozkładzie normalnym.................................28716.3. Drzewo BDT ...................................................i...................................................i....28816.4. Wycena opcji na obligacje z <strong>wykorzystaniem</strong> drzewa BDT..................................29016.5. Funkcje zdefiniowane przez użytkownika w Module1..........................................292Podsumowanie ...................................................i...................................................i..........294Lektury ...................................................i...................................................i....................294Dodatki ...................................................w....................................295Dodatek Inne funkcje <strong>VBA</strong> ............................................................................ 297Prognozowanie...................................................i...................................................i..........297Modele ARIMA ...................................................i...................................................i........299Krzywe sklejane ...................................................i...................................................i........301Wartości własne i wektory własne...................................................i...............................302Lektury ...................................................i...................................................i....................303Skorowidz...................................................................................... 305


Rozdział 2.<strong>Zaawansowane</strong> funkcjei procedury <strong>Excela</strong>Celem tego rozdziału jest zapoznanie czytelnika z niektórymi funkcjami i procedurami<strong>Excela</strong> zastosowanymi w dalszej części książki. Chodzi przede wszystkim o matematyczne,statystyczne lub wyszukiwawcze funkcje <strong>Excela</strong>, a także o najczęściej stosowaneprocedury, takie jak tworzenie tabel z danymi oraz wyświetlanie wyników na wykresachtypu XY. Przedstawione zostaną również metody podsumowywania zestawów danych,przeprowadzania analiz regresji oraz uruchamiania narzędzi <strong>Excela</strong> Szukaj wynikui Solver. Postaramy się jak najlepiej objaśnić prezentowany materiał, by nie sprawiałon czytelnikowi żadnych trudności. Bardziej zaawansowani użytkownicy <strong>Excela</strong> mogąograniczyć się do pobieżnego przeglądnięcia tego rozdziału bądź odwoływać się doniego tylko wtedy, gdy odczują taką potrzebę. W celu uprzyjemnienia i zwiększeniaefektywności lektury opracowano skoroszyt o nazwie ZMFExcel.xls, zawierający opisywaneprzykłady i umożliwiający sprawdzenie swoichz umiejętności.2.1. Korzystanie z funkcji <strong>Excela</strong>Excel udostępnia wiele funkcji arkuszy kalkulacyjnych, będących zasadniczo zaimplementowanymiprocedurami obliczeniowymi. Funkcje te ułatwiają wykonywanie obliczeńprzeprowadzanych w arkuszu, a także mogą być dołączane do makr <strong>VBA</strong> i funkcjizdefiniowanych przez użytkownika (te zagadnienia zostaną przedstawione w rozdziale3. i 4.).Funkcje udostępnia przycisk Wstaw funkcję (oznaczony jako fx) znajdujący się nastandardowym pasku narzędzi (wcześniej służył do tego tak zwany kreator funkcji.)Na rysunku 2.1 widać, że funkcje są pogrupowane w kilka różnych kategorii: matematyczne,statystyczne, logiczne, wyszukiwania i adresuz itd.Jak widać na rysunku, zaznaczona została funkcja , co spowodowało wyświetleniekrótkiego opisu jej danych wejściowych i wyjściowych. Pełniejszy opis możnauzyskać, naciskając przycisk Pomoc (oznaczony jako ?).


22 Część I ♦ <strong>Zaawansowane</strong> modelowanie w ExceluRysunek 2.1.Okno dialogoweWstawianie funkcjiprzedstawiającefunkcjęKOMBINACJEnależącą do kategoriiMatematycznePo kliknięciu przycisku OK wyświetlony zostanie formularz Argumenty funkcji zawierającypola, w których należy wprowadzić odpowiednie dane wejściowe, tak jak narysunku 2.2. Dane wejściowe można wpisać w pola tekstowe (jak na rysunku) lub „wybrać”je, odwołując się do komórek arkusza (klikając wcześniej przyciski służące dozwijania formularza Argumenty funkcji). Zwróćmy uwagę, że formularz można przesunąćna inną niż standardowa pozycję. Kliknięcie przycisku OK na formularzu lubprzycisku zatwierdzenia w wierszu edycji spowoduje wprowadzenie formuły do arkuszakalkulacyjnego.Rysunek 2.2.Tworzenie formułyKOMBINACJEw formularzuArgumenty funkcjiOprócz formularza Argumenty funkcji, zawierającego dane wejściowe dla funkcji, na rysunku 2.2 widać również wiersz Edycja przedstawiający taką postaćformuły, w jakiej pojawi się ona w komórce arkusza, oraz wciśnięty przycisk Wstawfunkcję. Zwróćmy też uwagę na przycisk Wklej nazwy (oznaczony jako =ab), ułatwiającywklejanie do formuły komórek, którym nadano nazwę (nadawanie nazw zakresomkomórek oraz odwoływanie się do zakresów za pomocą nazw zostanie przedstawionew punkcie 2.10.).


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 23Podobnie jak funkcje <strong>Excela</strong> przycisk Wstaw funkcję umożliwia dostęp do kategoriifunkcji zdefiniowanych przez użytkownika, opisanych wz rozdziale 4.Znamy już sposób korzystania z funkcji, a zatem w następnych punktach przedstawimyniektóre funkcje matematyczne i statystyczne.2.2. Funkcje matematyczneSpośród funkcji należących do kategorii Matematyczne zastosujemy funkcje ,, , , oraz .Funkcja zwraca wartość funkcji potęgowej exp(x) lub e x . Na przykład: zwróci wartość liczby e (2,7183, jeśli sformatujemy ją do czterechmiejsc po przecinku); zwróci wartość e 2 (7,3891 — z czterema cyframi po przecinku); zwróci wartość 1/e, czyli e –1 (0,36788 — z pięcioma cyframipo przecinku).W obliczeniach finansowych przepływy pieniężne zachodzące w różnym czasie przekształcasię w wartości przyszłe (lub teraźniejsze), przykładając czynniki kapitalizacji(lub dyskontowe). W przypadku kapitalizacji ciągłej stopą procentową równą r czynnikkapitalizacji w jednym roku ma wartość exp(r), a jeśli kapitalizacja odbywa się razdo roku, wówczas odpowiadającą jej roczną stopę procentową r a oblicza się za pomocąwyrażenia:r a= exp( r)−1Kapitalizacja ciągła oraz zastosowanie funkcji zostanie zilustrowane w punkcie 2.7.1dotyczącym tabel z danymi.Funkcja zwraca wartość logarytmu naturalnego liczby . Liczba ta musi byćdodatnia, bo w przeciwnym razie funkcja zwróci wartość oznaczającą przepełnienieliczbowe. Na przykład: zwróci wartość , zwróci wartość , zwróci wartość , zwróci wartość .W finansach często wykorzystuje się logarytmy (naturalne) zysków, stosując funkcję do przekształcania kwoty zysków w ich logarytmy.Funkcja zwraca wartość pierwiastka kwadratowego liczby . Oczywiście musi być liczbą dodatnią, w przeciwnym razie funkcja zwróci wartość oznaczającą przepełnienie liczbowe.


24 Część I ♦ <strong>Zaawansowane</strong> modelowanie w ExceluFunkcja generuje losową liczbę o rozkładzie jednostajnym, większą lub równązero i mniejszą od jeden. Liczba ta zmienia się po każdym przeliczeniu arkusza. można zastosować do wprowadzania probabilistycznej zmienności w symulacji MonteCarlo wartości opcji.Funkcja zwraca silnię liczby, równą ∗∗∗∗. Naprzykład: zwróci wartość równą .Funkcja zwraca liczbę kombinacji (podzbiorówo rozmiarze ), jakie można utworzyć z podanej liczby elementów(). Podzbiory mogą mieć dowolny porządek. Na przykład, jeśli cena udziałuzmienia się w kierunku „góra” lub „dół” w czterech odrębnych okresach, wówczasliczba sekwencji z trzema wzrostami (i jednym spadkizem) wynosi: lub równoważnie ,czyli mogą wystąpić cztery sekwencje: „góra-góra-góra-dół”, „góra-góra-dół-góra”,„góra-dół-góra-góra” i „dół-góra-góra-góra”. W ujęciu statystycznym oznacza liczbę kombinacji trzech spośród czterech elementów, co zwykle zapisuje sięjako 4 C 3 (lub w postaci ogólnej n C r ).Excel udostępnia funkcje służące do transponowania macierzy, mnożenia macierzy orazdo odwracania macierzy kwadratowych. Są to następującze funkcje: , która zwraca transpozycję tablicy; , która zwraca iloczyn dwóch tablic; , która zwraca macierz odwrotną podanej tablicy.Wszystkie należą do kategorii funkcji matematycznych. Być może przed poznaniemtych funkcji niektórym czytelnikom przyda się krótkie wprowadzenie do teorii macierzy,dlatego zamieściliśmy je na końcu tego rozdziałzu (patrz punkt 2.13).2.3. Funkcje statystyczneExcel udostępnia kilka funkcji umożliwiających szybkie podsumowywanie cech zestawudanych (czyli „tablicy”, jeśli zastosujemy terminologię <strong>Excela</strong>). Są to funkcje zwracająca wartość średnią, , która zwracawartość odchylenia standardowego, oraz i zapewne znanejuż czytelnikowi.Istnieje kilka użytecznych funkcji służących do rozpoznawania rozkładu zestawówdanych o umiarkowanych rozmiarach, które warto poznać. Na przykład funkcja wyznacza wartości kwartyli na podstawie wartości percentyli zestawu danych, a funkcja zwraca pełen rozkład częstości pogrupowanego zestazwu danych.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 25W Excelu istnieją również funkcje dotyczące różnych teoretycznych rozkładów prawdopodobieństwa,w szczególności są to funkcje dotyczące rozkładu normalnego: i dla standardowego rozkładu normalnego,w którym średnia ma wartość 0, a odchylenie standardowe wynosi 1, oraz i dla dowolnego rozkładu normalnego.Innymi użytecznymi funkcjami z kategorii funkcji statystycznych są te operujące nadwóch zmiennych, zwracające wiele różnych wartości wykorzystywanych w analiziekorelacji i regresji. Na przykład: , , , , , .Istnieje również mało znana funkcja , która zwraca podstawowestatystyki regresji w postaci tablicy. Większość wymienionych funkcji zostaniebardziej szczegółowo przedstawiona w punkcie 2.11 opisującym regresję. Wynikiich działania porównamy z danymi wyjściowymi regreszji, zwracanymi przez proceduręAnaliza danych Regresja.W następnym punkcie na podstawie arkuszy Częstość i SNorm z pliku ZMFExcel.xlswyjaśnimy, w jaki sposób należy stosować , oraz inne funkcje rozkładunormalnego.2.3.1. Zastosowanie funkcji CZĘSTOŚĆFunkcja oblicza częstość, z jaką wartościz zestawu danych występują w określonych przedziałach, i zwraca je w postacipionowej tablicy. Parametr jest zbiorem przedziałów, w jakiepogrupowano wartości. Funkcja zwraca dane wyjściowe w postaci tablicy, dlategokoniecznie należy zaznaczyć zakres komórek arkusza, w których zostaną wyświetlonedane wyjściowe, przed wprowadzeniem funkcji.Sposób stosowania funkcji objaśnimy na podstawie przykładowego arkuszaCzęstość z pliku ZMFExcel.xls. Jak widać na rysunku 2.3, w wierszach od czwartegodo siódmego podsumowano miesięczne stopy zwrotu z kolumn D10:D71 oraz logarytmystóp zwrotu (obliczone za pomocą funkcji ) z kolumn E10:E71. Załóżmy, żenaszym celem jest otrzymanie rozkładu częstości logarytmów stóp zwrotu (E10:E71),czyli tak zwanej „tablicy_danych”. Chcielibyśmy w ten sposób sprawdzić, czy rozkładtych stóp zwrotu jest zbliżony do normalnego. Najpierw musimy zdefiniować przedziałygrupowania danych. Analiza maksymalnej i minimalnej wartości logarytmu stóp zwrotuwskazuje, że zakres liczb –0,16 do +0,20 najlepiej jest podzielić na 10 – 12 przedziałów.Wartości wpisane w komórkach G5:G14 stanowią górne granice „przedziałów”,na jakie dzielimy logarytmy stóp zwrotu.


26 Część I ♦ <strong>Zaawansowane</strong> modelowanie w ExceluRysunek 2.3.Arkusz służącydo obliczaniarozkładuczęstościlogarytmówstóp zwrotuRysunek 2.4.Rozkład częstościlogarytmówstóp zwrotuz rozkładamiczęstościprocentowychi skumulowanychAby prawidłowo wprowadzić funkcję , należy zaznaczyć zakres komórekH5:H15. Następnie należy wpisać znak i kliknąć przycisk Wstaw funkcję (oznaczonyjako fx), aby uzupełnić składnię funkcji:Po wpisaniu nawiasu zamykającego „)” i pozostawieniu kursora w wierszu edycji <strong>Excela</strong>,należy wprowadzić funkcję do arkusza i, trzymając wciśnięte klawisze Ctrl i Shift, nacisnąćklawisz Enter. (Konieczne będzie użycie trzech palców, gdyż w przeciwnym raziefunkcja nie zostanie wprowadzona. Jeśli mimo tego operacja się nie powiedzie, należypozostawić zaznaczenie zakresu komórek wyjściowych, nacisnąć klawisz Edycja (F2),wyedytować formułę, jeśli zajdzie taka konieczność, po czym jeszcze raz nacisnąćCtrl+Shift+Enter.)Teraz w komórkach G5:G15 powinna być widoczna formuła zamknięta w nawiasachklamrowych () oraz tablica częstości. Wyniki przedstawione są na rysunku 2.4.W komórce H17 zastosuj funkcję , aby sprawdzić, że częstości sumują się do .Interpretując wyniki, można powiedzieć, że nie istnieją logarytmy stóp zwrotu mającewartość poniżej –0,16, istnieje sześć wartości z przedziału od –0,16 do –0,12 i nie mawartości przekraczających 0,20 (dolna komórka tablicy CZĘSTOŚĆ, czyli G15, zawieraliczbę wartości przekraczających górną granicę przedzziału, wynoszącą 0,20).


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 27Ponieważ funkcja zwraca tablicę, nie ma możliwości zmiany pojedynczychkomórek. Jeśli zajdzie konieczność zdefiniowania innej liczby przedziałów, niezbędnebędzie usunięcie tablicy wyjściowej i wprowadzenie fzunkcji na nowo.Pomocne może okazać się przekształcenie częstości w częstości procentowe (względemrozmiaru zestawu danych, zawierającego 62 wartości), a następnie obliczenie skumulowanychczęstości procentowych tak, jak w kolumnach I oraz J na rysunku 2.4. Formułyczęstości procentowych i skumulowanych częstości procentowych można przeanalizowaćw arkuszu Częstość.Najlepszym sposobem zaprezentowania skumulowanych częstości procentowych jestzamieszczenie ich na wykresie XY i połączenie punktów danych linią bez znaczników.Aby utworzyć wykres jak na rysunku 2.5, należy zaznaczyć jako dane źródłowe zakresyG5:G14 i J5:J14. W celu jednoczesnego zaznaczenia zakresów komórek, które niesąsiadują ze sobą, należy najpierw zaznaczyć pierwszy zakres, a następnie trzymającwciśnięty klawisz Ctrl, zaznaczyć drugi i kolejne zakresy.Rysunek 2.5. Wykres skumulowanych częstości procentowych (dane rzeczgywiste oraz wartościścisłego rozkładu normalnego)Jeśli stopy zwrotu mają rozkład normalny, rozkład skumulowany powinien mieć kształtzbliżony do litery S (jak linia przerywana). Rzeczywiste wartości logarytmów stópzwrotu odbiegają nieco od wartości rozkładu normalnego, co może wynikać ze skośności.2.3.2. Zastosowanie funkcji KWARTYLFunkcja zwraca kwartyl zestawu danych. Druga danawejściowa, kwartyl, jest liczbą całkowitą określającą, który kwartyl ma zostać zwrócony:jeśli będzie mieć wartość 0, wówczas zwrócona zostanie najmniejsza wartośćz tablicy; jeśli 1, zwrócony zostanie kwartyl pierwszy (czyli 25. percentyl tablicy); jeśli 2,zwrócona zostanie mediana (percentyl 50.); jeśli 3, kwartyl trzeci (percentyl 75.); jeśli 4,zwrócona zostanie wartość maksymalna.Dzięki kwartylom można szybko i stosunkowo łatwo uzyskać skumulowany rozkładzestawu danych. Na przykład wpisanie w komórce H22 na rzysunku 2.6 formuły:


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 31Rysunek 2.9.Formuły funkcjii ich wynikiw arkuszuWyszukiwanieKolejnymi funkcjami wyszukiwania są oraz , również przedstawionena rysunku 2.8. Funkcja zwraca względną pozycję takiej danej z tabeli zawizerającej jednąkolumnę (lub wiersz), która pasuje do podanej wartości w podanej kolejności (). Należy zwrócić uwagę, że funkcja zwróci położenie w tabeli, a nie samąwartość.Jeśli wartością parametru będzie , funkcja zwróci położenie danejdokładnie odpowiadającej szukanej wartości (), bez względu na porządektablicy. Jeśli jego wartością będzie , zwrócone zostanie położenie wartościw przybliżeniu odpowiadającej szukanej wartości przy założeniu, że tablica jest uporządkowanarosnąco. Jeżeli natomiast będzie równy , wówczas funkcjazwróci położenie wartości w przybliżeniu odpowizadającej wartości zakładając, że tablica jest posortowana w porządku mzalejącym.Na rysunku 2.8 wartości opcji kupna znajdujące się w kolumnie G są uporządkowanerosnąco. Aby znaleźć pozycję wartości z tablicy, która odpowiada wartości 9,73, formuław komórce D22 powinna mieć postać:Zwróci ona wartość wskazującą na szóstą pozycję w tablicy G17:G27.Funkcja zwraca wartość z tablicy, położonąw wierszu i kolumnie o podanych numerach. Numery kolumny i wiersza znajdujące sięw komórkach C25 i C26 zapewniają, że wyrażenie , przedstawione na rysunku2.9, zwróci wartość z szóstego wiersza drugiej kolumnyz tablicy F17:G27.Jeśli tablica posiada tylko jedną kolumnę (lub tylko jeden wiersz), wówczas (albo ) jest niepotrzebny i zostawia się go pustym. Można sprawdzić, jakzadziała w przypadku takich tablic, zmieniając dane wejściowe w formule znajdującejsię w komórce D27.Funkcje , i będziemy stosować w części książkidotyczącej akcji.


32 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu2.5. Inne funkcjeOpracowując formuły w arkuszach tam, gdzie było to możliwe, staraliśmy się tworzyćformuły „ogólne”, których składnia uwzględniałaby pokrewne lecz różne przypadki.Na przykład wartość przepływu pieniężnego w którymś roku dla którejś z obligacjiz rysunku 2.10 mogłaby być zerowa, równa wartości kuponu lub równa wartości obligacjipowiększonej o wartość kuponu.Rysunek 2.10.Formuła ogólnazawierającaróżne adresyi zagnieżdżonefunkcje JEŻELIz arkusza ObligacjeFunkcja zwróci odmienne wyniki dla każdego z dwóch warunków. Można równieżnapisać zagnieżdżoną instrukcję w taki sposób, by mogła zwracać trzy różnewyniki (a nawet więcej, jeśli zagnieżdżenie zostanie rozwinięte na dalsze poziomy). Formułaprzepływu pieniężnego w komórce C11 zawierająca jeden poziom zagnieżdżenia:zwróci wartości przepływów pieniężnych dla każdego typu obligacji i dla każdego roku,jeśli zostanie skopiowana do komórek z zakresu C11:H13.W przypadku obligacji typu 1. wartość przepływu pieniężnego będzie zależeć od roku(komórka B11) oraz terminu wykupu (C6). Jeśli rok będzie wcześniejszy niż terminwykupu (), wartość przepływu pieniężnego będzie równa wartości kuponuz komórki C5; jeśli osiągnięty zostanie termin wykupu (), wartość przepływupieniężnego będzie równa wartości obligacji powiększonej o wartość kuponu ();w pozostałych przypadkach () przepływ pieniężny będzie miał wartość 0. Zagnieżdżonainstrukcja obsługuje przypadki, gdy termin wykupu obligacji został osiągniętylub przekroczony, a pierwszy warunek w zewnętrznej instrukcji obsługujeprzypadki płatności kuponowych.W formule zastosowano „adresowanie mieszane”, aby zapewnić, że po jej skopiowaniuzmienią się odpowiednio znajdujące się w niej adresy komórek. Napisaliśmy i ,aby zapewnić, że po wkopiowaniu formuły kolumna C i wiersze 5. i 6. nadal będą odwoływaćsię do odpowiedniego terminu wykupu i wartości kuponu. Jednak zmienisię na oraz dla innych lat. Napisaliśmy , dzięki czemu po skopiowaniuformuły do kolumny D rok nadal będzie odczytywany z kolumny B, natomiast i zmienią się na i .Dokładne przemyślenie i napisanie tej formuły zwróci się z nawiązką, jeśli weźmiemy poduwagę czas, jaki zaoszczędzimy w trakcie powielaniaz jej w ramach większego modelu.


34 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu2.7. Tabele danychTabele danych pozwalają na wykonywanie sekwencji powtarzalnych obliczeń wartościformuł znajdujących się w komórkach bez konieczności ponownego ich wpisywaniaczy kopiowania. W skoroszycie ZMFExcel można znaleźć kilka przykładowych tabeldanych. Wykorzystując obliczanie czynnika dyskontowego i kapitalizacji w arkuszuKapitalTabD, przedstawiamy tabelę danych z jedną zmienną wejściową, jak równieżtabelę z dwiema zmiennymi wejściowymi. Kolejny arkuszz, noszący nazwę BSTabD,zawiera inne przykłady zastosowania tabel danych, które jeszcze bardziej powinnyprzybliżyć ich rolę.2.7.1. Tworzenie tabel danychz jedną zmienną wejściowąRysunek 2.13 przedstawia arkusz, w którym obliczany jest czynnik kapitalizacji odpowiadającykapitalizacji ciągłej dla stopy nominalnej równej 5% w okresie jednego roku(wynik widoczny jest w komórce C10). Czynnik dyskontowy odpowiadający stopienominalnej w wysokości 5% dla jednego roku znajduje się w komórce D10. Na arkuszuprzedstawiono również formuły znajdujące się w komórkach, służące do obliczaniaobu czynników.Rysunek 2.13.Układ tabeli danychz jedną zmiennąwejściową,znajdującej sięw arkuszuKapitalTabDZałóżmy, że chcemy zbudować tabelę czynników kapitalizacji i dyskontowych dlaokresów o różnej długości, na przykład t = 1, 2, aż do 10 lat. Aby wykorzystać do tegocelu tabelę danych, należy najpierw w odpowiedni sposób rozmieścić dane, tak jakw wierszu 16. i następnych.Formuła (formuły) służące do wykonywania obliczeń znajdują się w górnym wierszutabeli (wiersz 16.). Zatem formuła w komórce D16 ma postać , czyli w komórcestosowana jest po prostu formuła z komórki C10. Analogicznie, w komórce E16 wpisano


36 Część I ♦ <strong>Zaawansowane</strong> modelowanie w ExceluRysunek 2.15.Układ tabeli danychz dwiema zmiennymiwejściowymi,znajdującej sięw arkuszuKapitalTabDgórnym rogu tabeli (C30) zawiera formułę, na podstawie której zostaną obliczone wartościwspółczynnika dla wszystkich kombinacji wartości stopy procentowej i okresu.Formuła w komórce C30 ma postać , a więc stanowi odniesienie do formuły obliczaniawspółczynnika dyskontowego.Aby zakończyć tworzenie tabeli danych, należy: Zaznaczyć zakres tabeli, czyli komórki C30:I40. W menu wybrać pozycje Dane i Tabela. W oknie dialogowym w polu: Kolumnowa komórka wejściowa wpisać Wierszowa komórka wejściowa wpisać a następnie kliknąć OK.Wyniki tych czynności są przedstawione na rysunku 2.16. Można sprawdzić, że wartościotrzymane dla stopy równej 5% zgadzają się z wartościami otrzymanymi wcześniej,widocznymi na rysunku 2.14.Rysunek 2.16.Tabela danychzawierającaczynniki dyskontowedla różnychstóp procentowychi okresówo różnej długościTabele danych nadają się przede wszystkim do przeprowadzania analiz typu „co jeśli”w niezwykle prosty sposób. Dobrą wiadomością jest to, że tabele automatycznie uwzględniajązmiany wprowadzone w modelu. Jest jeszcze druga, zła wiadomość: jeśli w arkuszuznajduje się większa liczba tabel z danymi, ich ciągłe przeliczanie może znaczniezmniejszyć szybkość, z jaką będą uwzględniane zmiany polegające na dodawaniunowych pozycji lub modyfikacji wartości już obecnych w arkuszu. Z tego właśnie powodumożliwe jest wyłączenie automatycznego przeliczaznia tabel.Konstruując tabele danych, należy pamiętać o kilku rzezczach: Obecnie Excel wymaga, by komórki wejściowe tabeli danyzch znajdowały sięw tym samym arkuszu co tabela.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 37 Komórki tabeli danych zawierają formuły tablicowe, czyzli mają onena przykład postać , gdzie C5 i C7 są komórkamiwejściowymi. Z tego względu nie istnieje możliwość edzytowania pojedynczejformuły znajdującej się w tabeli. W celu przebudowania lub rozszerzenia tabeli danych nazleży zaznaczyćwszystkie komórki zawierające formułę , a następnie z menuEdycja wybrać pozycję Wyczyść wszystko lub nacisnąć Delete. Każda zmiana wartości wejściowych lub wartości zmiennzych spowodujeponowne przeliczenie tabeli danych, chyba że wyłączonaz zostanie domyślnametoda automatycznego przeliczania.W przypadku dużych modeli, w których przeliczanie tabeli po każdorazowej zmianiezabiera dużo czasu, może zajść konieczność wyłączenia opcji automatycznego przeliczaniatabel danych. W tym celu należy: z menu wybrać pozycję Narzędzia oraz Opcje, wybrać zakładkę Przeliczanie, po czym zaznaczyć Automatycznez wyjątkiem tabel.Po wyłączeniu automatycznego przeliczania wszystkie tabele będą ponownie przeliczanepo naciśnięciu klawisza F9.Jeśli znasz już formułę Blacka-Scholesa wyceny opcji, możesz utrwalić wiedzę na temattabel danych, konstruując trzy tabele proponowane w arkuszu BSTabD. Dzięki nimmożliwe będzie przeanalizowanie wrażliwości wartości opcji zakupu z formuły Blacka-Scholesa na zmiany bieżącej ceny akcji S oraz na zmiany wartości innych zmiennychwejściowych.2.8. Wykresy XYW Excelu można tworzyć wykresy różnych typów, lecz dla celów matematycznych,naukowych i finansowych zaleca się stosowanie wykreszu XY (Punktowego). Tam,gdzie nie spowoduje to dwuznaczności, będziemy o tym wykresie mówić po prostujako o wykresie XY. Ważną rzeczą jest to, że na wykresie XY obie osie, czyli X i Y,są skalowane liczbowo. We wszystkich pozostałych wykresach posiadających dwie osie(w tym w wykresie liniowym) skalowane liczbowo są tylko osie pionowe, natomiast naosiach X wyświetlane są etykiety.By utworzyć wykres XY, korzysta się z Kreatora wykresów, który przeprowadza użytkownikaprzez cztery kroki noszące nazwy Typ wykresu, Źródło danych, Opcje wykresuoraz Położenie wykresu. Zakładając, że niemal za każdym razem będziemy tworzyćwykres XY osadzony w arkuszu, najważniejszym spośród tych czterech kroków będziekrok drugi — Źródło danych. Kolejne kroki przedstawimy, opierając się na wartościachz tabeli danych z jedną zmienną wejściową opisaną w zpunkcie 2.7.1 i przedstawionąna rysunku 2.14. Wartości z tabeli danych, które chcemy zamieścić na wykresie,


38 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Exceluznajdują się w arkuszu KapitalTabD w komórkach z zakresu C17:E26. Kolumna C zawierawartości x, a na wykresie mają znaleźć się odpowiadające im wartości z kolumnD i E. Po zaznaczeniu danych, które chcemy zobaczyć na wykresie, należy wykonaćnastępujące czynności:1. Na głównym pasku narzędzi kliknąć przycisk Kreator wykresów(wyglądający jak miniaturowy wykres). W oknie dialogowzym pierwszegokroku (widocznym na rysunku 2.17) należy wybrać Typ wykresu — w naszymprzypadku będzie to XY (Punktowy) — oraz jego podtyp: wygładzonyliniowy bez znaczników. Następnie należy kliknąć przyzcisk Naciśniji przytrzymaj, aby zobaczyć przykład. Jeśli przykład jest prawidłowy,przechodzimy dalej, klikając przycisk Dalej.Rysunek 2.17.Okno dialogowe,w którym określa siętyp wykresuPrzyciskKreatorwykresów2. W oknie dialogowym kroku 2. upewnij się, że na zakładcze Zakres danychwidnieje prawidłowy Zakres danych — zauważ, że Excel zintepretuje ten blokdanych jako serię trzech kolumn. Następnie kliknij zakzładkę Serie, na którejzdefiniowane będą wartości X i Y dla nazwy Serie1. Kliknij pole Nazwai wprowadź nazwę dla aktywnej serii — w tym celu możzesz zaznaczyćkomórkę arkusza lub wpisać ją ręcznie (np. ). Rysunek 2.18przedstawia to okno dialogowe na chwilę przed zmianzą nazwy Serie2na , czyli zawartość komórki E15. Kliknij przycisk Dalej,by kontynuować.3. W oknie dialogowym kroku 3. ustaw opcje wykresu: tytułz, linie siatki,pokazywanie (lub nie) legendy itd. Do naszego wykresu zwystarczy dodaćtytuły i wyłączyć wyświetlanie linii siatki, jak pokzazano to na rysunku 2.19.Kliknij przycisk Dalej, by kontynuować.4. W oknie dialogowym kroku 4. należy określić Położenie wykresu. Wykresmoże zostać utworzony w postaci obiektu w arkuszu (wyzkresu osadzonego)lub w oddzielnym arkuszu. Zwykle lepiej jest tworzyć zwykresy osadzonepozwalające obserwować efekty zmian w danych, jak ma zto miejscena rysunku 2.20.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 39Rysunek 2.18.Okno dialogowe,w którym definiujesię wartości X i Ydanych źródłowychRysunek 2.19.Okno dialogowe,w którym ustawia sięOpcje wykresuRysunek 2.20.Okno dialogowe,w którym definiuje sięPołożenie wykresuAby uzyskać bardziej profesjonalny efekt, we wstępnej wersji wykresu przedstawionegona rysunku 2.21 należałoby wprowadzić pewne kosmetyczne zmiany, przedewszystkim korzystając z poleceń Formatuj obszar kreślenia i ustawiając Obszar naBrak, formatując osie poprzez wywołanie polecenia Formatuj osie i analogicznie Formatujtytuł wykresu oraz Formatuj legendę. Często zmian wymagają również skale osi,rozmiar czcionki w tytułach itd. oraz rozmiar samego wykresu. Czasami będziemychcieli, by linie obrazujące serie danych zawierały oznaczenie poszczególnych punktów


40 Część I ♦ <strong>Zaawansowane</strong> modelowanie w ExceluRysunek 2.21.Wstępna wersjawykresuutworzona przezKreator wykresów(można to osiągnąć, wracając do serii danych i zmieniając formatowanie). Odpowiedniomodyfikując wstępną wersję wykresu, można otrzymać wersję lepiej wykończoną, takąjak widoczna na części rysunku 2.14.2.9. Udostępnianie analizy danychi SolveraExcel posiada również pewne dodatkowe moduły dostępne po zainstalowaniu pełnejwersji, których może brakować, jeśli wybrany został sposób instalacji oszczędzającyprzestrzeń na dysku. Będziemy korzystać zarówno z Solvera, jak i z procedury Regresjadostępnej w Analysis ToolPak, warto więc sprawdzić w menu Narzędzia, czy obate narzędzia są dostępne. Na rysunku 2.22 zaznaczone są opcje udostępniające Solveraoraz Analizę danych. Jeśli któregoś z tych narzędzi nie ma w menu Narzędzia, kliknijpozycję Dodatki (w tym samym menu). Upewnij się, że zaznaczone są opcje AnalysisToolPak, Analysis ToolPak — <strong>VBA</strong> oraz Solver, tak jak przedstawia to rysunek 2.22,a następnie kliknij przycisk OK. Powinno to spowodować, że Solver i Analiza danychpojawią się w menu Narzędzia.Korzystanie z Solvera najlepiej można wyjaśnić na przykładzie problemu optymalizacji,dlatego zajmiemy się nim w punkcie 6.5 części „<strong>Zaawansowane</strong> <strong>modele</strong> akcji”, w którymza jego pomocą będziemy szukać optymalnych wag portfezla.Zanim przejdziemy do analizy regresji z <strong>wykorzystaniem</strong> funkcji i Analysis ToolPak,opiszemy pokrótce nazwy zakresów przydatne do zaznaczania i odwoływania się dodużych zakresów danych.2.10. Stosowanie nazw zakresówRysunek 2.23 przedstawia początkowe wartości stóp zwrotu z AkcjaA oraz Indeks,obecnych w arkuszu Beta w skoroszycie ZMFExcel. W następnym punkcie przeprowadzimyanalizę regresji stóp zwrotu z akcji względem stóp zwrotu z indeksu, aby


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 41Rysunek 2.22.Menu NarzędziazawierająceAnalizę danychi Solvera orazokno dialogoweDodatkiRysunek 2.23.Zakres danychposiadający nazwę,przycisk Wklej nazwyoraz okno dialogoweDefiniuj nazwyPrzycisk Wklej nazwysprawdzić, czy istnieje między nimi jakaś zależność. W trakcie definiowania procedurobliczeniowych pomocne okaże się nadanie „nazw” zakresom komórek zawierającychdane, na przykład dla zakresu danych B5:B64 oraz dla stóp zwrotuz indeksu z komórek C5:C65.Po zaznaczeniu zakresu komórek, któremu chcemy nadać nazwę, możemy wpisać jąw polu nazwy widocznym po lewej stronie zaraz pod głównym paskiem menu, pokazanymna rysunku 2.23. Od tego momentu nazwa AkcjaA będzie dołączona do zakresukomórek B5:B64 z arkusza Beta. Inną metodą nadania nazwy zaznaczonemu zakresowikomórek jest wybranie z menu pozycji Wstaw/Nazwa/Definiuj, a następnie wpisanie


42 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelunazwy w wywołanym oknie dialogowym (również przedstawionym na rysunku2.23). Od tej chwili możliwe będzie zaznaczanie lub odwoływanie się do komórekzawierających stopy zwrotu przez podanie nazwy zakresu, na przykład przez wybieraniepozycji AkcjaA z pola nazw, a także stosowanie ich w funkcjach przy użyciu przyciskuWklej nazwy.2.11. RegresjaZakładamy, że czytelnikowi nieobca jest prosta analiza regresji (z dwiema zmiennymi),którą będziemy przeprowadzać w części książki dotyczącej akcji. W tym punkcie pokażemy,w jaki sposób można zastosować <strong>Excela</strong> do wykonania niezbędnych w trakcie tejanalizy obliczeń. W rzeczywistości analizę regresji można przeprowadzać na kilka sposobów,a główna linia podziału przebiega między zastosowaniem funkcji <strong>Excela</strong> a procedurąRegresja z Analysis ToolPak. Oba sposoby przedstawimy na przykładzie prostejanalizy regresji między stopami zwrotu z akcji i indeksu znajdującymi się na arkuszuBeta skoroszytu ZMFExcel: najpierw zastosujemy funkcje <strong>Excela</strong>, a następnie posłużymysię procedurą Regresja narzędzia Analiza danych. Jeśli te funkcje i procedury niesą znane czytelnikowi, można przetestować ich działanzie w arkuszu Beta.Excel udostępnia funkcje dla najczęściej wymaganych statystyk regresji. Na rysunku2.24 widoczne są funkcje oraz , z których składa się równanie regresji,a także dwie miary dopasowania, to jest współczynnik R 2 oraz odchylenie standardowereszt (funkcja od „regresja błąd standardowy”). W poprzednim punkcienadaliśmy zakresom danych nazwy, a więc teraz możemy dołączyć je do okna Wklejfunkcje, klikając przycisk Wklej nazwy. Funkcje te mają charakter dynamiczny, to znaczyzwracane przez nie wyniki mogą się zmieniać w momencie modyfikacji danych (należącychdo zakresów AkcjaA lub Indeks).Rysunek 2.24.Funkcje <strong>Excela</strong>do analizy regresji,znajdujące sięw arkuszu BetaOprócz pojedynczych funkcji dostępna jest również funkcja tablicowa , którana podstawie dwóch kolumn wejściowych ze stopami zwrotu zwraca tablicę zawierającąpodstawowe parametry regresji. Należy pamiętać, by przed wstawieniem funkcji zaznaczyć odpowiednio duży obszar komórek, w których znajdą się wynikijej działania. Dla regresji prostej zwykle wystarczy zaznaczyć obszar o wielkości dwóchkolumn i pięciu wierszy. Rysunek 2.25 przedstawia formularz Argumenty funkcji, naktórym zdefiniowano funkcję , zaznaczając uprzednio dladanych wyjściowych zakres komórek F40:G44. Pole Stała pozostało puste, a wartośćwpisana w polu Statystyka zapewnia, że zwrócona zostanie pełna tablica wynikówstatystycznych.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 43Rysunek 2.25.Definiowaniefunkcji tablicowejREGLINPw formularzuArgumenty funkcjiNa rysunku 2.26 przedstawiono tablicę wyjściową wraz z opisem jej pól. Oprócz nachyleniai odciętej (nazwanych w arkuszu odpowiednio Beta i Alfa) zwraca równieżstandardowe wartości błędów oraz podstawową analizęz wariancji.Rysunek 2.26.Tablica wyjściowafunkcji REGLINPwywołanej na danychdotyczących stópzwrotu, znajdującychsię w arkuszu BetaZajmijmy się teraz procedurą Regresja wchodzącą w skład Analysis ToolPak. Aby jązdefiniować, wybierz z menu pozycję Narzędzia, potem Analiza danych i Regresja —pojawi się wówczas okno dialogowe przedstawione na rysunku 2.27. Również w tymprzypadku odwołania do zakresów wejściowych X i Y można zdefiniować, zaznaczajączakresy komórek lub, jeśli zakresy te zostały nazwane, wklejając ich nazwy. Zwyklewygodniej jest wskazać lewą górną komórkę zakresu wyjściowego niż zostawiać opcjędomyślną (czyli zapisanie danych wyjściowych w nowym zarkuszu).Rysunek 2.27.Definiowanieparametrówobliczeniowychi wyjściowychprocedury Regresjaz Analysis ToolPak


46 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu2.13. Algebra macierzyi związane z nią funkcjeW algebrze powszechnie stosuje się zapis macierzowy, ponieważ pozwala on na wyrażaniew zwartej formie układów podobnie zdefiniowanych równań. Zaskakujące możebyć to, że działania na macierzach bardzo przypominają zwykłe działania algebraiczne,jedynie mnożenie macierzy jest nieco bardziej skomplikowane. Excel posiada zbiórprzydatnych funkcji macierzowych znajdujących się w kategorii Matematyczne, którychpełne zrozumienie wymaga przyswojenia sobie podstawowych wiadomości na tematfunkcjonowania macierzy. W następnych punktach objaśnimy zasady zapisu macierzowegooraz przybliżymy operacje transpozycji, dodawania, mnożenia i odwracania macierzy.Przykłady ilustrujące te operacje pochodzą z arkusza MacDef, z pliku ZMFExcel.Czytelnicy posiadający gruntowną wiedzę na temat macierzy mogą od razu przejść dopodsumowania funkcji macierzowych (punkt 2.13.7).2.13.1. Wprowadzenie do teorii macierzyW algebrze prostokątne tablice liczb nazywa się macierzami. Pojedyncza kolumnamacierzy to tak zwany wektor kolumnowy i, analogicznie, pojedynczy wiersz macierzyto wektor wierszowy. W Excelu prostokątne bloki komórek nazywa się tablicami.Wszystkie przedstawione poniżej bloki liczb można trazktować jako macierze:2 [ 6 7 ]⎡ ⎤⎢ ⎥⎣4⎦⎡− 3⎢⎢2⎢⎣722097 ⎤19⎥⎥21⎥⎦⎡− 3⎢⎢2⎢ 7⎢⎣ 02209137 ⎤19⎥⎥21⎥⎥3 ⎦gdzie nawiasy | | są standardowym zapisem. Jeśli nazwiemy te macierze odpowiedniojako x, y, A i B, x będzie wektorem kolumnowym, a y wektorem wierszowym. MacierzA składa się z trzech wierszy i trzech kolumn, jest więc macierzą kwadratową. B niejest natomiast macierzą kwadratową, ponieważ posiada cztery wiersze i trzy kolumny— jest to więc macierz o wymiarach 4 na 3. Liczba wierszy, r, i kolumn, c, wyznaczawymiar macierzy, zapisywany czasami w postaci (r×c). Na przykład jeśli:⎡x =2 ⎤⎢ ⎥ oraz y = [ 6 7 ]⎣4⎦wówczas x jest macierzą o wymiarze (2×1), a y ma wymiar (1×2).2.13.2. Transpozycja macierzyTranspozycja macierzy polega na przekształceniu wierszy w kolumny i odwrotnie.W wyniku transpozycji wektora kolumnowego x otrzymamy więc wektor wierszowyi oznaczymy go jako x T . We fragmencie arkusza kalkulacyjnego przedstawionego narysunku 2.32 widnieją wektory powstałe w wyniku transpozycji wektora kolumnowegox i wektora wierszowego y.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 47Rysunek 2.32.Operacjena macierzachwykonane w arkuszuMacDefFunkcja zastosowana względem komórek tablicy zwróci jej transpozycję.Na przykład w wyniku transpozycji wektora x o wymiarze 2 na 1 zapisanego w komórkachC4:C5 powstanie wektor o wymiarze (1×2). Aby zastosować funkcję ,zaznacz zakres komórek I4:J4 i wpisz formułę:a następnie naciśnij jednocześnie klawisze Ctrl+Shift+Enter. Wynik tej operacji przedstawiarysunek 2.32.2.13.3. Dodawanie macierzyDodawanie dwóch macierzy sprowadza się do dodania odpowiadających sobie pozycjitych macierzy. Aby działanie to było możliwe, dodawane do siebie macierze musząmieć ten sam wymiar. Macierzy x i y nie można więc do siebie dodać, natomiast x i y Tmają ten sam wymiar 2 na 1, a więc można przeprowadzić na nich dodawanie. Wynikiemtego działania będzie:x + y T =⎡2 ⎤ ⎡6 ⎤ ⎡ 8 ⎤⎢ ⎥ +⎣4⎢ ⎥ =⎦ ⎣7⎢ ⎥ ⎦ ⎣11⎦= z (na przykład)Aby pomnożyć wektor y przez, powiedzmy, 10, należy pomnożyć każdą jego pozycjęprzez 10. Zatem:10y = 10 ∗ [ 6 7]= [ 60 70]Ten sam wynik otrzymamy, dodając y do siebie 10 razy.2.13.4. Mnożenie macierzyAby możliwe było mnożenie dwóch macierzy, muszą one mieć wspólne wymiary, toznaczy liczba kolumn jednej macierzy musi być równa liczbie wierszy drugiej. W skróciemówi się o tym jako o „zgodności wymiarów”. Aby móc obliczyć iloczyn xy, kolumnymacierzy x muszą odpowiadać wierszom macierzy y, czyli mnożąc (2×1) razy (1×2)otrzymamy na wyjściu macierz (2×2).Na rysunku 2.32 elementy iloczynu xy widocznego w komórkach C10:D11 zostałyobliczone następująco:


48 Część I ♦ <strong>Zaawansowane</strong> modelowanie w Excelu2 ∗ [ 7]⎡ ⎤⎢ ⎥⎣4⎦⎡2∗ 6 2 ∗ 7⎤⎡1214⎤6 = ⎢ ⎥ =⎣4∗ 6 4 ∗ 7⎢ ⎥ ⎦ ⎣2428 ⎦to znaczy element w pierwszym wierszu i pierwszej kolumnie iloczynu xy jest wynikiemmnożenia poszczególnych elementów z pierwszego wiersza macierzy x przez elementyz pierwszej kolumny macierzy y itd.Natomiast iloczyn xy będzie miał wymiar (1×2) razy (2×1) równy (1×1), czyli będzieposiadał tylko jeden element. Element iloczynu xy znajdującego się w komórce C13obliczany jest następująco:⎡ ⎤6 ∗ ⎢ ⎥⎣4⎦[ 7]2 = [ 6 ∗ 2 + 7 ∗ 4 ] = [ 40]Na przykładzie uzyskanych wyników widać, że w przypadku operacji na macierzach xynie jest tożsame z yx. Kolejność mnożenia ma więc znaczenie.Funkcja tablicowa zwraca iloczyn dwóch macierzy nazwanych i . Aby wyznaczyć elementy iloczynu macierzy xy, mającego wymiar (2×2),zaznacz zakres o wymiarze 2 na 2 komórki (C10:D11) i wpisz lub, korzystając z przyciskuWstaw funkcję, zdefiniuj na formularzu funkcji wyrażenie:pamiętając przy tym, by na zakończenie nacisnąć klawizsze Ctrl+Shift+Enter.Jeśli zakresy C4:C5 i C7:D7 będą nosić odpowiednio nazwy x i y, wówczas wystarczywpisać formułę o prostszej postaci:Rozważmy jeszcze dwie tablice:C =⎡12⎢⎣ 34 ⎤13⎥ ⎦oraz D =⎡16⎢⎣ 51912− 2⎤14⎥ ⎦Macierz C ma wymiar (2×2), a wymiarem D jest (2×3), a zatem — ponieważ liczbakolumn macierzy C jest równa liczbie wierszy macierzy D — można obliczyć iloczynCD o wymiarze (2×3):⎡ ( 12 ∗16+ 4 ∗5) ( 12 ∗19+ 4 ∗12) ( −12∗ 2 + 4 ∗14)CD =( ) ( ) ( ) ⎥ ⎤⎢⎣ 3∗16+ 13∗53∗19+ 13∗12− 3∗2 + 13∗14⎦⎡212276 32 ⎤= ⎢⎥⎣113213 176 ⎦Z drugiej jednak strony niemożliwe jest wyznaczenie iloczynu DC ze względu naniezgodność wymiarów (liczba kolumn macierzy D jest różna od liczby wierszy w macierzyC). Ogólnie mówiąc, mnożenie macierzy nie jest przemienne, dlatego zazwyczajCD ≠ DC, tak jak w tym przypadku.=


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 49Jeśli C i D są nazwami odpowiednio tablic o wymiarze 2 na 2 i 2 na 3, wówczas formuła:wygeneruje elementy tablicy będącej ich iloczynem o wzymiarach 2 na 3.2.13.5. Odwracanie macierzyMacierz kwadratową I, w której wszystkie elementy na przekątnej mają wartość 1,a wszystkie pozostałe elementy mają wartość 0, nazywamy macierzą jednostkową.Zatem:I =⎡1⎢⎢0⎢0⎢⎢...⎢⎣0010...0001...0...............0⎤0⎥⎥0⎥⎥... ⎥1⎥⎦jest macierzą jednostkowąZałóżmy, że D jest macierzą o wymiarach (2×3), którą zastosowaliśmy wcześniej, a Ijest macierzą jednostkową o wymiarach (2×2). Wówczas:ID =⎡1⎢⎣00⎤1⎥ ⎦∗⎡16⎢⎣ 51912− 2⎤14⎥ ⎦⎡1619 − 2⎤= ⎢ ⎥⎣ 5 12 14 ⎦= DMnożenie dowolnej macierzy przez macierz jednostkową o właściwych wymiarachnie ma wpływu na macierz początkową (i przez to jest tożsama z pomnożeniem tejmacierzy przez 1).Załóżmy teraz, że A jest macierzą kwadratową o wymiarze n, czyli ma wymiary n na n.Macierz kwadratową A –1 (również mającą wymiar n) nazywamy macierzą odwrotną domacierzy A, jeśli:A –1 A = AA –1 = INa przykład jeśli:A =⎡− 3⎢⎢2⎢⎣722097 ⎤19⎥⎥21⎥⎦to A –1 =⎡−0,175⎢⎢− 0,064⎢⎣0,086− 0,0150,079− 0,0290,072 ⎤− 0,050⎥⎥0,045 ⎥⎦orazAA –1 = I =⎡1⎢⎢0⎢⎣00100⎤0⎥⎥1⎥⎦


50 Część I ♦ <strong>Zaawansowane</strong> modelowanie w ExceluRysunek 2.33.Odwracaniemacierzywykonanew arkuszuMacDefWyznaczanie macierzy odwrotnej do danej może się okazać zadaniem bardzo czasochłonnym.Na szczęście znajdzie ją za nas funkcja . Na przykład, aby znaleźćmacierz odwrotną do macierzy A widocznej we fragmencie arkusza na rysunku 2.33,zaznacz zakres I17:K19 o wymiarach 3 na 3 komórki, a następznie wpisz formułę tablicową:Możesz się przekonać, że wynikiem jest rzeczywiście macierz odwrotna — wystarczywykonać mnożenie macierzy AA –1 .2.13.6. Rozwiązywanie układów równoważnychrównań liniowychMacierze odwrotne są stosowane między innymi w trakcie rozwiązywania układówrównań, takich jak poniższy:−3x1+ 2x2+ 7x3= 202x+ 20x+ 19x= − 512 37x+ 9x+ 21x= 0123Układ ten można zapisać w postaci macierzy, jako Ax = b, gdzie:A =⎡− 3⎢⎢2⎢⎣722097 ⎤19⎥⎥21⎥⎦b =⎡20⎤⎢ ⎥⎢− 5⎥⎢⎣0 ⎥⎦oraz x =⎡x1⎤⎢ ⎥⎢x2⎥⎢⎣x ⎥3 ⎦Rozwiązanie uzyskuje się, mnożąc lewostronnie obie strony równania przez macierzodwrotną do A:A –1 Ax = A –1 b, wówczas Ix = A –1 b, czyli x = A –1 bWidoczny na rysunku 2.33 wektor x będący rozwiązaniem tego równania uzyskanodzięki wstawieniu w zakresie komórek I21:I23 funkcji mnozżenia macierzy w postaci:Nie każdy układ równań liniowych może mieć rozwiązanie, a w niektórych przypadkachmoże on mieć wiele rozwiązań. Układ Ax = b posiada tylko jedno rozwiązanie,jeśli macierz A jest kwadratowa i istnieje macierz do niej odwrotna A –1 . Wówczasrozwiązanie jest wyznaczane równaniem x = A –1 b.


Rozdział 2. ♦ <strong>Zaawansowane</strong> funkcje i procedury <strong>Excela</strong> 512.13.7. Podsumowanie funkcji macierzowychw ExceluPodsumowując, Excel posiada funkcje służące do transponowania macierzy, mnożeniamacierzy oraz do odwracania macierzy kwadratowych. Sąz to następujące funkcje:zwraca transpozycję tablicyzwraca iloczyn dwóch tabliczwraca macierz odwrotną do tablicyKażda z tych funkcji zwraca w wyniku tablicę, której rozmiar należy ocenić z wyprzedzeniem.Po zaznaczeniu zakresu komórek o odpowiednim rozmiarze należy wpisaćformułę (lub uzyskać ją, naciskając przycisk Wstaw funkcję, i zdefiniować na formularzuformuły). Zostanie ona wprowadzona do komórek z zaznaczonego obszaru po naciśnięciukombinacji klawiszy Ctrl+Shift+Enter (a nie tylko Enter). Jeśli operacja się niepowiedzie, pozostaw zaznaczenie zakresu komórek wyjściowych, naciśnij klawisz edycji(F2), wyedytuj formułę, jeśli jest to konieczne, po czym znów naciśnij Ctrl+Shift+Enter.Aby utrwalić swoje umiejętności, wykonaj ćwiczenia na zmacierzach w arkuszu MacĆwicz.Funkcje macierzowe będziemy często stosować w części „<strong>Zaawansowane</strong> <strong>modele</strong> akcji”książki — zarówno do obliczeń w arkuszach, jak i jako części funkcji <strong>VBA</strong> zdefiniowanychprzez użytkownika.PodsumowanieExcel posiada bogaty zbiór funkcji i procedur. Są wśród nich funkcje matematyczne,statystyczne i wyszukiwania, a także często stosowane procedury służące na przykładdo konstruowania tabel danych czy prezentowania wynizków na wykresach XY.Dostęp do funkcji uzyskuje się, klikając przycisk Wstaw funkcję, a jej parametry wejściowedefiniuje się w formularzu funkcji. Stosowanie nazw zakresów znacznie ułatwiawskazywanie zakresów komórek, zwłaszcza w sytuacji gdy zakresy osiągają znacznerozmiary. Nazwy zakresów również mogą być stosowane wz formularzu funkcji.Mechanizmy znajdujące się na pasku narzędzi Inspekcja formuł, w szczególności Śledźpoprzedniki, Śledź zależności i Usuń wszystkie strzałki, stanowią nieocenioną pomocw trakcie analizowania formuł wpisanych w komórkach.Warto bliżej poznać funkcje <strong>Excela</strong>, ponieważ bez truduz można je dołączać do funkcjizdefiniowanych przez użytkownika, zmniejszając tym samym ilość kodu <strong>VBA</strong>, jakątrzeba napisać.Szczególną uwagę należy zachować, stosując funkcje tablicowe. Dobrze jest z wyprzedzeniemokreślić rozmiar zakresu komórek wynikowych, odpowiedni dla tablicy z wynikami.Po zaznaczeniu właściwego zakresu komórek należy wstawić do niego formułę,naciskając kombinację klawiszy Ctrl+Shift+Enter.


52 Część I ♦ <strong>Zaawansowane</strong> modelowanie w ExceluFunkcje wbudowane cechują się zmiennością, co oznacza, że ich wynik zmienia sięwraz ze zmianami wprowadzanymi w ich danych wejściowych. W przeciwieństwie donich procedury, takie jak Szukaj wyniku czy Solver z pakietu Analysis ToolPak, mającharakter statystyczny — ich wynikiem jest „zrzut danych” niemający żadnego połączeniaz danymi początkowymi. Z tego powodu w przypadku zmiany danych wejściowychprocedury te należy uruchomić ponownie.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!