sobota, 12 grudnia 2009

Rozwiązywanie problemu Markowitza metodą Lagrange'a

Problem Markowitza był następujący: Najpierw zauważmy, że warunki ograniczające zawierają te same zmienne niezależne (tutaj wagi portfelowe), co funkcja celu, czyli wariancja portfela. Gdybyśmy znaleźli związek pomiędzy funkcją celu a warunkami ograniczającymi, to moglibyśmy zapisać cały układ równań w jedną funkcję zależną od udziałów akcji. Jeśli warunki ograniczające zapiszemy w postaci: to funkcję Lagrange'a zapisujemy jako: gdzie lambda(1) i lambda(2) to pewne dodatkowe zmienne sztuczne. A zatem funkcja Lagrange'a to pierwotna funkcja - wariancja, ale z pewnymi warunkami brzegowymi, które po prostu zostają dodane do tejże funkcji. 
Wiadomo, że ekstremum funkcji znajduje się w punkcie, w którym pochodna tej funkcji wynosi zero.   
Funkcję Lagrange'a różniczkujemy względem każdej zmiennej, a pochodne przyrównujemy do zera, co daje nam układ macierzy: Ogólnie rzecz ujmując tworzymy gradient funkcji Lagrange'a - wektor pierwszych pochodnych funkcji - oznaczany gradL, który musi być równy wektorowi zerowemu (gdyż każdą pochodną przyrównujemy do zera) - musi zostać spełniony warunek istnienia gradientu zerowego. Z powstałego układu wyliczamy poszukiwane wagi portfela. Przykład. Zróbmy przykład dla k=3. Weźmy te same parametry rozkładów rozważanych aktywów przy opisie portfela trzech akcji, czyli: oraz tę samą macierz kowariancji stóp zwrotu: Załóżmy, że oczekiwana stopa zwrotu z portfela wynosi 8,2%. Poprzednio widzieliśmy, że stopę tę otrzymaliśmy po podstawieniu wag x(A)=0,5; x(B)=0,3; x(C)=0,2 do wzoru na oczekiwaną stopę zwrotu. Następnie wagi te podstawiliśmy do wzoru na wariancję, która wyniosła 6,54, zaś ryzyko 2,56%. Tym razem możemy zrobić odwrotnie: sprawdzić, przy jakich wagach dostaniemy oczekiwaną stopę zwrotu, aby uzyskać minimalne ryzyko. Tworzymy funkcję Lagrange'a: a następnie jej gradient, który dla trzech walorów w ogólnym przypadku przyjmuje postać: W danym przypadku gradient wygląda następująco: Należy teraz rozwiązać powstały układ równań. Są dwie alternatywne techniki jakimi warto się posłużyć. 1. Posługujemy się programem, który potrafi rozwiązywać układy równań. Ja dałem obliczyć to Maple. Napisałem w nim układ pochodnych pierwszego rzędu przyrównanych do zera (co powoduje także, że powracamy do pierwotnych warunków ograniczających): L1 i L2 oznacza odpowiednio lambda(1) i lambda(2). Maple oblicza wynik przy zastosowaniu formuły solve: A więc wagi są niemal identyczne jak te, gdy liczyliśmy odwrotnie (podstawialiśmy wagi do wzorów). Różnice wynikają - jak mi się zdaje - z tego, że rachunek różniczkowy posługuje się granicami funkcji. Z tego powodu wariancja minimalnie także się różni i jej wynik to 6,5299, zaś ryzyko 2,555. 2. Druga technika jest trudniejsza w tym sensie, że wymaga większego zaangażowania umysłowego. Z drugiej strony do jej użycia wystarcza zwykły arkusz kalkulacyjny. W zróżniczkowanym i przyrównanym do zera układzie równań znajdujemy rozwiązanie - wektor x. Jest ono już nam znane z poprzedniego wykładu: Widać, że jest potrzebna umiejętność odwracania macierzy. Ogólnie nie jest to łatwa sprawa, ale teoria nie jest nam zbytnio potrzebna. Staje się to banalne dzięki funkcjom zawartym w arkuszu kalkulacyjnym. W Excelu robimy tak: 1. Zaznaczamy w jakimś wolnym miejscu tyle wierszy i kolumn ile zawiera macierz, którą chcemy odwrócić, 2. Wybieramy funkcję MACIERZ.ODW, 3. Zaznaczamy tablicę, czyli macierz, którą odwracamy, 4. Naciskamy kombinację klawiszy ctrl+shift+enter. W podanym rozwiązaniu jest istotny niuans, na który należy zwrócić uwagę. W zwykłej wersji układu równań i gradiencie macierz kowariancji jest przemnożona przez 2. Można pozbyć się tej dwójki. W powyższym wzorze na x "siedzą" lambda(1) i lambda(2). Normalnie obie powinny być przemnożone przez 2. Ale same lambdy są zmiennymi sztucznymi, które nas nie interesują i możemy zawrzeć w nich liczbę 2, co powoduje, że 2 znika. Ale ciągle rozwiązanie zależy od lambda(1) i lambda(2), które są nieznane. Te zaś mogą zostać teraz wyznaczone z warunków: Wprowadzając oznaczenia: otrzymujemy: W zasadzie oprócz odwracania macierzy należy wiedzieć jeszcze jak się mnoży macierze, ale też używamy do tego funkcji w Excelu, więc to prosta sprawa. Odpowiednie parametry podstawiłem do wzoru, w języku macierzowym, w Excelu. Wyniki dostałem następujące: x(1)=0,485; x(2)=0,322; x(3)=0,1925; lambda(1)=-10,19; lambda(2)=2,039. A więc wagi portfela są dokładnie te same, co wyliczył Maple, zaś lambdy zmniejszone dwukrotnie oraz z przeciwnymi znakami. Wynika to z faktu, że lambdy zostały poprzekształcane. .................................................................................. Po znalezieniu rozwiązania ostatnią, choć w rzeczywistości do pominięcia sprawą (zaraz powiem dlaczego), jest sprawdzenie warunku wystarczającego istnienia ekstremum funkcji. Rozwiązując zadanie znaleźliśmy jedynie wagi portfela, dla których gradient pewnej funkcji jest zerowy. Nie tylko wcale nie wiemy czy znaleźliśmy minimum czy maksimum funkcji celu, ale czy w ogóle jakiekolwiek ekstremum. Najpierw na podstawie gradientu konstruujemy hesjan obrzeżony, którego elementami są pochodne rzędu drugiego po wszystkich zmiennych. Stosując podstawienia na lambdach gradient funkcji Lagrange'a jest postaci: Szybko zauważymy, że hesjan obrzeżony wygląda tak samo jak gradient, z tą różnicą, że nie pojawia się już pierwszy wektor zmiennych, a więc ma postać: A zatem hesjan obrzeżony jest to macierz kowariancji z "doczepionymi" na brzegach wektorami. Po podstawieniu danych hesjan obrzeżony ma postać: Następnie obliczamy tzw. minory główne, czyli wyznaczniki podmacierzy leżące na przekątnej głównej. Na temat wyznaczników macierzy jest duża literatura w internecie, więc każdy może po nią sięgnąć. Ich obliczanie nie jest proste dla dużych macierzy, więc oczywiście posługujemy się znowu funkcjami zawartymi w arkuszu kalkulacyjnym. W Excelu obliczenie wyznaczników jest bardzo proste: 1. wybieramy komórkę, w której wyświetli się obliczony wyznacznik, 2. wybieramy funkcję WYZNACZNIK.MACIERZY, 3. zaznaczamy tablicę, czyli macierz, dla której liczymy wyznacznik, 4. Potwierdzamy. Następnie badamy znaki kolejnych minorów głównych. Korzystamy z twierdzenia, że warunkiem wystarczającym istnienia minimum warunkowego jest, aby minory hesjanu obrzeżonego stopnia m+1, m+2,... n miały takie same znaki jak (-1)^m, gdzie m to liczba warunków ograniczających. Dla maksimum warunkowego minory winny zmieniać znaki (dla minora stopnia m+1 znak taki jak dla (-1)^(m+1)). U nas m=2. Nasz minor obrzeżony stopnia m+1=n, czyli 3 wynosi 721>0 i jest to jedyny minor do policzenia (obrzeżoność zmienia pojęcie stopnia - wyznacznik zwykłego hesjanu byłby stopnia 5-tego, ale dla hesjanu obrzeżonego jest to 3 - jako efekt pojawiania się macierzy zerowej, której wyznacznik jest zawsze zero, zatem i stopnień jest zerowy). (-1)^2 > 0. A zatem w tym punkcie istnieje minimum. W rzeczywistości istnieje twierdzenie, zgodnie z którym ekstremum warunkowe wariancji zawsze będzie stanowiło minimum. Zagadnienie minimalizacji wariancji sprowadza się więc tylko do obliczenia wag portfela na podstawie funkcji Lagrange'a. Ten luksus wynika z faktu, że dla takich ograniczeń jakie wprowadziliśmy, nie istnieje maksymalna wariancja. Twierdzenie o warunku wystarczającym istnienia minimum warunkowego może się jednak przydać w bardziej skomplikowanych problemach. .................................................................................... W następnej części spróbuję zastosować teorię Markowitza do rzeczywistych, aktualnych danych z GPW. Ciekawe, co z tego wyjdzie.

