Skip to main content

Ruchome średnie sas makro


Przykładowy kod na karcie Pełny kod ilustruje sposób obliczania średniej ruchomej zmiennej przez cały zestaw danych, w ciągu ostatnich N obserwacji w zbiorze danych lub w ciągu ostatnich N obserwacji w obrębie grupy BY. Te przykładowe pliki i przykłady kodu są dostarczane przez SAS Institute Inc., bez jakichkolwiek gwarancji, zarówno wyraźnych, jak i domniemanych, w tym między innymi domniemanych gwarancji przydatności handlowej i przydatności do określonego celu. Odbiorcy uznają i zgadzają się, że Instytut SAS nie ponosi odpowiedzialności za szkody wynikłe z użycia tego materiału. Ponadto Instytut SAS nie będzie popierał żadnych materiałów zawartych w niniejszym dokumencie. Te przykładowe pliki i przykłady kodu są dostarczane przez SAS Institute Inc., bez jakichkolwiek gwarancji, zarówno wyraźnych, jak i domniemanych, w tym między innymi domniemanych gwarancji przydatności handlowej i przydatności do określonego celu. Odbiorcy uznają i zgadzają się, że Instytut SAS nie ponosi odpowiedzialności za szkody wynikłe z użycia tego materiału. Ponadto Instytut SAS nie będzie popierał żadnych materiałów zawartych w niniejszym dokumencie. Obliczyć średnią ruchową zmiennej przez cały zestaw danych, w ciągu ostatnich obserwacji N w zbiorze danych lub w ciągu ostatnich N obserwacji w obrębie grupy BY. Regulowane średnie procesy błędów ruchomych (błędy ARMA) i inne modele, które dotyczą lagi terminów błędów można oszacować przy użyciu instrukcji FIT i symulacji lub prognoz przy użyciu instrukcji SOLVE. Modele ARMA dla procesu błędów są często stosowane w modelach z autokorelacjami resztkowymi. Makro AR może być używane do określania modeli z procesami błędów autoregresji. Makro MA można używać do określania modeli z ruchomymi średnimi błędami. Błędy autoregresji Model z błędami autoregresyjnymi pierwszego rzędu, AR (1), ma postać, podczas gdy proces usterki AR (2) ma formę i tak dalej dla procesów wyższego rzędu. Zauważmy, że s są niezależne i identyczne, a ich oczekiwana wartość wynosi 0. Przykład modelu z elementem AR (2) jest dla tak zwanych procesów wyższego rzędu. Na przykład można napisać prosty model regresji liniowej z błędami średnie MA (2), ponieważ MA1 i MA2 są parametrami średniej ruchomej. Zauważ, że funkcja RESID. Y jest automatycznie definiowana przez PROC MODEL, ponieważ w modelach MA używana jest funkcja ZLAG do obcinania rekursji opóźnień. Zapewnia to, że opóźnione błędy zaczynają się od zera w fazie zalegania i nie propagują brakujących wartości, gdy brakuje zmiennych z okresu lagowania, i zapewnia, że ​​przyszłe błędy są zero, a nie brakuje podczas symulacji lub prognozowania. Szczegółowe informacje na temat funkcji opóźnienia można znaleźć w sekcji Lag Logic. Model ARMA (p, q) może mieć następującą postać: Model ARMA (p, q) można określić w następujący sposób: gdzie ARi i MA j reprezentują parametry autoregresji i ruchome-średnie dla różnych opóźnień. Możesz użyć dowolnych nazw dla tych zmiennych i istnieje wiele równoważnych sposobów, w jaki może być napisana specyfikacja. Procesy ARMA wektora można również oszacować za pomocą modelu PROC MODEL. Na przykład dwa zmienne procedury AR (1) dotyczące błędów dwóch zmiennych endogennych Y1 i Y2 można określić w następujący sposób: Problemy z konwergencją z modelami ARiMR Modele ARMA mogą być trudne do oszacowania. Jeśli szacunkowe parametry nie znajdują się w odpowiednim zakresie, wzrastające wykładniczo wzory ruchome średnioroczne wzrastają. Obliczone reszty dla późniejszych obserwacji mogą być bardzo duże lub mogą przepełnić. Może się tak zdarzyć, ponieważ użyto niewłaściwych wartości początkowych lub dlatego, że iteracje oddalały się od rozsądnych wartości. Należy zachować ostrożność przy wybieraniu wartości początkowych dla parametrów ARMA. Wartości wyjściowe równe 0,001 dla parametrów ARMA zazwyczaj działają, jeśli model pasuje dobrze do danych, a problem jest dobrze przygotowany. Zauważ, że model MA można często przybliżyć za pomocą modelu wysokiej klasy AR i vice versa. Może to powodować wysoką współliniowość w mieszanych modelach ARMA, co z kolei może powodować poważne złe warunki w obliczeniach i niestabilność szacunków parametrów. Jeśli występują problemy z konwergencją podczas szacowania modelu z procesami błędów ARMA, spróbuj oszacować w krokach. Po pierwsze, użyj instrukcji FIT, aby oszacować tylko parametry strukturalne z parametrami ARMA utrzymywanymi na zero (lub do rozsądnych wcześniejszych szacunków, jeśli są dostępne). Następnie użyj innej instrukcji FIT, aby oszacować tylko parametry ARMA, używając wartości parametrów strukturalnych z pierwszego uruchomienia. Ponieważ wartości parametrów strukturalnych prawdopodobnie zbliżą się do ich ostatecznych szacunków, szacunkowy parametr ARMA może się teraz zbiegać. Na koniec użyj innej instrukcji FIT w celu uzyskania równoczesnych oszacowań wszystkich parametrów. Ponieważ początkowe wartości parametrów mogą być dość zbliżone do ich ostatecznych wspólnych szacunków, szacunki powinny się szybko zbiegać, jeśli model jest odpowiedni dla danych. Warunki początkowe AR Początkowy okres opóźnienia błędów w modelach AR (p) można modelować na różne sposoby. Metody autoregresywnego uruchamiania błędów obsługiwane przez procedury SASETS są następujące: procedury najmniejszych kwadratów warunkowych (procedury ARIMA i MODEL) bezwarunkowe najmniejsze kwadraty (procedury AUTOREG, ARIMA i MODEL) maksymalne prawdopodobieństwo (procedury AUTOREG, ARIMA i MODEL) Yule-Walker (AUTOREG tylko procedura) Hildreth-Lu, która usuwa pierwsze obserwacje (tylko procedura MODEL) Zobacz rozdział 8, procedura AUTOREG, aby wyjaśnić i omówić zalety różnych metod uruchamiania AR (p). Inicjacje CLS, ULS, ML i HL mogą być wykonywane przez PROC MODEL. W przypadku błędów AR (1) te inicjalizacje można wyprodukować, jak pokazano w tabeli 18.2. Metody te są równoważne w dużych próbkach. Tabela 18.2 Inicjalizacja przeprowadzona przez PROC MODEL: AR (1) BŁĘDY Początkowe opóźnienia w błędach modeli MA (q) można również modelować na różne sposoby. Poniższe paradygmaty uruchamiania błędów ruchomych średnich są obsługiwane przez procedury ARIMA i MODEL: bezwarunkowe najmniejsze kwadraciki warunkowe najmniejszych kwadratów Metoda najmniejszych kwadratów warunku najmniejszych kwadratów jest nie optymalna, ponieważ ignoruje problem uruchamiania. Zmniejsza to wydajność szacunków, chociaż pozostają one bezstronne. Początkowa zalegająca reszta, rozciągająca się przed rozpoczęciem danych, przyjmuje się jako 0, ich bezwarunkową oczekiwaną wartość. Wprowadza to różnicę pomiędzy tymi resztami a uogólnionymi resztami najmniejszych kwadratów dla ruchomą średnią kowariancją, która w przeciwieństwie do modelu autoregresji utrzymuje się przez zestaw danych. Zwykle ta różnica szybko się zbieżna z wartością 0, ale w przypadku niemal niezmiennych ruchomej średniej procesów konwergencja jest dość powolna. Aby zminimalizować ten problem, powinieneś mieć mnóstwo danych, a szacunkowe średnie ruchome parametry powinny znajdować się w zakresie inwersji. Ten problem można rozwiązać kosztem napisania bardziej złożonego programu. Można bezwzględnie określić najmniejsze kwadraty dla procesu MA (1), określając następujący model: Ruchome średnie błędy mogą być trudne do oszacowania. Powinieneś rozważyć zastosowanie aproksymacji AR (p) do średniej ruchomości. Ruchome przeciętne proces może być dobrze przybliżone procesem autoregresji, jeśli dane nie zostały wygładzone lub zróżnicowane. AR Makro SAS makro AR generuje instrukcje programowania dla modelu PROC MODEL dla modeli autoregresji. Makro AR jest częścią oprogramowania SASETS i nie trzeba ustawiać specjalnych opcji, aby używać makra. Proces autoregresji może być zastosowany do błędów równań strukturalnych lub samej serii endogennych. Makro AR może być użyte do następujących typów autoregresji: nieograniczona autoregresja wektorowa autoregresja wektorowa Jednorodna autoregresja Aby obliczyć wynik błędu równania jako proces autoregresji, użyj następującej instrukcji po równaniu: Na przykład załóżmy, że Y jest liniową funkcję X1, X2 i błąd AR (2). Piszesz ten model w następujący sposób: Połączenia z AR muszą pochodzić po wszystkich równaniach stosowanych w procesie. Poprzednia makra wywołania, AR (y, 2), generuje instrukcje pokazane na wyjściu LIST na rysunku 18.58. Rysunek 18.58 Wyjście opcji LIST dla modelu AR (2) Zmienne prefiksowane PRED są zmiennymi tymczasowymi programu, tak aby zwłoki pozostałości były prawidłowymi resztami, a nie tymi, które zostały ponownie zdefiniowane przez to równanie. Należy zauważyć, że jest to równoważne oświadczeniach wyraźnie napisanych w sekcji Ogólne formularze dla modeli ARiMR. Można również ograniczyć parametry autoregresji do zera przy wybranych opóźnieniach. Na przykład, jeśli chcesz, aby parametry autoregresji były opóźnione w wersjach 1, 12 i 13, możesz użyć następujących stwierdzeń: Te instrukcje generują dane wyjściowe pokazane na rysunku 18.59. Rysunek 18.59 Wyjście opcji LIST dla modelu AR z opóźnieniami 1, 12 i 13 WZÓR PROCEDURY ZAKOŃCZENIOWANIA SKŁADNIAJĄCEGO KONIECJNEGO PRZEWODNICZĄCA PRED. yab x1 c x2 RESID. y PRED. y - BRAK PRZEWLEKŁA. y - y OLDPRED. y PRED. y yl1 ZLAG1 (y - perdy) yl12 ZLAG12 (y - perdy) yl13 ZLAG13 (y - perdy) RESID. y PRED. y - ACTUAL. y ERROR. y PRED. y - y Istnieją wariantów warunkowej metody najmniejszych kwadratów, w zależności od tego, czy obserwacje na początku serii są wykorzystywane do nagrzewania procesu AR. Domyślnie metoda warunku najmniejszych kwadratów AR wykorzystuje wszystkie obserwacje i przyjmuje zera dla początkowych opóźnień w terminach autoregresji. Korzystając z opcji M, możesz zażądać, aby AR używała bezwarunkowej metody najmniejszych kwadratów (ULS) lub maksymalnego prawdopodobieństwa (ML). Na przykład omówienie tych metod znajduje się w części AR Warunki początkowe. Korzystając z opcji MCLS n, możesz poprosić o użycie pierwszych n obserwacji do obliczania szacunków początkowych opóźnień autoregresji. W tym przypadku analiza rozpoczyna się od obserwacji n 1. Na przykład: za pomocą makra AR można zastosować model autoregresji do zmiennej endogenicznej zamiast do terminu błędów, używając opcji TYPEV. Na przykład, jeśli chcesz dodać pięć ostatnich opóźnień Y do równania z poprzedniego przykładu, możesz użyć AR, aby wygenerować parametry i opóźnienia, używając następujących stwierdzeń: Powyższe oświadczenia generują dane wyjściowe pokazane na rysunku 18.60. Rysunek 18.60 Wyjście opcji LIST dla modelu AR Y Model ten przewiduje Y jako kombinację liniową X1, X2, przecięcia i wartości Y w ostatnich pięciu okresach. Nieobciążone autoregresją wektora Aby wyliczyć warunki błędów zestawu równań jako procesu autoregresji wektora, użyj następującej postaci makra AR po równaniach: wartość parametru procesu jest dowolną nazwą, którą podajesz dla AR, aby używać w tworzeniu nazw dla autoregresji parametrów. Możesz używać makra AR do modelowania kilku różnych procesów AR dla różnych zestawów równań przy użyciu różnych nazw procesów dla każdego zestawu. Nazwa procesu zapewnia, że ​​użyte nazwy zmiennych są unikatowe. Użyj krótkiej wartości procesu dla procesu, jeśli szacunki parametrów mają zostać zapisane w zestawie danych wyjściowych. Makra AR próbują skonstruować nazwy parametrów mniej niż lub równe ośmiu znaków, ale jest to ograniczone długością nazwy procesu. który jest używany jako prefiks dla nazw parametrów AR. Wartością variablelist jest lista zmiennych endogennych dla równań. Załóżmy na przykład, że błędy dla równań Y1, Y2 i Y3 są generowane przez autoregresywny wektor wektora drugiego rzędu. Możesz użyć następujących stwierdzeń: generujących następujące informacje dla Y1 i podobnego kodu dla Y2 i Y3: W procesach wektorowych można używać tylko metody warunku najmniejszych kwadratów (MCLS lub MCLS n). Możesz również użyć tego samego formatu z ograniczeniami, że współczynnik matrycy wynosi 0 przy wybranych opóźnieniach. Na przykład poniższe instrukcje stosują proces wektora z rzędu trzeciego do błędów równa ze wszystkimi współczynnikami z opóźnieniem 2 ograniczonym do 0, a współczynniki z opóźnieniami 1 i 3 nieograniczone: można modelować trzy serie Y1Y3 jako proces autoregresji wektorowej w zmiennych zamiast w błędach przy użyciu opcji TYPEV. Jeśli chcesz modelować Y1Y3 w funkcji wcześniejszych wartości Y1Y3 i niektórych zewnętrznych zmiennych lub stałych, możesz użyć AR, aby wygenerować instrukcje dotyczące terminów opóźnień. Napisz równanie dla każdej zmiennej dla nonautoregressive części modelu, a następnie wywołaj AR z opcją TYPEV. Na przykład, nonautoreresywna część modelu może być funkcją zmiennych egzogennych lub może być przechwytywanie parametrów. Jeśli nie istnieją egzogenne składniki modelu autoregresji wektora, w tym żadne przechwyty, następnie przypisaj zero każdej zmiennej. Przed wywołaniem AR musi być przypisane do każdej zmiennej. Ten przykład ilustruje wektor Y (Y1 Y2 Y3) jako funkcję liniową tylko w dwóch poprzednich okresach i białego szablonu błędu. Model ma 18 (3 3 3 3) parametry. Składnia AR Macro Są dwa przypadki składni makra AR. Gdy ograniczenia dotyczące procesu AR w wektorze nie są potrzebne, składnia makra AR ma ogólną formę określa przedrostek AR dla użycia w konstruowaniu nazw zmiennych potrzebnych do zdefiniowania procesu AR. Jeśli endolista nie zostanie określony, lista dominikańska będzie niewłaściwa. która musi być nazwą równania, do którego ma zostać zastosowany proces błędu AR. Wartość nazwy nie może przekraczać 32 znaków. jest kolejność procesu AR. określa listę równań, do których ma być zastosowany proces AR. Jeśli podano więcej niż jedno imię, tworzony jest nieograniczony proces wektora z resztami strukturalnymi wszystkich równań włączonych jako regresory w każdym z równań. Jeśli nie podano inaczej, endoliczne nazwy domyślne. określa listę opóźnień, w których mają być dodawane AR terminy. Współczynniki terminów w przypadku opóźnień nie wymienionych na liście są ustawione na 0. Wszystkie wymienione lagi muszą być mniejsze lub równe nlag. i nie ma duplikatów. Jeśli nie określono, lista opóźnień domyślnie przyjmuje wszystkie opóźnienia od nlag. określa metodę estymacji do wdrożenia. Prawidłowe wartości M to CLS (szacunkowe najmniejsze kwadraty warunkowe), ULS (bezwarunkowe najmniejsze kwadraty) i ML (szacunki maksymalnego prawdopodobieństwa). MCLS jest domyślnym. Dopuszcza się tylko MCLS, jeśli podano więcej niż jedno równanie. Metody ULS i ML nie są obsługiwane przez modele AR AR. określa, że ​​proces AR powinien być zastosowany do samych zmiennych endogennych zamiast do strukturalnych resztek równań. Ograniczenie autoregresji wektora Można kontrolować, które parametry są zawarte w procesie, ograniczając do 0 tych parametrów, których nie uwzględniono. Najpierw użyj AR z opcją DEFER, aby zadeklarować listę zmiennych i zdefiniować wymiar procesu. Następnie użyj dodatkowych wywołań AR, aby wygenerować terminy dla wybranych równań z wybranymi zmiennymi w wybranych opóźnieniach. Na przykład: Otrzymane równania błędów są następujące: model ten stwierdza, że ​​błędy Y1 zależą od błędów zarówno Y1, jak i Y2 (ale nie Y3) w obu przypadkach 1 i 2 oraz że błędy Y2 i Y3 zależą od poprzednie błędy dla wszystkich trzech zmiennych, ale tylko w punkcie opóźnienia 1. AR Makro Syntakty dla Ograniczonej Wektorowej AR Alternatywne użycie AR może mieć na celu nałożenie ograniczeń na proces AR wektora, dzwoniąc do AR kilkakrotnie, aby określić różne terminy i opóźnienia AR dla różnych równania. Pierwsze wywołanie ma postać ogólną określającą przedrostek dla AR do wykorzystania w konstruowaniu nazw zmiennych potrzebnych do zdefiniowania procesu AR w wektorze. określa kolejność procesu AR. określa listę równań, do których ma być zastosowany proces AR. określa, że ​​AR nie ma generować procesu AR, ale oczekuje na dalsze informacje określone w późniejszych wywołaniach AR dla tej samej wartości. Kolejne połączenia mają ogólny kształt jest taki sam jak w pierwszym wywołaniu. określa listę równań, do których mają być stosowane specyfikacje w tym wywołaniu AR. Tylko nazwy wymienione w wartości endolistycznej pierwszego wywołania wartości nazwy mogą pojawić się na liście równań w eqlist. określa listę równań, których zaległe pozostałości strukturalne mają być włączone jako regresory w równaniach w eqlist. Mogą pojawić się tylko nazwy w endolistze pierwszego wywołania wartości nazwy. Jeśli nie określono, domyślne wartości domyślne dla listy endolistów. określa listę opóźnień, w których mają być dodawane AR terminy. Współczynniki terminów w przypadku opóźnień nie wymienionych na liście są ustawione na 0. Wszystkie wymienione opóźnienia muszą być mniejsze lub równe wartości nlag. i nie ma duplikatów. Jeśli nie podano inaczej, domyślne opóźnienie dla wszystkich opóźnień od 1 do nlag. Macro Makro Makro SAS generuje instrukcje programowania dla modelu PROC MODEL dla modeli średniej wielkości. Makro MA jest częścią oprogramowania SASETS, a nie jest wymagane specjalne zastosowanie makra. Proces przenoszenia średniej błędów może być zastosowany do błędów równań strukturalnych. Składnia makra MA jest taka sama jak makra AR, z wyjątkiem argumentu TYPE. Podczas korzystania z połączonych makr MA i AR makra MA należy postępować zgodnie z makrem AR. Następujące instrukcje SASIML powodują proces błędu ARMA (1, (1 3)) i zapisują go w zestawie danych MADAT2. Następujące instrukcje PROC MODEL są używane do oszacowania parametrów tego modelu przy użyciu struktury maksimum prawdopodobieństwa: Szacunki parametrów generowanych przez ten bieg są pokazane na rysunku 18.61. Rysunek 18.61 Szacunki z ARMA (1, (1 3)) Proces Jest dwa przypadki składni dla makra MA. Gdy nie ma potrzeby ograniczeń w procesie MA wektora, składnia makra MA ma ogólną postać określa przedrostek MA, który ma być użyty do konstruowania nazw zmiennych potrzebnych do zdefiniowania procesu MA i jest domyślnym endolistem. jest kolejność procesu MA. określa równania, do których ma zostać zastosowany proces MA. Jeśli podano więcej niż jedno imię, estymacja CLS jest stosowana w procesie wektora. określa opóźnienia, po upływie których mają zostać dodane warunki MA. Wszystkie wymienione opóźnienia muszą być mniejsze lub równe nlag. i nie ma duplikatów. Jeśli nie określono, lista opóźnień domyślnie przyjmuje wszystkie opóźnienia od nlag. określa metodę estymacji do wdrożenia. Prawidłowe wartości M to CLS (szacunkowe najmniejsze kwadraty warunkowe), ULS (bezwarunkowe najmniejsze kwadraty) i ML (szacunki maksymalnego prawdopodobieństwa). MCLS jest domyślnym. Dopuszcza się tylko MCLS, jeśli w endolistze podano więcej niż jedno równanie. MA Makro Syntakty dla ograniczonego ruchu wektora średniego Alternatywne użycie MA może nałożyć ograniczenia na proces wektora MA przez kilkakrotne wywołanie MA w celu określenia różnych terminów i opóźnień MA dla różnych równań. Pierwsze wywołanie ma ogólny formularz określający przedrostek dla MA do wykorzystania w konstruowaniu nazw zmiennych potrzebnych do zdefiniowania procesu MA wektora. określa kolejność procesu MA. określa listę równań, do których ma być zastosowany proces MA. że MA nie ma generować procesu MA, ale oczekuje na dalsze informacje określone w późniejszych wywołaniach MA dla tej samej wartości nazwy. Kolejne połączenia mają ogólny kształt jest taki sam jak w pierwszym wywołaniu. określa listę równań, do których mają być stosowane specyfikacje w tym poddziale MA. określa listę równań, których zaległe pozostałości strukturalne mają być włączone jako regresory w równaniach w eqlist. Określa listę opóźnień, po upływie których mają zostać dodane terminy MA. Proste przebiegające procesy przebiegów średnich ruchów 13 13 13 13 13 13 Procesy autoregresji średniej ruchomej (błędy ARMA) i inne modele z uwzględnieniem opóźnień w błędach można oszacować przy użyciu instrukcji FIT i symulowane lub prognozowane przy użyciu instrukcji SOLVE. Modele ARMA dla procesu błędów są często stosowane w modelach z autokorelacjami resztkowymi. Makro AR może być używane do określania modeli z procesami błędów autoregresji. Makro MA można używać do określania modeli z ruchomymi przeciętnymi progami błędów. Błędy autoregresji Model z błędami autoregresyjnymi pierwszego rzędu, AR (1), ma postać, podczas gdy proces usterki AR (2) ma formę i tak dalej dla procesów wyższego rzędu. Należy zauważyć, że s są niezależne i identyczne i mają wartość oczekiwaną równą 0. Przykład modelu z komponentem AR (2) Zapisujesz ten model w następujący sposób: lub równoważnie przy użyciu makra AR jako Moving Average Models 13 A model z błędami średniej ruchomej pierwszego rzędu, MA (1), ma postać, w której jest identycznie i niezależnie rozdzielana ze średnim zerem. Proces błędu MA (2) ma formę i tak dalej dla procesów wyższego rzędu. Na przykład można napisać prosty model regresji liniowej z błędami średniej MA (2), ponieważ MA1 i MA2 są parametrami średniej ruchomej. Zauważ, że RESID. Y jest automatycznie definiowany przez PROC MODEL jako Uwaga, że ​​RESID. Y jest. Funkcja ZLAG musi być używana w modelach MA do obcinania rekursji opóźnień. Zapewnia to, że opóźnione błędy zaczynają się od zera w fazie zalewania i nie propagują brakujących wartości, gdy brakuje zmiennych z okresu zalewania, i zapewnia, że ​​przyszłe błędy są zero, a nie brakuje podczas symulacji lub prognozowania. Szczegółowe informacje o funkcjach opóźnienia podano w punkcie 34. Logika32. Model ten napisany przy użyciu makra MA to formularz ogólny dla modeli ARMA. Ogólny proces ARMA (p, q) ma następującą postać. Model ARMA (p, q) może być w którym AR i i MA j reprezentują parametry autoregresji i ruchome średnie dla różnych opóźnień. Możesz użyć dowolnych nazw dla tych zmiennych i istnieje wiele równoważnych sposobów, w jaki może być napisana specyfikacja. Procesy ARMA wektora można również oszacować za pomocą modelu PROC MODEL. Na przykład dwa zmienne procedury AR (1) dotyczące błędów dwóch zmiennych endogennych Y1 i Y2 można określić następująco: Problemy z konwergencją z modelami ARMA Modele ARMA mogą być trudne do oszacowania. Jeśli szacunkowe parametry nie znajdują się w odpowiednim zakresie, wzorce średnich ruchomej wzrosną wykładniczo. Obliczone reszty dla późniejszych obserwacji mogą być bardzo duże lub mogą przepełnić. Może się tak zdarzyć, ponieważ użyto niewłaściwych wartości początkowych lub dlatego, że iteracje oddalały się od rozsądnych wartości. Należy zachować ostrożność przy wybieraniu wartości początkowych dla parametrów ARMA. Wartości początkowe 0,001 dla parametrów ARMA zazwyczaj działają, jeśli model dobrze pasuje do danych, a problem jest dobrze przygotowany. Zauważ, że model MA można często przybliżyć model AR o wysokiej wartości zamówienia i odwrotnie. Może to powodować dużą collinearność w mieszanych modelach ARMA, co z kolei może powodować poważne złe warunki w obliczeniach i niestabilność szacunków parametrów. Jeśli występują problemy z konwergencją podczas szacowania modelu z procesami błędów ARMA, spróbuj oszacować w krokach. Po pierwsze, użyj instrukcji FIT, aby oszacować tylko parametry strukturalne z parametrami ARMA utrzymywanymi na zero (lub do rozsądnych wcześniejszych szacunków, jeśli są dostępne). Następnie użyj innej instrukcji FIT, aby oszacować tylko parametry ARMA, używając wartości parametrów strukturalnych z pierwszego uruchomienia. Ponieważ wartości parametrów strukturalnych prawdopodobnie zbliżą się do ich ostatecznych szacunków, szacunki parametrów ARMA mogą się zbiegać. Na koniec użyj innej instrukcji FIT w celu uzyskania równoczesnych oszacowań wszystkich parametrów. Ponieważ początkowe wartości parametrów mogą być dość zbliżone do ich ostatecznych wspólnych szacunków, szacunki powinny się szybko zbiegać, jeśli model jest odpowiedni dla danych. AR Warunek początkowy 13 13 13 13 13 13 13 13 13 13 Początkowe opóźnienia błędów w modelach AR (p) mogą być modelowane na różne sposoby. Metody autoregresywnego uruchamiania błędów obsługiwane przez procedury SASETS są następujące: najkrótsze kwadraty warunkowe CLS (procedury ARIMA i MODEL) ULS bezwarunkowe najmniejsze kwadraty (procedury AUTOREG, ARIMA i MODEL) maksymalne prawdopodobieństwo ML (procedury AUTOREG, ARIMA i MODEL) YW Yule - Walker (tylko procedura AUTOREG) HL Hildreth-Lu, która usuwa pierwsze obserwacje (tylko procedura MODEL) Zobacz Rozdział 8, aby uzyskać wyjaśnienie i omówienie zalet różnych metod uruchamiania AR (p). Inicjacje CLS, ULS, ML i HL mogą być wykonywane przez PROC MODEL. W przypadku błędów AR (1) te inicjalizacje można wyprodukować, jak pokazano w tabeli 14.2. Metody te są równoważne w dużych próbkach. Tabela 14.2: Inicjalizacja przeprowadzona przez MODEL PROC: AR (1) BŁĘDY MA Warunki początkowe 13 13 13 13 13 13 Pierwsze opóźnienia błędów w modelach MA (q) można również modelować na różne sposoby. Poniższe paradygmaty uruchamiania błędów średniej ruchomej są obsługiwane przez procedury ARIMA i MODEL: ULS bezwarunkowe najmniejsze kwadraty CLS warunkowe najmniejsze kwadraty ML maksymalne prawdopodobieństwo Warunkowa metoda najmniejszych kwadratów szacowania średnich ruchów średnich nie jest optymalna, ponieważ ignoruje problem z uruchamianiem. Zmniejsza to wydajność szacunków, chociaż pozostają one bezstronne. Początkowa zalegająca reszta, rozciągająca się przed rozpoczęciem danych, przyjmuje się jako 0, ich bezwarunkową oczekiwaną wartość. Wprowadza to różnicę między tymi resztkami a uogólnionymi resztami najmniejszych kwadratów dla średniej ruchomej współzmiennej, która, w przeciwieństwie do modelu autoregresji, utrzymuje się przez zestaw danych. Zwykle ta różnica się zbiega szybko do 0, ale w przypadku prawie niezmiennych ruchome przeciętnych procesów konwergencja jest dość powolna. Aby zminimalizować ten problem, powinieneś mieć mnóstwo danych, a szacunkowy wskaźnik średniej ruchomej powinien znajdować się w zakresie inwersji. Ten problem można rozwiązać kosztem napisania bardziej złożonego programu. Bezzasadne szacunki dotyczące najmniejszych kwadratów dla procesu MA (1) można uzyskać, określając następujący model: Ruchome średnie błędy mogą być trudne do oszacowania. Powinieneś rozważyć zastosowanie przybliżenia AR (p) do średniej ruchomości. Ruchome przeciętne proces może być zwykle dobrze aproksymowane przez proces autoregresji, jeśli dane nie zostały wygładzone lub zróżnicowane. AR Makro SAS makro AR generuje instrukcje programowania dla modelu PROC MODEL dla modeli autoregresji. Makro AR jest częścią oprogramowania SASETS i nie trzeba ustawiać specjalnych opcji, aby używać makra. Proces autoregresji może być zastosowany do błędów równań strukturalnych lub samej serii endogennych. Makro AR może być wykorzystane do jednocyfrowej autoregresji nieograniczonej autoregresji wektora autoregionu ograniczonego wektora. Jednorodna autoregresja 13 Aby obliczyć wartość błędu równania jako proces autoregresji, użyj następującej instrukcji po równaniu: Na przykład załóżmy, że Y jest funkcją liniową X1 i X2 oraz błąd AR (2). Piszesz ten model w następujący sposób: Połączenia z AR muszą pochodzić po wszystkich równaniach stosowanych w procesie. Przywołanie makr operacji, AR (y, 2), powoduje wytworzenie instrukcji pokazanych na wyjściu LIST na rysunku 14.49. Rysunek 14.50: Wyjście opcjonalne LIST dla modelu AR z opóźnieniami 1, 12 i 13 Istnieją różnice w warunkowej metodzie najmniejszych kwadratów, w zależności od tego, czy obserwacje na początku serii są wykorzystywane do 34 nachylenie34 proces AR. Domyślnie metoda warunkowa najmniejszych kwadratów AR wykorzystuje wszystkie obserwacje i przyjmuje zerowe wartości początkowych opóźnień w terminach autoregresji. Korzystając z opcji M, możesz zażądać, aby AR używała bezwarunkowej metody najmniejszych kwadratów (ULS) lub maksymalnej prawdopodobieństwa (ML). Na przykład: omówienie tych metod znajduje się w 34AR Initial Conditions34 wcześniej w tej sekcji. Korzystając z opcji MCLS n, możesz poprosić o użycie pierwszych n obserwacji do obliczania szacunków początkowych opóźnień autoregresji. W tym przypadku analiza rozpoczyna się od obserwacji n 1. Na przykład: za pomocą makra AR można zastosować model autoregresji do zmiennej endogenicznej zamiast do terminu błędów, używając opcji TYPEV. Na przykład, jeśli chcesz dodać pięć poprzednich opóźnień Y do równania z poprzedniego przykładu, możesz użyć AR, aby wygenerować parametry i opóźnienia, używając następujących stwierdzeń: Powyższe stwierdzenia generują dane wyjściowe pokazane na rysunku 14.51. Listing PROCEDURY MODELU Złożonego Przepisu Kodu Programu jako Parsed PRED. yab x1 c x2 RESID. y PRED. y - ACTUAL. y ERROR. y PRED. y - y OLDPRED. y PRED. y yl1 ZLAG1 (y) yl2 ZLAG2 (y ) yl3 ZLAG3 (y) yl4 ZLAG4 (y) yl5 ZLAG5 (y) RESID. y PRED. y - ACTUAL. y ERROR. y PRED. y - y Rysunek 14.51: Wyjście opcji LIST dla modelu AR Y Model ten przewiduje Y jako kombinacja liniowa X1, X2, przechwytywanie i wartości Y w ostatnich pięciu okresach. Nieograniczona autoregresja wektora 13 Aby zmodyfikować warunki błędów zestawu równań jako procesu autoregresji wektora, użyj następującego wzoru makra AR po równaniach: Wartość parametru procesu jest dowolną nazwą, którą podajesz dla AR, do wykorzystania w tworzeniu nazw dla parametry autoregresji. Możesz używać makra AR do modelowania kilku różnych procesów AR dla różnych zestawów równań przy użyciu różnych nazw procesów dla każdego zestawu. Nazwa procesu zapewnia, że ​​użyte nazwy zmiennych są unikatowe. Użyj krótkiej wartości procesu dla procesu, jeśli szacunki parametrów mają zostać zapisane w zestawie danych wyjściowych. Makra AR próbują skonstruować nazwy parametrów mniej niż lub równe ośmiu znaków, ale jest to ograniczone przez długość nazwy. który jest używany jako prefiks dla nazw parametrów AR. Wartością variablelist jest lista zmiennych endogennych dla równań. Załóżmy na przykład, że błędy dla równań Y1, Y2 i Y3 są generowane przez autoregresywny wektor wektora drugiego rzędu. Można użyć następujących stwierdzeń: które generują następujące informacje dla Y1 i podobnego kodu dla Y2 i Y3: W procesach wektorowych można używać tylko metody warunkowej najmniej kwadratu (MCLS lub MCLS n). Możesz również użyć tego samego formatu z ograniczeniami, że współczynnik matrycy wynosi 0 przy wybranych opóźnieniach. Na przykład oświadczenia stosują proces wektora z rzędu trzeciego do błędów równa ze wszystkimi współczynnikami w punkcie 2 ograniczonym do 0, a współczynniki z opóźnieniami 1 i 3 nieograniczone. Możesz modelować trzy serie Y1-Y3 jako proces autoregresji wektora w zmiennych zamiast w błędach, używając opcji TYPEV. Jeśli chcesz modelować Y1-Y3 w zależności od poprzednich wartości Y1-Y3, a niektóre zewnętrzne zmienne lub stałe, możesz użyć AR, aby wygenerować instrukcje dotyczące terminów opóźnień. Napisz równanie dla każdej zmiennej dla nonautoregressive części modelu, a następnie wywołaj AR z opcją TYPEV. Na przykład, nonautoreresywna część modelu może być funkcją zmiennych egzogennych, lub może być przechwytywanie parametrów. Jeśli nie istnieją egzogenne składniki modelu autoregresji wektora, w tym żadne przechwyty, następnie przypisaj zero każdej zmiennej. Przed wywołaniem AR musi być przypisane do każdej zmiennej. Ten przykład ilustruje wektor Y (Y1 Y2 Y3) jako funkcję liniową tylko w dwóch poprzednich okresach i białego szablonu błędu. Model ma 18 (3 razy 3 3 razy 3) parametry. Składnia AR Macro Są dwa przypadki składni makra AR. Pierwsza ma ogólną nazwę formularza określa przedrostek dla AR do wykorzystania w konstruowaniu nazw zmiennych potrzebnych do zdefiniowania procesu AR. Jeśli endolista nie zostanie określony, lista dominikańska będzie niewłaściwa. która musi być nazwą równania, do którego ma zostać zastosowany proces błędu AR. Wartość nazwy nie może przekraczać ośmiu znaków. nlag jest kolejnością procesu AR. endolist określa listę równań, do których ma być zastosowany proces AR. Jeśli podano więcej niż jedno imię, tworzony jest nieograniczony proces wektora z resztami strukturalnymi wszystkich równań włączonych jako regresory w każdym z równań. Jeśli nie podano inaczej, endoliczne nazwy domyślne. lista opóźnień określa listę opóźnień, w których mają zostać dodane warunki AR. Współczynniki terminów w przypadku opóźnień nie wymienionych na liście są ustawione na 0. Wszystkie wymienione lagi muszą być mniejsze lub równe nlag. i nie ma duplikatów. Jeśli nie określono, lista opóźnień domyślnie przyjmuje wszystkie opóźnienia od nlag. M określa metodę estymacji do wdrożenia. Prawidłowe wartości M to CLS (szacunkowe najmniejsze kwadraty warunkowe), ULS (bezwarunkowe szacunki najmniejszych kwadratów) i ML (szacunki maksymalnego prawdopodobieństwa). MCLS jest domyślnym. Dopuszcza się tylko MCLS, jeśli podano więcej niż jedno równanie. Metody ULS i ML nie są obsługiwane przez modele AR AR. TYPEV określa, że ​​proces AR powinien być zastosowany do samych zmiennych endogenicznych zamiast do strukturalnych resztek równań. Ograniczenie autoregresji wektora 13 13 13 13 Można kontrolować, które parametry są zawarte w procesie, ograniczając te parametry, które nie zawierają wartości 0. Najpierw użyj AR z opcją DEFER, aby zadeklarować listę zmiennych i zdefiniować wymiar procesu. Następnie użyj dodatkowych wywołań AR, aby wygenerować terminy dla wybranych równań z wybranymi zmiennymi w wybranych opóźnieniach. Na przykład Wytwarzane równania błędów są takie, że błędy Y1 zależą od błędów zarówno Y1, jak i Y2 (ale nie Y3) w obu przypadkach 1 i 2 oraz że błędy Y2 i Y3 zależą od poprzednich błędów dla wszystkich trzech zmiennych, ale tylko w punkcie opóźnienia 1. AR Makro Syntakty dla Ograniczonej Wektorowej AR Alternatywne użycie AR może nałożyć ograniczenia na proces AR wektora przez kilkakrotne wywołanie AR dla określenia różnych terminów AR i opóźnień dla różnych równań. Pierwsze wywołanie ma ogólną nazwę formularza określającego przedrostek AR, który ma być użyty w konstruowaniu nazw zmiennych potrzebnych do zdefiniowania procesu AR w wektorze. nlag określa kolejność procesu AR. endolist określa listę równań, do których ma być zastosowany proces AR. DEFER określa, że ​​AR nie ma generować procesu AR, ale oczekuje na dalsze informacje określone w późniejszych wywołaniach AR dla tej samej wartości. Następne wywołania mają ogólną nazwę formularza jest taka sama jak w pierwszym wywołaniu. eqlist określa listę równań, do których mają być stosowane specyfikacje w tym wywołaniu AR. Tylko nazwy wymienione w wartości endolistycznej pierwszego wywołania wartości nazwy mogą pojawić się na liście równań w eqlist. varlist określa listę równań, których zaległe pozostałości strukturalne mają być włączone jako regresory w równaniach w eqlist. Mogą pojawić się tylko nazwy w endolistze pierwszego wywołania wartości nazwy. Jeśli nie określono, domyślne wartości domyślne dla listy endolistów. lista opóźnień określa listę opóźnień, w których mają zostać dodane warunki AR. Współczynniki terminów w przypadku opóźnień nie wymienionych na liście są ustawione na 0. Wszystkie wymienione opóźnienia muszą być mniejsze lub równe wartości nlag. i nie ma duplikatów. Jeśli nie podano inaczej, domyślne opóźnienie dla wszystkich opóźnień od 1 do nlag. MA Macro 13 Makra SAS SAS generuje instrukcje programowania dla PROC MODEL dla przenoszenia średnich modeli. Makro MA jest częścią oprogramowania SASETS i nie jest wymagane specjalne użycie makra. Proces przenoszenia średniej błędów może być zastosowany do błędów równań strukturalnych. Składnia makra MA jest taka sama jak makra AR, z wyjątkiem argumentu TYPE. 13 Podczas korzystania z połączonych makr MA i AR makra MA należy postępować zgodnie z makrem AR. Następujące instrukcje SASIML powodują proces błędu ARMA (1, (1 3)) i zapisują go w zestawie danych MADAT2. Następujące instrukcje PROC MODEL są używane do oszacowania parametrów tego modelu przy użyciu struktury maksymalnej prawdopodobieństwa: Szacunki parametrów wyprodukowanych w tym biegu przedstawiono na rysunku 14.52. Maksymalna prawdopodobieństwo ARMA (1, (1 3)) Rysunek 14.52: Szacunki z ARMA (1, (1 3)) Składnia procesu makra MA Istnieją dwa przypadki składni makra MA. Pierwsza ma ogólną nazwę formularza określa przedrostek MA, który ma być użyty w konstruowaniu nazw zmiennych potrzebnych do zdefiniowania procesu MA i jest domyślnym endolistem. nlag jest kolejnością procesu MA. endolist określa równania, do których ma zostać zastosowany proces MA. Jeśli podano więcej niż jedno imię, estymacja CLS jest stosowana w procesie wektora. lista opóźnień określa opóźnienia, po upływie których mają zostać dodane warunki MA. Wszystkie wymienione opóźnienia muszą być mniejsze lub równe nlag. i nie ma duplikatów. Jeśli nie określono, lista opóźnień domyślnie przyjmuje wszystkie opóźnienia od nlag. M określa metodę estymacji do wdrożenia. Prawidłowe wartości M to CLS (szacunkowe najmniejsze kwadraty warunkowe), ULS (bezwarunkowe szacunki najmniejszych kwadratów) i ML (szacunki maksymalnego prawdopodobieństwa). MCLS jest domyślnym. Dopuszcza się tylko MCLS, jeśli w endolistze podano więcej niż jedno równanie. MA Makro Syntaksja dla Ruchu Ograniczonego Moving Average 13 Alternatywne użycie MA może nałożyć ograniczenia na proces wektora MA przez kilkakrotne wywołanie MA w celu określenia różnych terminów i opóźnień dla różnych równań. Pierwsze wywołanie ma ogólną nazwę postaci określa przedrostek MA, który ma być użyty w konstruowaniu nazw zmiennych potrzebnych do zdefiniowania procesu MA wektora. nlag określa kolejność procesu MA. endolist określa listę równań, do których ma być zastosowany proces MA. DEFER określa, że ​​MA nie ma generować procesu MA, ale oczekuje na dalsze informacje określone w późniejszych wywołaniach MA dla tej samej wartości nazwy. Następne wywołania mają ogólną nazwę formularza jest taka sama jak w pierwszym wywołaniu. eqlist określa listę równań, do których mają być stosowane specyfikacje w tym podprogramie MA. varlist określa listę równań, których zaległe pozostałości strukturalne mają być włączone jako regresory w równaniach w eqlist. lista opóźnień określa listę opóźnień, w których mają zostać dodane warunki MA. W tym poście pokazuję sztuczkę, aby wykonać średnią ruchome obliczenia (można ją rozszerzyć na inne operacje wymagające funkcji okienkowych), które są bardzo szybkie. Często analitycy SAS muszą przeprowadzać średnie ruchome obliczenia, a ich kolejność zależy od kilku opcji: 1. PROC EXPAND 2. KROK DATA 3. PROC SQL Ale wiele witryn nie może licencjonować SASETS używać PROC EXPAND i robić średnią ruchową w Danych KROK wymaga pewnego kodowania i jest podatny na błędy. PROC SQL jest naturalnym wyborem dla programistów młodszych, a w wielu sprawach biznesowych jedynym rozwiązaniem, ale SAS PROC SQL brakuje funkcji okienkowania, które są dostępne w wielu bazach danych w celu ułatwienia obliczania średniej ruchomej. Jedną z technik zwykle używanych jest CROSS JOIN, która jest bardzo kosztowna i nie jest wykonalnym rozwiązaniem nawet dla średnich zestawów danych. W tym poście pokazuję sztuczkę, aby wykonać obliczanie średniej ruchomej (można ją rozszerzyć na inne operacje wymagające funkcji okienkowych), które są bardzo szybkie. Rozważmy najprostszą średnią ruchomą obliczenie, w której uwzględniono obserwacje K w obliczeniach, a mianowicie MA (K), tutaj ustawiamy K5. Najpierw wygenerujemy 20 przykładowych danych próbki, w których ma zostać użyta zmienna ID dla okienkowania, a do obliczeń MA należy użyć zmiennej X, a następnie zastosujemy standardową funkcję CROSS JOIN, aby najpierw zbadać dane wynikowe, nie zgrupowane, po prostu zrozumieć, jak wykorzystać strukturę danych. Z wynikowych zestawów danych trudno jest znaleźć wskazówkę, a teraz sortujemy według kolumny quotbidquot w tym zbiorze danych: z tych posortowanych danych jest jasne, że w rzeczywistości nie musimy CROSS JOIN cały pierwotny zestaw danych, możemy wygenerować zestaw danych quotoperationquot zawierający różnicę i niech oryginalny zestaw danych CROSS JOIN z tym znacznie mniejszym zestawem danych quotoperationquot i wszystkie dane potrzebne do obliczania MA będzie tam. Teraz zróbmy to: CROSS JOIN oryginalne dane z danymi quotoperationquot, sortuj (a. idops), który jest rzeczywiście quotbid39 w posortowanym zestawie danych Zauważ, że w powyższym kodzie konieczne jest, aby axe pomnożyć przez b. weight, aby dane może być między liśćmi, w przeciwnym wypadku zostanie wygenerowana taka sama wartość X z oryginalnej tabeli, a obliczenia MA będą nieudane. Jawna zmienna wagowa rzeczywiście dodaje większą elastyczność do całego obliczania MA. Przy ustalaniu, że ma być 1 dla wszystkich obsówek wynikających z prostego obliczania MA, przypisanie różnych ciężarów pomoże rozwiązać bardziej złożone obliczenia MA, takie jak danie dalszych obserwacji mniejszej wagi dla rozkładu MA. Jeśli wymagane są różne parametry K w obliczeniach MA (K), tylko zestaw danych operacji musi zostać zaktualizowany, co jest trywialnym zadaniem. Teraz rzeczywistym szablonem kodu do obliczania MA (K) będzie: przy użyciu tej nowej metody, warto porównać ją ze kosztownym CROSS JOIN i PROC EXPAND. Na mojej stacji roboczej (Intel i5 3.8Ghz, 32GB pamięci, 1TB 72K HDD), samo CROSS JOIN jest bardzo długim czasem działania (jeśli dane są duże), a nowa metoda wykorzystuje tylko 2X tyle czasu, ile PROC EXPAND, oba zużycia czasu trywialne porównanie do siebie CROSS JOIN. Zużycie czasu pokazane poniżej jest w quotsecondquot. Poniżej czytniki kodu można uruchamiać i porównywać siebie. Opublikowane 10 maja 2018 r. Przez Liang Xie Programowanie SAS dla wyszukiwania danych

Comments