niedziela, 30 lipca 2017

Usuwanie sezowości i prognozowanie przy pomocy X-13-ARIMA i TRAMO/SEATS

Różne branże, np. budownictwo, charakteryzuje sezonowość, która zniekształca obraz ich sytuacji finansowej. Jeśli dokonujemy analizy fundamentalnej albo sporządzamy prognozę ekonometryczną, to powinniśmy usunąć zmienność kalendarzową. Nazywa się to wyrównaniem sezonowym. Weźmy GUS-owski Wskaźnik ogólnego klimatu koniunktury (który jest średnią arytmetyczną z odpowiedzi na pytania dyrektorów przedsiębiorstw o aktualną oraz przewidywaną ogólną sytuację gospodarczą danego przedsiębiorstwa), który jest aktualizowany co miesiąc. Dla budownictwa w okresie 1.2001-7.2017 wygląda on tak:



Wskaźnik ten wydaje się być podany jako niewyrównany sezonowo, co nawet GUS zaznacza w tabeli. Ale zarówno w "Uwagach ogólnych" jak i "Wyjaśnieniach metodycznych" GUS stwierdza, że dane dotyczące wskaźnika koniunktury zostały wyrównane sezonowo metodą TRAMO/SEATS. Skąd taka niekonsekwencja? Nie wiem. Powinny być to dane niewyrównane, bo występuje ewidentna cykliczność. Np. gdy powiększymy ten wykres dla lat 2014-2017 to zobaczymy idealnie ten sam wzór:




Obecnie mamy do czynienia ze szczytem cyklu, tzn. że trzeba spodziewać się pogorszenia nastrojów koniunkturalnych. Czy to oznacza, że giełda powinna reagować spadkiem? Oczywiście nie, bo efektywny rynek powinien dyskontować takie informacje o sezonowości, a więc racjonalny inwestor użyje narzędzia do wyrównania sezonowego.

Są dwie znane metody do tego: pierwsza to X-12-ARIMA, która niedawno została zastąpiona przez X-13-ARIMA-SEATS, a druga to TRAMO/SEATS. Obydwie bardzo łatwo użyć w Gretlu. Tutaj wyjaśniam skąd takie nazwy i co te programy robią, a także pokazuję jak wyciągnąć z nich prognozy.

Nie chcę się skupiać na teoretycznych aspektach tych metod, przejdę więc od razu do rzeczy, czyli do praktycznego zastosowania obydwu metod. Pakiety X-13-ARIMA i TRAMO/SEATS nie są automatycznie instalowane razem z Gretlem, dlatego musimy na stronie Gretla je najpierw ściągnąć i zainstalować, co nie jest żadnym problemem, bo po instalacji powinniśmy mieć te pakiety w Gretlu. Czasami mogą wystąpić problemy ze znalezieniem ścieżki. Żeby sprawdzić czy Gretl poprawnie łączy się z programem, wchodzimy w gretlu w: Narzędzia -> Ustawienia -> Ogólne -> Programy. Wyszukujemy tutaj "Ścieżka do programu X-12-ARIMA" (przynajmniej u mnie tak jest, że nie zaktualizowano nazwy na X-13-ARIMA) i "Ścieżka do programu TRAMO". Jeśli wyświetlona obok ścieżka jest błędna, to musimy ją poprawić.

Aby użyć metody, musimy mieć zaznaczoną naszą zmienną w oknie gretla,a sama zmienna musi być szeregiem czasowym o określonej wcześniej częstości, tutaj 12 miesięcy (jednak nie każda częstość jest dozwolona). Same programy działają po wejściu w Zmienna -> Analiza ... i w zależności od typu wybieramy program.

X-13-ARIMA-SEATS:
Przy standardowych opcjach, klikamy OK; wówczas GUS-owski Wskaźnik koniunktury budownictwa zostanie podzielony na 3 części: wyrównany sezonowo, trend/cykl oraz odchylenia przypadkowe:


Wyrównanie sezonowe nie jest filtrowaniem z odchyleń przypadkowych, a jedynie ze zmian sezonowych. Mówiąc prosto: zmienna 'wyrównany sezonowo' to zmienna złożona z dwóch części: 'trendu' oraz zmian przypadkowych.
Wynika z tego, że filtrowanie z danych sezonowych oraz ze zmian przypadkowych zawiera trend. Dlatego inwestor będzie najbardziej zainteresowany drugim wykresem, który wskazuje w jakiej fazie cyklu koniunkturalnego rzeczywiście się znajdujemy.

Oprócz wykresu dostajemy także bardzo duży zestaw statystyk, których ilość może zniechęcać do ich analizy. Ogólnie to interesuje nas tylko wybór modelu, jego parametry i istotność statystyczna. W zestawie otrzymanych danych szukamy terminu "Final automatic model choice". W tym przypadku dostajemy coś takiego:

Final automatic model choice : (0 1 1)(0 1 1)

Co oznacza, po kolei w 1 nawiasie:
AR(0) - czyli nie występuje autoregresja liniowa w oryginalnych danych (z miesiąca na miesiąc)
d = 1 - czyli oryginalne dane są niestacjonarne i trzeba je zamienić na zmiany pierwszego rzędu
MA(1) - występuje średnia ruchoma pierwszego rzędu (z miesiąca na miesiąc) w oryginalnych danych.

W 2 nawiasie:
SAR(0) - nie występuje sezonowa autoregresja
Sd = 1 - oryginalne dane są niestacjonarne i trzeba je zamienić na zmiany 12-miesięczne
SMA(1) - występuje sezonowa średnia ruchoma pierwszego rzędu w oryginalnych danych (nie mylić z Simple Moving Average z AT)

