piątek, 11 marca 2022

Walka z fake-newsami? Może niech zaczną od siebie?

Od ok. 2 lat trwa na szeroką skalę walka z tzw. fake-newsami. Niestety wg mnie jest to ryzykowne, bo jej ofiarą mogą paść sami fact-checkerzy. Problem polega na asymetrii między fact-checkerem a dezinformującym medium: ten pierwszy musi z samej swojej natury wykazywać się najwyższą starannością i rzetelnością. Ten drugi rzecz jasna nie musi. Jednak staranność i rzetelność wymaga wysiłku i czasu na analizę, co ogranicza jego możliwości. Ponieważ te drugie nie dbają o prawdę, ale szybkość, to będą powielać znacznie więcej fake-newsów niż ci pierwsi będą w stanie je wyłapać. Może to prowadzić do sytuacji, że ci pierwsi tracąc czujność, chcąc coś obalić, wpadają we własne sidła - same podają fałszywe informacje.

I tak jest Dziennik Gazeta Prawna (DGP) - powszechnie szanowana i uważana za medium wiarygodne, z ogromną ilością porad prawnych i opinii. I właśnie trafiłem na krótki artykuł, który kompromituje dziennik. Mianowicie, chodzi o Czy NBP „drukuje puste pieniądze”? z 16 grudnia 2021.

Już pierwsze zdanie to fałsz:

NBP nie „drukuje pustych pieniędzy” jak twierdzą autorzy fake newsów publikowanych w mediach społecznościowych. 

Zgodnie z art. 227 ust. 1 Konstytucji centralnym bankiem państwa jest Narodowy Bank Polski, któremu przysługuje wyłączne prawo emisji pieniądza oraz ustalania i realizowania polityki pieniężnej, odpowiada on także za wartość polskiego pieniądza. Dalej, zgodnie z art. 33 ust. 1 ustawy z dnia 29 sierpnia 1997 r. o Narodowym Banku Polskim wprowadzanie do obiegu banknotów lub monet odbywa się na podstawie zarządzenia Prezesa Narodowego Banku Polskiego ogłoszonego w Monitorze Polskim, które ustala termin wprowadzenia do obiegu i wielkość emisji oraz wzór i wartość nominalną banknotów lub monet, a w przypadku monet także stop, próbę i masę.

Drukowanie pieniędzy czyli ich emisja, zależy od polityki pieniężnej, a więc czy będzie to pusty pieniądz. Już z Konstytucji wynika więc, że NBP nie tylko drukuje pieniądze, ale że drukuje puste pieniądze - jeśli chce zwiększyć inflację. Z ustawy o NBP wynika, że ustala on wielkość nowej podaży pieniądza.

W dalszej części artykułu autor stara się przekonać czytelnika, że to banki komercyjne "drukują" pieniądze:

We współczesnych gospodarkach rynkowych pieniądz kreowany jest przez banki komercyjne poprzez udzielanie kredytów. Banki, udzielając kredytu, tworzą nowy pieniądz, którego nie było przed udzieleniem tego kredytu.

Mamy rozdwojenie jaźni? O co tu chodzi? Autor po prostu nie rozumie w ogóle tematu, który porusza. Drukowanie i emisja pieniądza to jedno. Kreacja pieniądza to drugie. To są są dwie różne sprawy.

W uproszczeniu można powiedzieć, że są dwa rodzaje "drukowania pieniędzy":

(1) emisja pieniądza, która nie musi oznaczać materialnej gotówki w kasach, ale w formie cyfrowej na rachunkach bankowych;

(2) kreowanie pieniądza poprzez pożyczanie pieniędzy innym podmiotom, wykorzystując maszynerię rachunkowości w postaci aktywów i pasywów: jeśli pożyczę od banku pieniądze na inwestycję, to bank ma należności, a ja mam zobowiązania. Jeżeli jednak ja te pieniądze przeznaczę na zakup obligacji firmy, to zyskuję teraz należności w firmie, a firma ma zobowiązania u mnie. Trick polega na tym, że choć matematycznie zobowiązania redukują się z należnościami, to globalnie księgowo następuje podwojenie aktywów - są to należności banku (początkowa pożyczka) i moje należności (moje obligacje). 

Jak widać pkt 1 to prawdziwa kreacja pieniądza, a druga to po prostu kreatywna księgowość. Łatwo udowodnić, że ta druga to nie jest żadne drukowanie nowych pieniędzy: gdyby nagle bank wymagał ode mnie spłaty całego długu, to musiałbym ja wymagać spłaty całego długu od firmy. Firma musiałaby znowu od kogoś innego. Cała gospodarka by się zawaliła! Jak widać ta kreacja pieniądza - kreatywna księgowość - w całości opiera się na zaufaniu podmiotów gosp. do siebie. Można powiedzieć, że cała współczesna gospodarka rynkowa na tym się opiera. To z tego m.in. powodu nastąpił taki kryzys w 2007 r., kiedy się okazało się, że to zaufanie było za duże - bo właśnie całe to pompowanie opierało się na kreatywnej księgowości. Niektórzy zwalają winę kryzysu na wolny rynek, wskazując na jego niedoskonałości w postaci przesadnego zaufania. No nie - gdyby nie przepisy prawne, zrzucające całą odpowiedzialność na banki lub państwo, to nie byłoby tego zaufania. 