piątek, 4 grudnia 2009

Teoria portfela Markowitza. Portfel złożony z K walorów

1. Portfel trzech walorów

Dotychczas budowaliśmy portfele złożone jedynie z dwóch walorów, na przykład akcji dwóch różnych spółek. Analogicznie możemy dokonać tego dla dowolnej liczby akcji. Już jednak dla trzech akcji pojawia się nowa interesująca właściwość. Chociaż już w trakcie analizy portfela dwóch akcji pojawiło się wyrażenie dywersyfikacja ryzyka, to jednak dopiero dla co najmniej trzech akcji dostrzeżemy jego prawdziwe znaczenie i niezwykłą wagę dla inwestora.

Zdefiniujmy jeszcze dywersyfikację.

Dywersyfikacja ryzyka jest to inaczej rozproszenie (zmniejszenie) ryzyka portfela na skutek włączenia doń dużej liczby różnych walorów bez obniżenia oczekiwanej stopy zwrotu portfela.

Przyjrzyjmy się więc najpierw sytuacji portfela zbudowanego z trzech różnych akcji. Poniższą analizę ponownie zaczerpnąłem z książki T. Bołta "Rynek kapitałowy - część druga".

Rozważmy trzy ryzykowne walory A, B, C, charakteryzujące się stopami zwrotu R(i), oczekiwanymi stopami zwrotu μ(i), ryzykiem σ(i) (i=A,B,C) i macierzą kowariancji stóp zwrotu:


pamiętając przy tym, że kowariancja daje się przedstawić jako funkcja współczynnika korelacji , tzn.



Macierz kowariancji czasami nazywa się macierzą wariancji i kowariancji, gdyż faktycznie uwzględnia ryzyko wariancyjne (które leży na głównej przekątnej macierzy) i kowariancyjne (poza główną przekątną). W rzeczywistości wystarczy mówić o macierzy kowariancji, bo wariancja jest szczególnym przypadkiem kowariancji, gdy zmienna koreluje sama ze sobą; wtedy i=j oraz współczynnik korelacji = 1. Później macierz tę będziemy oznaczać przez cov.

Wektor wag portfelowych, określający strukturę portfela, ma postać:



przy czym x(A)+x(B)+x(C)=1.

Stopa zwrotu portfela trzyskładnikowego jest zdefiniowana jako:



natomiast jej oczekiwana wartość jako:



Ryzyko portfelowej stopy zwrotu, mierzone wariancją stopy zwrotu, definiuje wzór:



Co, jak pamiętamy, wynika ze wzoru



Znów więc rozdzielamy ryzyko na ryzyko wariancyjne i ryzyko kowariancyjne.

Niech parametry rozkładów rozważanych aktywów ryzykownych będą następujące:



Załóżmy, że dla rozpatrywanych walorów macierz kowariancji stóp zwrotu ma postać:



Pamiętając o zależnościach występujących między kowariancjami a współczynnikami korelacji, możemy zapisać następującą macierz współczynników korelacji stóp zwrotu:



Zatem w naszym przykładzie występują zarówno walory skorelowane dodatnio, ujemnie jak i nieskorelowane.

Dla przykładu obliczmy oczekiwaną wartość portfela składającego się z walorów A, B i C o następującej strukturze: x(A)=0,5 ; x(B)=0,3 ; x(C)=0,2. Otrzymujemy:



Wariancja stopy zwrotu portfela jest równa 6,54, natomiast ryzyko mierzone odchyleniem standardowym stopy zwrotu:


Oznacza to, że zrealizowany zysk z inwestycji w portfel, o założonej wyżej strukturze, odchylać się może od oczekiwanego zysku równego 8,2% średnio rzecz biorąc in plus in minus o 2,56%.

W tablicy poniżej przedstawiono obliczenia wartości oczekiwanych oraz odchyleń standardowych wybranych portfeli trzyskładnikowych leżących na granicy zbioru możliwych rozwiązań (bez krótkiej sprzedaży). Pogrubioną czcionką zaznaczono portfel o globalnie najmniejszej wariancji.


W dwu poniższych tablicach przedstawiono obliczenia wartości oczekiwanych oraz odchyleń standardowych portfeli dwuskładnikowych leżących na granicach zbiorów możliwych rozwiązań (bez krótkiej sprzedaży). Pogrubioną czcionką zaznaczono portfele o najmniejszej wariancji.




Teraz widać, że wprowadzenie trzeciego składnika zmniejsza ryzyko w stosunku portfela dwuskładnikowego.

Dane z tablic naniesiono na poniższy rysunek. Krzywa N1A jest granicą efektywnych portfeli trzyskładnikowych (ABC), przy czym N1(1,05; 5,9) jest portfelem o globalnie minimalnej wariancji. Krzywa N2B jest granicą efektywną portfeli dwuskładnikowych (BC), przy czym N2(2,47; 4,41) jest portfelem o minimalnej wariancji. Z kolei krzywa N3A jest granicą efektywną portfeli dwuskładnikowych tworzonych z (AB), zaś N3(3,12; 8,78) jest portfelem o minimalnej wariancji. Zatem figura CN1AN3BN2 jest zbiorem portfeli dominujących nad wszystkimi innymi portfelami dwuskładnikowymi.



2. Portfel dowolnej liczby walorów

Wzory rozpatrywane w punktach poprzednich uogólnia się na dowolną liczbę walorów. Załóżmy, że rozpatrujemy K różnych walorów charakteryzowanych przez:



Strukturę portfela opisują wagi x(i), spełniające:


Stopa zwrotu portfela jest kombinacją K stóp zwrotu poszczególnych walorów, zatem:



Podobnie oczekiwana stopa zwrotu jest kombinacją liniową oczekiwanych wartości poszczególnych stóp zwrotu:


Wariancja portfela jest dana przez:


Inwestor maksymalizuje użyteczność, gdy minimalizuje ryzyko lub maksymalizuje oczekiwany zysk. Aby tego dokonać, znajduje taką swoją krzywą obojętności, która styka się z krzywą minimalnego ryzyka. Może to zrobić graficznie, co jest pewnie przyjemniejsze, lecz może także wykazać większą precyzję i obliczyć to. Obliczeń można dokonać na dwa sposoby.

Niech zadanie polega na minimalizacji σ(p) przy wymaganej stopie zwrotu μ(p).
oraz Σx(i) = 1. Problem ten zapisujemy następująco:


Im większa liczba spółek w portfelu, tym zadanie staje się coraz bardziej
skomplikowane. Problem zapisujemy wtedy w języku macierzowym. Zauważmy, że wtedy ryzyko wariancyjne i kowariancyjne zostaje scalone poprzez zapis macierzy kowariancji cov. Wtedy problem jest postaci:



gdzie oznaczamy:



Nie jest to zadanie polegające po prostu na znalezieniu minimum funkcji, którą tutaj stanowi wariancja portfela. Nie interesuje nas globalnie najmniejsze ryzyko, lecz przy określonym wymaganym zysku. Ale jest jeszcze jedna sprawa. Drugim warunkiem ograniczającym jest aby suma udziałów akcji równała się 1. A więc mamy dwa warunki ograniczające. Istnieją algorytmy programowania kwadratowego służące do rozwiązywania tego typu zadań.

Drugim - równoważnym - sposobem jest metoda mnożników Lagrange'a. Metodę tę szczegółowo przedyskutujemy w następnym artykule. Teraz wystarczy, aby wiedzieć, że rozwiązaniem takiego układu równań w języku macierzowym jest:


gdzie




Podstawiamy znane parametry, a za oczekiwaną stopę zwrotu z portfela możemy podstawiać dowolne liczby. W ten sposób znajdujemy optymalny skład portfela!
...................................................................................

Ponieważ zaczęliśmy od problematyki dywersyfikacji, to na tej tematyce powinniśmy skończyć. Otóż powstaje pytanie, jak daleko dywersyfikacja jest w stanie zmniejszyć ryzyko? Są dwa różne przypadki. Pierwszy to taki, gdy walory są ze sobą nieskorelowane. W takiej sytuacji, jak się okazuje, przy wielkiej liczbie walorów w portfelu ryzyko może zostać całkowicie wyeliminowane. Drugi to taki, gdy walory są ze sobą skorelowane. W takiej sytuacji, przy wielkiej liczbie walorów w portfelu, ryzyko wariancyjne może zostać całkowicie wyeliminowane, zaś pozostaje ryzyko kowariancyjne. Rozpatrzmy oba przypadki.

Załóżmy najpierw, że inwestujemy w każdy walor tę samą sumę pieniędzy, zatem


1. W sytuacji braku korelacji wariancja portfela redukuje się do:


W sumie więc:


Wyrażenie:


stanowi średnią wariancję stóp zwrotu walorów uwzględnionych w portfelu. W konsekwencji


Jeśli K dąży do nieskończoności, wtedy wariancja portfela dąży do zera.


2. W sytuacji skorelowania walorów dostajemy:


Wyłączając 1/K oraz (K-1)/K z powyższej formuły zapiszemy:


Wyrażenie w pierwszym składniku sumy po prawej stronie równania jest średnią wariancją, którą wcześniej oznaczyliśmy. Wyrażenie w drugim składniku sumy tego równania jest średnią kowariancją, którą oznaczymy jako:


Zatem ostatecznie wzór na wariancję zapiszemy:



Z reguły de Hospitala wynika, że jeżeli liczba akcji w portfelu wzrasta do nieskończoności, wtedy wariancja portfela zmierza do średniej kowariancji, tj.:


Zatem nawet w przypadku bardzo dużych portfeli istnieje pewna "część" ryzyka, którego nie można wyeliminować. Jest to ryzyko niedywersyfikowalne. Jest ono równe średniej kowariancji stóp zwrotu wszystkich walorów. Pokazuje to poniższy rysunek. Na rysunku tym ryzyko jest mierzone jako procentowy udział ryzyka portfela do oczekiwanego (przeciętnego) ryzyka portfela jednoskładnikowego.



Najtrudniejszym założeniem teorii portfela jest to, że parametry rozkładu stopy zwrotu nie zmieniają się w czasie. Tak niestety się nie dzieje na rzeczywistych rynkach. Jednak Markowitza można zastosować dla stabilnych biznesów, jeśli horyzont czasowy jest dostatecznie długi.