Trzeba pamiętać, że AR i MA odnoszą się do zmian z okresu na okres (tutaj z miesiąca na miesiąc). Natomiast SAR i SMA odnoszą się do zmian danego miesiąca w stosunku do zmian tego samego miesiąca z poprzedniego roku.

Istotność statystyczną sezonowości oceniamy szukając wyników do 3 testów:
- test na stabilność sezonowości: Test for the presence of seasonality assuming stability
Wynik:
Seasonality present at the 0.1 per cent level.
tj. sezonowość występuje poziomie istotności 0,1%.

- nieparametryczny test na stabilność sezonowości:Nonparametric Test for the Presence of Seasonality Assuming Stability.
Wynik:
Seasonality present at the one percent level.

- test na zmienność amplitudy sezonowości: Test na Moving Seasonality Test
Wynik:
Moving seasonality present at the one percent level
tj. wykryta sezonowość zmienia swoją wielkość (amplitudę) z okresu na okres przy 1% istotności.
Ta własność nie występowałaby gdyby np. w danym miesiącu zmiana byłaby zawsze taka sama.

Jak powiedziałem inwestor jest zainteresowany głównie trendem, a więc także jego prognozą. Jeżeli na początku zaznaczymy opcję 'Zapisywanie danych' - składnik trendowy, to możemy wykorzystać sam trend jako zmienną do prognozy. Jakie jednak przyjąć dla niej parametry? Skoro X-13-ARIMA poszukuje optymalnego modelu, to moglibyśmy ponownie wykonać całą procedurę już dla trendu - spodziewając się, że wskaże model bez sezonowości, np. (1, 1, 1)(0, 0, 0). Jak najbardziej jest to możliwe, jednak okazuje się, że gdy to zrobiłem, to dostałem:
Final automatic model choice : (3 2 1)(1 0 1) ,
co sugeruje, że sezonowość występuje także w trendzie!

Aby sprawdzić prognozę trendu, możemy wykorzystać zwykłą procedurę ARIMA (Model -> Modele szeregów czasowych -> model ARIMA) i zaznaczyć AR=3, d=2, MA=1, SAR=1, Sd=0, MA=1.

Wyniki:

Następnie sprawdzamy prognozę (Analiza -> Prognoza). Przy wyborze 12 miesięcy do przodu, można spodziewać się ożywienia w budownictwie:



Metoda ta ma ograniczenia w postaci maksymalnych rzędów części AR i MA. Jest też inna metoda. Instalujemy dodatek o nazwie armax (Narzędzia -> pakiety funkcji -> na serwerze gretla, tam wybieramy 'armax'). Dodatek ten jest fajny, bo szuka najlepszego możliwego modelu ARMAX (literka X oznacza tylko, że możemy dodać zmienną zewnętrzną do modelu) przy wybranym maksymalnym rzędzie AR i MA (nie ma tutaj ograniczeń). Ze względu na miesięczną częstotliwość, wybrałem max rząd 12 dla obydwu. I tu trzeba się zastanowić czy tak wysoki pułap chcemy sprawdzić, bo będziemy długo czekać zanim program przeliczy parametry AR i MA od 0 do 12. Jeśli zależy nam na tej liczbie, a chcemy przyspieszyć działanie, możemy zmienić metodę estymacji. Program używa dwóch metod: standardowa to dokładna metoda największej wiarogodności (exact ML), druga to metoda warunkowej wiarogodności (conditional ML).

Która metoda jest lepsza? Obydwa estymatory są zgodne, ale exact ML jest efektywniejsza od conditional ML w tym sensie, że jej wariancja jest najmniejsza [1], tzn. także lepsza od uogólnionej metody najmniejszych kwadratów - w sytuacji gdy występuje proces ARMA [2]. Ta druga jest jednak obliczeniowo bardzo szybka przy dużej liczbie parametrów.

Pamiętać należy o dwóch rzeczach: po pierwsze dodatek armax nie sprawdza sezonowości, co w naszym przypadku może być zaletą, bo już ją usunęliśmy; po drugie jeśli wiemy już, że nasz szereg jest niestacjonarną zmienną, to musimy przekształcić je w różnice (Dodawanie zmiennych -> pierwsze różnice), bo armax bada tylko model ARMAX, a nie ARIMAX.

Optimum zostaje osiągnięte, gdy kryteria AIC, BIC lub HQC osiągną najmniejszą wartość (tak jak entropia - im mniejsza, tym mniejsza niepewność co do modelu). Tutaj znów powstaje pytanie, które kryterium wybrać? Najczęściej wybierane jest AIC, jednak nie jest to wybór absolutny, co więcej nie jest optymalny w przypadku procesów ARMA. Hannan i Quinn [3] pokazali empirycznie, że ich kryterium, które potem zostało nazwane od ich nazwisk HQC, jest prawdopodobnie lepsze gdy proces jest autoregresyjny, a próba jest stosunkowo duża (np. powyżej 100). W przeciwnym wypadku AIC lub BIC może być lepsze. AIC minimalizuje błąd prognozy, a BIC razem z HQC dążą do wartości oczekiwanej prawdziwego modelu. Jeżeli wszystkie 3 kryteria wskazują najniższą wartość dla tego samego modelu, to nie mamy wątpliwości, że ten właśnie jest najlepszy z danego zestawu modeli. Dodatek armax umożliwia ocenę tych 3 kryteriów jednocześnie.