Wróćmy jeszcze na moment do tego artykułu DGP. Autor - niepodpisany zresztą - stwierdza:

Bank centralny nie zwiększa podaży pieniądza, kupując obligacje. Te zakupy są dokonywane głównie od banków komercyjnych, które – w zamian za sprzedane papiery wartościowe – otrzymują płatność na swoje rachunki w NBP.

Podkreśliłem, że otrzymują płatność. A skąd niby NBP ma mieć na nią pieniądze? Z kosmosu? Trzyma w sejfie prezesa? Widzimy, że autor pisze o rzeczach, o których nie ma pojęcia.

Oczywiście jest jeszcze możliwość, że to tekst kogoś pracującego w NBP, który celowo wprowadza czytelników w błąd. Biorąc jednak pod uwagę niekompetencję osób pracujących w tej instytucji od kilku lat, nie ma to znaczenia. 

P. S. Dla zainteresowanych: dokładniejsze wyjaśnienie związku między gospodarką a pieniądzem przedstawiłem tutaj.

środa, 9 marca 2022

GARCH zamiast wstęgi Bollingera

A więc prognoza ropy za pomocą AT nie sprawdziła się. Wygrała ekonomia - blokada podaży rosyjskiej ropy wywołała eksplozję cenową ropy na całym świecie. Można mówić o odwróconym czarnym łabędziu, którego też brałem pod uwagę dwa tygodnie temu. Gdy Rosja rozpoczęła inwazję na Ukrainę, cena oscylowała wokół 100$, teraz jest to 125, tygodniowo wstęga Bollingera mocno przekroczona, RSI(14) także



W krótkim okresie na statystyce nie można nigdy polegać, ale w długim już tak. Dlatego nie ma wątpliwości, że nastąpi powrót. Zazwyczaj pada teraz pytanie: kiedy? Ale to złe pytanie, bo wiadomo, że to nastąpi prędzej niż później. Ważniejsze, jak mocny będzie powrót? Bo zamiast oczekiwanego powrotu do średniej, możemy dostać prawie poziomy kierunek w kolejnych tygodniach. Gdyby tak było, to znaczyłoby, że wariancja stóp zwrotu spadła niemal do zera.

Zamiast Bollingera, którego zresztą nie jestem zwolennikiem, znacznie lepiej używać modelu klasy ARCH. Oprócz nieporównywalnej mocy statystycznej, pozwala on także prognozować odchylenia w kolejnym okresie.

Najprostszym sposobem, nie wymagającym żadnej wiedzy programistycznej, jest używanie Gretla. Program ten, jak na darmowy, całkiem nieźle się rozwija, obecna wersja pochodzi z lutego 2022. Przy instalacji możemy zaznaczyć język polski, choć musimy się nastawić przeskakiwanie z polskiego na angielski, bo program tutaj ma pewne braki.

Wstępne ustawienia: Tygodniowe notowania cen (na zamknięcia) ropy pochodzą z https://stooq.pl/q/d/?s=cl.f . Dane od 07.01.2018 do 6.03.2022. W gretlu otwieramy plik z danymi, np. .csv. Problem zazwyczaj dotyczy ustawienia dat, które trzeba ręcznie ustawić, bo program często nie potrafi czytać prawidłowo dat. Jeśli pyta o typ danych, wybieramy szeregi czasowe. Kiedy dane są gotowe, zaznaczamy zmienną - cenę ropy. Wybieramy Dodawanie zmiennych -> procentowe zmiany dla wybranych zmiennych -> wpisujemy nazwę dla stopy zwrotu, np. 'ropa_zwrot'. 

Model GARCH: Wybieramy Model -> Modele jednowymiarowych szeregów czasowych -> GARCH variants. Upewniamy się, że zmienna zależna to ropa_zwrot. Resztę ustawień na razie zostawiamy. Dajemy OK. Dostałem model


Wszystkie współczynniki istotne stat., czyli jesteśmy na dobrej drodze. Jednak to początek. W otrzymanym oknie klikamy na ikonę wykresu, wybieramy Density:


Jedna uwaga: dlaczego podpisano residuals (reszty), a nie returns (stopy zwrotu)? Zauważmy, że rozkład teoretyczny i empiryczny mają średnią zero. Różnica między resztami / błędami a stopami zwrotu jest taka, że te pierwsze mają średnią zawsze równą zero, a te drugie niekoniecznie. Ich wariancje są już sobie równe (dowód - ostatni wzór tutaj). Zazwyczaj tam gdzie są modele klasy ARCH, określenie residuals / errors, czytamy to jako zmienna (tu stopa zwrotu) pomniejszona o swoją średnią. Trzeba jednak dodać, że w tym modelu pojawiają się też standaryzowane reszty - wtedy dodatkowo taka reszta dzielona jest przez odchylenie standardowe, aby sprowadzić do porównywalności ze standardowym rozkładem normalnym. To jest właśnie ten przypadek (opis brzmi std residuals vs std normal). 

Rozkład empiryczny jest leptokurtyczny, czyli stopy zwrotu nie mają rozkładu normalnego. Dla pewności można zrobić test normalności. Zmienna -> Testy normalności:

................................................................

Test na normalność rozkładu ropa_zwrot:

 Test Doornika-Hansena = 121,681, z wartością p 3,77906e-027

 Test Shapiro-Wilka = 0,901681, z wartością p 9,5057e-011

 Test Lillieforsa = 0,0966947, z wartością p ~= 0

 Test Jarque'a-Bera = 277,187, z wartością p 6,45201e-061

................................................................

Wszędzie p < 0,01 , co daje pewność, że to nie jest rozkład Gaussa.

Trzeba zmienić w opcjach GARCH variants -> Rozkład -> zmieniamy na t (czyli t-Studenta).  

 


Parametry są istotne stat - efekt ARCH i GARCH ewidentnie występuje.

Sprawdzamy znów Density:


Wygląda to dużo lepiej - rozkład t pozwala imitować efekty leptokurtozy.

Ok, mamy model, to możemy teraz zobaczyć graficznie, jak zmienia się warunkowe odchylenie standardowe w porównaniu z resztami. Klikamy ikonę wykresu -> Time series:


To co tu dostaliśmy, to nie są wartości otoczone przedziałem ufności - ten zresztą ma zakres ok. 2 odchyleń standardowych. A tutaj mamy jedno odchylenie - warunkowe. Interesujące jest, że niemal zawsze dane mieszczą się w tym zakresie. Z 2-3 razy było duże wychylenie poza ten obszar (rok 2020), ale tak wielkiego jak teraz jeszcze nie było.

Powiedzmy, że chcemy porównać dodatkowo warunkowe odchylenie z niewarunkowym - na jednym wykresie. Tego już tak łatwo nie dostaniemy. Wg opisu wykresu mamy tu reszty - już niestandaryzowane - otoczone niestandaryzowanymi odchyleniami warunkowymi. Klikamy na oknie modelu "Zapisz bundle jako" -> wybieramy uhat (series), zapisujemy zmienną, a następnie to samo dla h (series). W głównym oknie gretl dostaliśmy dwie nowe zmienne w postaci niestandaryzowanych reszt (uhat) oraz warunkowej wariancji (h). Teraz klikamy Dodawanie zmiennych -> Definiowanie nowej zmiennej. Wpisujemy csd_plus = h^0.5. Następnie Dodawanie zmiennych -> Definiowanie nowej zmiennej -> wpisujemy csd_minus = -h^0.5. Otrzymaliśmy warunkowe odchylenia std na plus i minus. I w końcu Dodawanie zmiennych -> Definiowanie nowej zmiennej -> wpisujemy: 

series usd_plus = sd(uhat). 

Analogicznie Dodawanie zmiennych -> Definiowanie nowej zmiennej:

series usd_minus = -sd(uhat). 

Uzyskaliśmy niewarunkowe odchylenia std (na plus i minus).

Wybieramy Widok -> Wykres szeregów czasowych. Zaznaczamy 5 zmiennych: uhat, csd_plus, csd_minus, usd_plus i usd_minus. Dostaniemy wykres:


Co warto zauważyć, niewarunkowe odchylenie std jest stosunkowo wysoko umiejscowione - jest to efekt roku 2020, który zaburzył ogólne statystyki. Jest to dobry przykład dowodzący, że błędnym podejściem jest klasyczne opieranie się na zwykłym odchyleniu standardowym. 

Niemniej w ostatnim tygodniu tempo cen przekroczyło znacznie powyżej 3 odchyleń std.  Zdarzenie tego rodzaju w ciągu 2 lat jest mało prawdopodobne. To znaczy, że musi teraz nastąpić powrót do średniej.

W sumie powstają 2 wnioski:
(1) nie powinniśmy się sugerować statycznym odchyleniem std, tylko warunkowym, dynamicznym;
(2) nie tylko ceny, ale też wariancje warunkowe są nieprzewidywalne. Można pobawić się w prognozy, ale lepiej posłużyć się GARCH do oceny powrotu ceny do średniej. Czyli otrzymujemy ulepszoną wersję wstęgi Bollingera.