Najpierw użyłem metody exact ML, w której AIC, BIC i HQC wskazały jednoznacznie ten sam model: AR(4)-MA(2). Aby sprawdzić prognozę, robię to samo co poprzednio - używam standardowego modelu ARIMA, w której wpisuję odpowiednio rzędy parametrów (oczywiście bez sezonowości). Tym razem dostałem następujący wykres prognozy:


 


A więc zupełnie inna prognoza niż ta wzięta z X-13-ARIMA. Która jest bardziej prawdopodobna? Tutaj idealnie sprawdzą się kryteria AIC, BIC i HQC. Trzeba tylko wiedzieć, że:
AIC = Kryt. inform. Akaike'a
BIC = Kryt. bayes. Schwarza
HQC = Kryt. Hannana-Quinna

Zauważmy, że każdy z tych kryteriów jest niższy dla ostatniego modelu, co oznacza, że ożywienie w budownictwie nie jest wcale takie pewne.

Analogicznie sprawdźmy conditional ML. Wyniki tym razem nie są jednoznaczne, bo każde kryterium przynosi inne rezultaty. Biorąc pod uwagę, że mamy 199 obserwacji, wykorzystam wnioski Hannana i Quinna i skorzystam z HQC, które wskazało model AR(8)-MA(0). Użycie prognozy z tymi parametrami przyniosło bardzo podobną prognozę, co dla exact ML, tylko nieco bardziej stromą.


TRAMO/SEATS:
Drugą procedurą jest TRAMO/SEATS ("Time Series Regression with ARIMA Noise Missing Observations, and Outliers" / "Signal Extraction in ARIMA Time Series"). Przy standardowych opcjach, klikamy OK; GUS-owski Wskaźnik koniunktury budownictwa został podzielony na 3 części: wyrównany sezonowo, trend/cykl oraz odchylenia przypadkowe:


Znów dostaniemy skomplikowane statystyki, ale najbardziej interesuje nas to:
MODEL FITTED

      NONSEASONAL     P= 0     D= 1     Q= 1
         SEASONAL    BP= 0    BD= 1    BQ= 1
      PERIODICITY    MQ= 12

Przekładając na X13-ARIMA zapisalibyśmy to tak: (0, 1, 1)(0, 1, 1)

Czyli dostaliśmy ten sam schemat co w X-13-ARIMA. Nie zawsze jednak tak będzie.

Tutaj także możemy zapisać składnik trendowy (Wynik -> Zapisz...), który chcielibyśmy prognozować. Aby to zrobić możemy wybrać - tak jak poprzednio - jedną z dwóch metod. A więc pierwsza to zaznaczenie zmiennej trendu i użycie dla niej TRAMO-SEATS. Otrzymamy statystyki, wśród których szukamy:

 MODEL FITTED

      NONSEASONAL     P= 3     D= 1     Q= 1
      PERIODICITY    MQ= 12

Zniknęła sezonowość (SEASONAL), co świadczy, że jesteśmy na dobrej drodze. Uzyskane parametry wykorzystujemy do prognozy, a więc znów wchodzimy w Modele szeregów czasowych -> ARIMA. Tam wpisujemy te parametry AR=3, I=1, MA=1. Wyniki:



I prognoza:



W przeciwieństwie do X-13-ARIMA, Tramo sygnalizuje szczyt.

Druga metoda to identycznie jak przy X-13-ARIMA użycie dodatku armax. Tworzymy więc pierwsze przyrosty zmiennej trendu, zaznaczamy tę nową zmienną i możemy porównać dwie pod-metody: exact ML i conditional ML. Wyniki dla exact ML nie są jednoznaczne. AIC wskazuje AR(6)-MA(10), BIC i HQC - AR(1)-MA(4). W dodatku conditional ML prowadzi do jeszcze innych wniosków: dla AIC AR(12)-MA(1), BIC AR(3)-MA(1) i HQC AR(6)-MA(1). Idąc tropem HQC, exact ML i conditional ML przynoszą podobną prognozę. Poniżej wykres dla pierwszej z nich.



Ta prognoza współgra z tą, przeprowadzoną na Tramo. Sugeruje stabilność w branży budowniczej, ale nie ożywienie. W sumie więc zaprzecza początkowej intuicji, że trend jest rosnący.

Uwaga na fałszywe trendy
Niedawno opisywałem filtr Hodrika-Prescotta. Przestrzegałem, że może być mylący, bo zawsze wskaże "trend" nawet, jeśli jest to tylko przypadek. Tutaj jest podobnie. Samą zmienną trendu nie można się sugerować. Może wspomagać, ale musi być powiązana z istotnością statystyczną modelowania pierwotnej zmiennej. Np. wygenerujmy 199 obserwacji procesu Browna i zastosujmy X-13-ARIMA. Dostaniemy:



Jaki otrzymałem model optymalny?

Final automatic model choice : (0 1 1)

Wprawdzie nie pokazał żadnej sezonowości, ale przecież powinniśmy mieć (0 1 0). Przekonamy się o tym dopiero gdy sprawdzimy istotność statystyczną takiego modelu; wtedy otrzymamy p = 0,63.
Tylko że ta wartość p dotyczy zmiennej ruchu Browna, a nie zmiennej "trendu". Ponieważ procedura filtruje dane, to zaczyna tworzyć sztuczny trend.

Dlatego nie można się sugerować tutaj nazwą "trend", bo prawidłowo powinno brzmieć po prostu "filtr". Dlatego zarówno X-13-ARIMA jak i TRAMO/SEATS wymagają dużej ostrożności przy wnioskowaniu co do przyszłości.


Literatura:

[1] Andersen, E. B., Asymptotic Properties of Conditional Maximum-Likelihood Estimators, 1970,
[2] Beach, C. M., MacKinnon, J. G., A Maximum Likelihood Procedure for Regression with Autocorrelated Errors, Jan. 1978,
[3] Hannan, E. J., Quinn, B. G., The Determination of the Order of an Autoregression, 1979.


P. S. Więcej informacji na temat tych programów (m.in. ich historii) napisałem tutaj.

niedziela, 16 lipca 2017

Nie potrzebujemy wejścia do strefy euro

Wejście do strefy euro stanowi jedną z najbardziej kontrowersyjnych kwestii ekonomicznych. Wielu autorytetów twierdzi, że korzyści z tej waluty przeważają nad kosztami. Jednym z jej orędowników jest G. Kołodko, który stwierdził, że "gdybyśmy weszli do euro bylibyśmy od razu w trzonie Europy, w Europie pierwszej szybkości, a być może przestano by dyskutować o Europie pierwszej szybkości". A ponadto, że waluta ta "wyjdzie wzmocniona z ostatniego kryzysu" [5]. D. Rosati stosunkowo niedawno (2013 r.) także przekonywał, że euro jest dla gospodarki pozytywne [4]. Profesor przedstawił następujące argumenty:
a) spadek kosztów transakcyjnych związanych z wymianą walut i ryzykiem kursowym (ma dać wzrost 0,5% PKB);
b) spadek stóp procentowych i lepszy dostęp do zasobów kapitału (potencjalny wzrost o 1,46% PKB);
c) eliminacja ryzyka kryzysu walutowego. Wielkości zysku Rosati nie oblicza, bo wg niego "korzyści z eliminacji ryzyka kryzysu walutowego (...) są trudne do bezpośredniego oszacowania". Nie zauważa on, że przecież korzyść ta jest równa kosztowi transakcyjnemu, jaki płacą inwestorzy za hedging na instrumentach finansowych, takich jak kontrakty terminowe, opcje czy swapy, które właśnie pozwalają zabezpieczyć się przed zmianami np. kursu walutowego;
d) korzyści z większej przejrzystości i porównywalności cen;
e) korzyści ze zwiększonej stabilności makroekonomicznej;
f) korzyści z waluty międzynarodowej (wzrost zagranicznych inwestycji bezpośrednich - ma zwiększyć tempo wzrostu PKB o 0,7 pkt proc);
g) korzyści polityczne.

Autor wymienia także koszty, ale korzyści netto mają przynieść w sumie 1,5-2% PKB w skali roku.

Również L. Balcerowicz i jego Fundacja "Forum Obywatelskiego Rozwoju" jeszcze niecałą dekadę temu wyłożyli nam cudowną wizję: "Wprowadzenie euro w Polsce może przyczynić się do wzrostu PKB per capita o 8–12 proc" [1]. Jednak nie rocznie, tylko w okresie 20 lat. Skąd takie liczby? Niestety tylko na podstawie modelu teoretycznego (czyli eksperymentu myślowego) i to zaprezentowanego przez NBP w 2004 r.

A przecież już w roku 2007 Drake i Mills [2] doszli do wniosku, że wejście do strefy euro nie tylko nie poprawiło sytuacji gospodarczej w krajach Unii, ale wręcz mogło zmniejszyć trend wzrostu. Autorzy zbadali 3 okresy: od 1983 do 1992, od 1992 do 2000 i od 2001 do 1 kw 2005. W każdym okresie rozbili zmiany realnego PKB na trend i na cykle. Zarówno w okresie konwergencji 1992-2000, jak i 2001Q1-2005Q1 trend okazał się słabszy niż w okresie 1983-1992.



Oczywiście taka analiza o niczym jeszcze nie świadczy, bo po roku 1999 kraje euro mogły napotkać okres słabszy niezależnie od waluty.

Fernandez i Perea [3] zbadali strefę euro innymi metodami i dotarli do konkluzji, że przyjęcie euro średnio biorąc nie przynosi ani pozytywnych, ani negatywnych efektów gospodarczych. Niemcy, Holandia i Austria nie otrzymały żadnych zysków ani strat z tego powodu. Irlandia, Hiszpania i Grecja uzyskały dodatnie, istotne efekty, ale tylko w latach ekspansji po przyjęciu euro. Natomiast Włochy i Portugalia szybko spadły poza przewidywany przez wariant kontrfaktyczny PKB per capita. Na rysunku porównano realny PKB na osobę w USA, Japonii, Wielkiej Brytanii i Strefie Euro w różnych okresach:



Dokładniejsze porównanie otrzymali w wyniku zbudowania specjalnego modelu porównującego realny PKB per capita dla strefy euro (na rys. linia ciągła) z PKB per capita kontrfaktycznym (linia przerywana).



Na początku XXI w. kraje euro wygrywały z krajami nie-euro. Wtedy to właśnie większość polskich ekonomistów była entuzjastycznie nastawiona do tej waluty. Jednak po roku 2005 sytuacja zaczęła się odwracać, tak że w końcu cała nadwyżka siły euro została utracona. Ostatnie lata od roku 2011 to kryzys strefy euro, co odzwierciedla dywergencja na wykresie powyżej. Automatycznie spowodowało to gwałtowny wzrost euro-sceptyków także wśród fachowców.


Literatura:
[1] Borowski, J., Czy warto przyjąć euro w Polsce?, 2008, https://for.org.pl/pl/a/418,Czy-warto-przyjac-euro-w-Polsce;
[2] Drake, Leigh; Mills, Terence C., Trends and cycles in Euro area real GDP, 2007;
[3] Fernández, C., Perea, P. G., The Impact Of The Euro On Euro Area Gdp Per Capita, 2015;
[4] Rosati, D., Czy Polska powinna przystąpić do strefy euro?, Gospodarka Narodowa, 2013;
[5] #RZECZoBIZNESIE: Grzegorz Kołodko: euro zatrzyma Europę 2 prędkości, 2017, http://www.rp.pl/Gospodarka/170319319-RZECZoBIZNESIE-Grzegorz-Kolodko-Euro-zatrzyma-Europe-2-predkosci.html#ap-1

niedziela, 2 lipca 2017

Czy PIS rozwali gospodarkę? Praworządność i demokracja vs PKB

Tytułowe pytanie wydaje się śmieszne i głupie, skoro ostatnie miesiące to nieprzerwane bombardowanie pozytywnymi sygnałami z gospodarki. Nie można jednak lekceważyć pewnych przesłanek statystycznych. Powrócę jeszcze raz do analizy Popova [2] (zob. Jak powinniśmy oceniać plan Balcerowicza?) , który dla krajów transformacji w różnych okresach przedstawił, oprócz PKB, także wskaźnik wolności gospodarczej, inflację, wskaźnik demokratyzacji oraz wskaźnik praworządności:



Po usunięciu krajów Azji z tej tabeli, sprawdziłem czy istnieje zależność pomiędzy demokratyzacją a wzrostem PKB oraz praworządnością a wzrostem PKB. Ponieważ wskaźnik demokratyzacji dotyczy lat 1990-1998, a praworządności 1989-1997, to dane te odniosłem jedynie do wzrostu PKB dla lat 1989-1998 (trzecia kolumna). Oto jak się kształtuje PKB pod wpływem większej demokratyzacji:



Utworzona regresja liniowa informuje, że każdy wzrost o 1 pkt proc demokratyczności zwiększa wzrost PKB w ciągu 10 lat średnio o 0,58 pkt proc (+/- 0,23), R^2 = 0,23, model istotny stat.

A tak kształtuje PKB pod wpływem jakości rządów prawa:
 

Praworządność została oceniona na podstawie pracy Camposa [1], gdzie za kryterium bierze się m.in. sprawiedliwość sądów, niezależność sądownictwa od politycznej kontroli, a także ochronę praw mniejszości etnicznych.

W tym przypadku model regresji mówi, że każda poprawa rządów prawa o 1 pkt zwiększa PKB w ciągu 10 lat o 0,8 pkt proc. (+/-0,21), R^2 = 0,42, model istotny stat.


Literatura:
[1] Campos, N. F., “Context is Everything: Measuring Institutional Change in Transition Economies”, Prague, August 1999;
[2] Popov, V., Shock Therapy Versus Gradualism: The End Of The Debate (Explaining The Magnitude Of Transformational Recession), April 2002.

Jak powinniśmy oceniać plan Balcerowicza?

Wiadomo, że Polacy oceniają dość negatywnie reformy Balcerowicza. W 2013 r. CBOS [1] pokazał jak na przestrzeni lat to się zmieniało:


Gdyby połączyć czerwony kolor z niebieskim w ocenę negatywną, to ostatnie dane z 2013 wskazywałyby, że prawie 60% Polaków ma negatywną opinię o transformacji.

Ta opinia została zbudowana prawdopodobnie przez media, które skupiają się głównie na negatywnych informacjach lub zwyczajnie dokonują propagandy. Ta propaganda została mocno podbudowana głosami takich ekonomistów jak Grzegorz Kołodko, Tadeusz Kowalik czy Witold Kieżun. Problem leży w obiektywności tych uczonych, jako że są oni zaangażowani politycznie, ich wynurzeń nie można traktować jako obiektywne źródło wiedzy.

Takim źródłem stają się natomiast zagraniczni ekonomiści. Stiglitz [4] (który wręcz krytykuje zbytnią wiarę w wolny rynek) pokazuje takie oto statystyki:


Polska jest jedynym krajem po transformacji w Europie, która w 1997 r. miała PKB wyższy niż w 1989.

Dane te pokrywają się z analizami Popova [4]:



Krytycy reform Balcerowicza często wskazują, że wywołały one zbyt dużą destabilizację w różnych sektorach. Tymczasem Lee, Nziramasanga i Ahn [3] porównują Węgry z Polską po przejściu w gospodarkę wolnorynkową i dochodzą do odmiennych wniosków. Wybór tych krajów wynika z tego, że przeprowadziły one przeciwstawne strategie transformacji. W Polsce dokonano "terapię szokową", na Węgrzech - stopniową. Wydawałoby się więc, że w początkowej fazie Polska zanotuje znacznie większy spadek PKB niż Węgry. Jednakże na początku obydwa spadły o ok. 20%. Różnica polegała jedynie na różnicach w czasie - z pewnym opóźnieniem na Węgrzech. Autorzy konkludują, że gospodarka, która przeszła szokową terapię adaptowała się do równowagi znacznie szybciej po każdym zachwianiu. Natomiast po stopniowej terapii każdy zewnętrzny albo wewnętrzny wstrząs wydawał się ciągnąć nawet po 4 latach. Autorzy jednoznacznie oceniają, że Polska wybrała lepszą strategię.

Przeprowadziłem także własne badania na podstawie danych z Banku Światowego ze strony http://data.worldbank.org/data-catalog/world-development-indicators. Poprzednie analizy nie uwzględniały PKB na osobę. Dlatego sprawdziłem dynamikę realnego PKB per capita w dolarach* w rosnących przedziałach czasu. Nie dla wszystkich krajów dane były dostępne, a dla Węgier dopiero od 1991, dlatego zrobiłem dodatkową analizę od tego roku. Oto wyniki:



Od roku 1990 Polska osiągnęła najwyższy wzrost PKB na osobę w każdym przedziale czasu aż do 2016 r. Natomiast od 1991 pokonuje nas Albania - i to rzeczywiście sporo (żółty kolor w tabeli - wzrost PKB równy lub wyższy niż w Polsce).


Literatura:
[1] CBOS, EVALUATION OF THE POST-1989 TRANSFORMATION, June 2013;
[2] Lee, M, Nziramasanga N., Ahn, S. K., Transformation Strategy and Economic Performance: Hungary and Poland, Jan. - Feb., 2004;
[3] Popov, V. Shock Therapy Versus Gradualism: The End Of The Debate (Explaining The Magnitude Of Transformational Recession), April 2002;
[4] Stiglitz, J., Whither Reform? Ten Years of Transition. World Bank’s Annual Bank Conference on Development Economics, Wash., D. C., April, 1999.

*GDP per capita (constant 2010 US$): gross domestic product divided by midyear population. GDP is the sum of gross value added by all resident producers in the economy plus any product taxes and minus any subsidies not included in the value of the products. It is calculated without making deductions for depreciation of fabricated assets or for depletion and degradation of natural resources. Data are in constant 2010 U.S. dollars.

poniedziałek, 22 maja 2017

Filtr Hodricka-Prescotta

Od czasu Schumpetera i Keynesa cykle gospodarcze przestały być zwykłym odchyleniem od równowagi gospodarki kapitalistycznej, a stały się jej immanentnym elementem. Naturalnie pojawiło się wtedy pytanie czy można modelować i przewidywać cykle. Przez dziesiątki lat powstało mnóstwo różnych modeli starających się na nie odpowiedzieć. Jednym z bardziej znanych jest filtr Hodricka-Prescotta (HP). Współcześnie model ten jest często używany do prognozy PKB, inflacji, stopy procentowej i innych zmiennych ekonomicznych. Częściowo łączy on teorię ekonomiczną z praktyczną analizą nieliniowych trendów. Z giełdowego punktu widzenia można powiedzieć, że dotyka jednocześnie analizy fundamentalnej i analizy technicznej.  Dlatego można spróbować użyć go pośrednio lub bezpośrednio do prognozy kursów giełdowych.

Hodrick i Prescott [1] najpierw definiują szereg czasowy y(t) (np. PKB) jako sumę zmiennego trendu g(t) (składowa wzrostu) oraz nieokresowego cyklu c(t) (stacjonarna reszta z wartością oczekiwaną zero):

(1)

Zmienna wzrostu, g(t), powinna być niestacjonarna, ale po dwukrotnym zróżnicowaniu, osiąga się często stacjonarność i w ten sposób dokonuje się de-trendyzacji. Dodatkowa zmienna stochastyczna c(t) mimo stacjonarności może być np. procesem ARMA (lub szerzej ARFMA), który zawiera autokorelacje. Aby znaleźć optymalne wartości oczekiwane, można określić następujące zadanie optymalizacyjne:

(2)

gdzie c(t) = y(t) - g(t).

Głównym problemem w tym zadaniu jest lambda, która wygładza szereg. Zgodnie z twierdzeniem podanym przez Hodricka i Prescotta jeżeli zmienna c(t) oraz zmienna [g(t) - g(t-1)] - [g(t-1) - g(t-2)] mają stacjonarny rozkład normalny, brak autokorelacji, średnią zero, to warunkowa wartość oczekiwana będzie rozwiązaniem problemu (2), jeżeli:

(3)
gdzie σ(c)^2 to wariancja zmiennej cyklicznej oraz σ(g)^2 to wariancja trendu.


Można zauważyć, że coś tu się nie zgadza: przed chwilą powiedziałem, że c(t) może być modelem z autokorelacjami, a teraz podaję twierdzenie na optimum, gdy tych nie ma. Powinniśmy to twierdzenie rozumieć co najwyżej jako przybliżenie rzeczywistości. Z drugiej strony powstaje wtedy pytanie: jeśli to przybliżenie, to należy traktować zmienną cykliczną jak zwykłą zmienną losową, ale wtedy nie może być zmienną cykliczną. Na ten problem zwraca też uwagę Hamilton w świeżej pracy znamiennie zatytułowanej "Why You Should Never Use the Hodrick-Prescott Filter" [2]. HP został tam poddany surowej krytyce, jednak jest to zupełnie nowy temat.


I tak zresztą wzór (3) niewiele daje, jeżeli wariancje tych procesów zmieniają się w zależności od wyboru lambda. Wzór ten bowiem zakłada, że znamy lambdę. Gdyby jednak zwiększanie tego parametru nie powodowało szczególnych zmian w obydwu wariancjach, to otrzymalibyśmy całkiem niezłe narzędzie. W praktyce HP polecają używać lambda = 1600 dla danych kwartalnych.
Jeżeli jednak mamy dane o większej częstości, to lambda wymaga odpowiedniego przekształcenia. Ravn i Uhlig [3] wyprowadzają następującą formułę:

(4)

gdzie f to częstość pobierania próbki w pewnym ustalonym z góry okresie czasu T. Częstość = 1/T. Załóżmy, że ten okres czasu to kwartał. Jeżeli pobieramy próbkę raz na kwartał, to znaczy, że f = 1. Jeśli z góry wiemy, że dla kwartalnych danych lambda = 1600, to mamy:

Jeżeli pobieramy próbkę 1 na miesiąc, to znaczy, że pobieramy ją 3 razy w ciągu kwartału, który ciągle stanowi nasz okres odniesienia. Oznacza to f = 1/3:

Jeżeli pobieramy próbkę 1 na rok, tj. roczne dane, tzn. f = 4, bo rok stanowi 4-krotność kwartału, tzn. równa się 4*T: 

(5)

Wzór (4) można przedstawić w innej, trochę łatwiejszej postaci:

(6)

gdzie n to liczba obserwacji w ciągu 1 roku. Jeżeli bierzemy dane miesięczne, to n = 12, bo n =4T = 4*(liczba miesięcy w kwartale). Jeżeli dane są kwartalne, n = 4, a jeśli roczne n = 1. Wzór (6) jest bardziej intuicyjny, bo od razu wiemy czym jest n: odpowiada na pytanie ile razy obserwacje występują w roku. Jeśli przyjmiemy, że lambda kwartalna = 1600, wtedy będziemy operować wzorem:

(7)


Przykład 1. Zróbmy eksperyment na funkcji (sinus + biały szum) dla 1000 obserwacji. W Gretlu łatwo dostępny jest filtr HP (filtracja). Gretl automatem wybrał 100, ale ustawmy na początek lambda = 1600. Dostajemy obraz:


Dobrą opcją jest możliwość zapisania zarówno zmiennej trendu g(t), jak i cyklu c(t). Możemy więc sprawdzić czy została spełniona zależność (3). Po dwukrotnym zróżnicowaniu g(t) i wzięciu wariancji obydwu zmiennych dostałem lambda = 70090. A więc nie zgadza się. Aby zachować zależność (3) możemy spróbować do HP podstawić lambda = 70090. Dostaniemy wtedy:


Im większa lambda, tym większa gładkość sfiltrowanej funkcji. Jasne więc, że im większa lambda, tym obraz będzie ładniejszy, co automatycznie nie oznacza, że będzie to optimum. Gdy znów sprawdzimy zależność (3), okaże się, że nadal nie jest spełniona: dostałem na jej podstawie wartość 227932. Można więc przypuszczać, że wartość ta będzie ciągle rosła. Maksymalną wartość, jaką można podstawić w Gretlu to lambda = 999999. Wtedy mamy:


Ten przykład dobrze pokazuje, że maksymalizacja lambdy nie jest dobrym pomysłem: odchylenia szeregu od filtru są znacznie większe niż przy mniejszych wartościach. Nie da się jednak odnaleźć takiego optimum, które spełniałoby (3), bo zarówno drugie różnice trendu g(t), jak i zmienna c(t) nie spełniają warunków tamtego twierdzenia (występują autokorelacje, brak normalności). Tutaj stosując wzór (3) dostanę lambda = 1,55 mln.

Można by zadać takie pytanie: skoro rzeczywiste częstości danych są znane, a posiadamy wzór (5) i (6), to po co liczyć lambdę z (3)? Rzecz w tym, że liczba 1600 została wybrana przez HP, dlatego że pasowała do danych empirycznych. a więc dla każdych innych jest właściwie z sufitu. Zacytuję ich fragment, aby dodatkowo to wyjaśnić:


Są różne metody szacowania lambdy - można wykorzystać filtr Kalmana, jak to robią HP lub estymator największej wiarygodności jak Schlicht [4].


Przykład 2. PKB kwartalnie od 1 kw 1996 do 1 kw 2017. Dane indeksu realnego wzrostu PKB r/r, z kwartalną częstością pobrałem z bankier.pl. Gretl automatycznie ustawia przy danych kwartalnych lambda = 1600. Dostajemy:



Przykład 3. Nowe zamówienia w przemyśle (ceny bieżące) miesięcznie od początku 2006 do marca 2017. Indeks zmian r/r, z częstością miesięczną pobrałem z GUS. Gretl automatycznie ustawia przy danych miesięcznych lambda = 14400. Dostajemy:



Mimo automatycznej lambdy, powinniśmy sprawdzić jak filtr się zachowa, gdy zastosujemy wzór (7). Dostaniemy lambda = 6,25*12^4 = 129600:


Wydaje się, że ten drugi wariant jest rzeczywiście lepszy.


Przykład 4. WIG - 2006-marzec 2017, miesięcznie (257 obserwacji). To samo, gdy lambda = 14400:


Lambda = 129600:



Przykład 5. WIG 1996-marzec 2017, miesięcznie. Jak wyżej lambda = 14400:



 lambda = 129600:


Jak widać zakres próby nie zmienił zachowania filtra.

Przykład 6. Ruch Browna. Dla porównania także 257 obserwacji losowego procesu o rozkładzie normalnym: lambda = 14400:


Lambda = 129600:


Przykład ten ilustruje, że filtr HP nie jest żadnym magicznym narzędziem, nie wychwytuje rzeczywistego trendu, tylko to co przypomina trend. Powyższy ruch Browna z definicji ma wartość oczekiwaną równą 0 oraz brak autokorelacji.


Przykład 7. Zmiany WIG vs. zmiany ruchu Browna. Dla pełnego obrazu zrobiłem porównanie samych zmian kursów. Również w tym przypadku filtr HP daje podobne sygnały jak przy ruchu Browna. Użyłem tu lambdy 129600:

WIG (ten sam zakres co poprzednio):



Zmiany ruchu Browna (ten sam zakres):




Filtr Hodrika-Prescotta jest tak naprawdę bardziej wysublimowanym rodzajem średniej kroczącej, można go dodać lub zastąpić MA w analizie technicznej. Wydaje się, że sama znajomość przeszłości niewiele pomoże przy przewidzeniu przyszłych zmian. Rynek składa się z takich elementów jak oczekiwania finansowe, wielkość obrotów (energia kapitału, która z jednej strony wspomaga daną tendencję, z drugiej zmniejsza ryzyko płynności), psychologia (wpływ przeszłości oraz wzrost wariancji, kurtozy i skośności). Dlatego włączenie ich do modelu ekonometrycznego, a następnie użycie filtru HP na tym modelu powinno dawać lepsze rezultaty.


Literatura:
[1] Robert J. Hodrick, Edward C. Prescott, Postwar U.S. Business Cycles: An Empirical Investigation, Feb., 1997;
[2] James D. Hamilton, Why You Should Never Use the Hodrick-Prescott Filter, July 30, 2016;
[3] Morten O. Ravn, Harald Uhlig, On Adjusting the Hodrick-Prescott Filter for the Frequency of Observations , May, 2002;
[4] Ekkehart Schlicht, Estimating the smoothing parameter in the so-called Hodrick-Prescott filter, 2005.

poniedziałek, 15 maja 2017

Dlaczego bardzo rentowne spółki mają często niskie C/Z?

Często wydaje się, że teoria nie idzie w parze z praktyką i np. spółki, które posiadają silną pozycję rynkową i mają ROE większe od kosztu kapitału własnego (np. znacznie powyżej 10%) posiadają wskaźnik Cena/Zysk taki sam jak każda inna przeciętna spółka. Zgodnie z modelem rezydualnym, który kiedyś opisywałem (Prawdziwe znaczenie wskaźnika Cena/Zysk i Cena /Wartość księgowa. Badanie empiryczne) im wyższe ROE, tym wyższe C/Z. W czym więc problem?
 Model rezydualny zakłada, że parametry są stałe w czasie. Jeżeli ROE jest stały, to i stopa wzrostu zysku jest stała.  Stopa wzrostu jest wtedy wyrażona wzorem k*ROE, gdzie k to część zysku netto zatrzymanego w spółce, który generuje wzrost w przyszłości (dodatkowo może to być też nowa emisja akcji podzielona przez zysk lub jej odwrotność czyli nabycie akcji).

Poniższy wykres pokazuje jak się zachowuje C/Z w modelu rezydualnym w zależności od ROE oraz współczynnika k, przy założeniu, że koszt kapitału własnego = 10%.



Dla porównania C/Z dla WIG w latach 2007-2017 kształtował się następująco (żródło: stooq.pl):


 Średnia = 15,2; mediana = 14,4.

W modelu rezydualnym, C/Z = 14-15 odpowiada dla:
k = 30% i ROE = 17-18% lub
k = 40% i ROE = 14,5-15% lub
k = 50% i ROE = 13-13,5% lub
k = 70% i i ROE = 11-11,5%.

Z historycznego punktu widzenia k = 40% i ROE = 14,5-15% stanowi możliwy do utrzymania poziom dla spółek. Należy jednak pamiętać, że skład WIG zmienia się, a więc te najwyżej wyceniane będą mieć po prostu wyższe te dwa parametry. Można powiedzieć, że spółki giełdowe starają się z jednej strony utrzymać wysokie ROE, z drugiej chcą utrzymać wzrost, ale tylko na takim poziomie, by nie spowodować spadku ROE. Im większy zatrzymany zysk, tym trudniej zachować wysokie ROE.


Aby uwiarygodnić model wyceny akcji, powinniśmy użyć ogólnego modelu DCF. Ponieważ w tym modelu najczęściej stosuje się geometryczny wzrost zysków, oszacowaną cenę można nadal podzielić przez zysk z okresu bieżącego i w ten sposób uzyskać wskaźnik c/z. Jeżeli założymy, że:
- spółka zatrzymuje zawsze pewien stały procent zysku (30, 40, 50 lub 70%)
- początkowe ROE utrzyma się przez najbliższe 7 lat
- przez następne 3 lata nastąpi spadek o kilka pkt proc. (w Dodatku podałem szczegóły)
- od 11 roku ROE wyniesie 10%,
to przy koszcie kapitału własnego = 10% wskaźnik C/Z będzie się kształtował jak poniżej:



Dane z wykresu:



Analizując te dane, stwierdzamy, że spółka, która ma k równe 30% lub 40%, nawet przy wielkiej rentowności nie osiągnie C/Z = 15. Dopiero stanie się tak przy k = 50% przy warunku, że obecne ROE > 21%. Nawet dla k = 70% osiągnięcie C/Z jest możliwe dopiero przy bieżącym ROE > 17%. To pokazuje, jak restrykcyjne jest uzyskanie przeciętnej dla WIG wartości tego wskaźnika. Jeśli więc firma na na dziś ma bardzo wysoką rentowność, ale rynek spodziewa się, że po 10 latach wróci do średniej, to C/Z nie powinien być specjalnie duży. Co jeśli k = 0? Oznacza to, że wzrost zysku będzie zerowy, czyli ROE nie będzie mieć żadnego wpływu na wycenę: otrzymamy zwykły model P = zysk / R. Przy założeniu R = 10%, dostajemy za każdym razem c/z = 10.


Dodatek:
Dla DCF przyjąłem następujące wartości w kolejnych latach dla różnych wariantów: