Thursday 14 December 2017

Średnia obliczeniowa sas


Dołączam zrzut ekranu, aby wyjaśnić mój problem: Próbuję obliczyć jakiś ruch średniej i ruchome odchylenie standardowe. Chodzi o to, aby obliczyć współczynniki wariancji (stdevavg) dla rzeczywistej wartości. Zwykle odbywa się to obliczając stdev i avg przez ostatnie 5 lat. Czasami jednak będą moje obserwacje w mojej bazie danych, dla których nie mam informacji z ostatnich 5 lat (może tylko 3, 2 itd.). To dlatego chcę kodu, który obliczy średnią i stdev, nawet jeśli nie ma informacji przez całe 5 lat. Ponadto, jak widać w obserwacjach, czasami mam informacje od ponad 5 lat, kiedy tak jest, potrzebuję pewnego rodzaju średniej ruchomej, która pozwala mi obliczyć średnią i stdev przez ostatnie 5 lat. Więc jeśli firma ma informacje od 7 lat, potrzebuję trochę kodu, który obliczy średnią i stdev, np. 1997 (1991-1996), 1998 (1992-1997) i 1999 (1993-1998). Jak nie bardzo dobrze zna komendy sas powinno wyglądać (bardzo bardzo przybliżone): Lub coś w tym stylu, naprawdę nie mam pojęcia, próbuję spróbować wyobrazić sobie to, ale warto go zamieścić, jeśli sam go nie znajdę. Beginning in Uruchomienie 6.08 systemu SAS System, PROC EXPAND w oprogramowaniu SASETS może być wykorzystane do różnych transformacji danych. Transformacje te obejmują: odprowadzenia, opóźnienia, średnie ruchome ważone i nieważone, sumy ruchomych i skumulowane sumy, aby wymienić tylko kilka. W wersji 6.12 dodano wiele nowych przekształceń, w tym oddzielne specyfikacje dla średnich i średnich ruchów wstecznych. Te nowe przekształcenia wymagały modyfikacji składni niektórych transformacji obsługiwanych przed wydaniem 6.12. Poniżej podano przykłady sposobu określania składni dla średnich średnich i wstecznych, używających Release 6.11 i wcześniejszych oraz Release 6.12 i późniejszych. PROC EXPAND może obliczyć albo średnią ruchomą średnią, albo średnią ruchomej wstecz. Średnia średnica ruchoma 5-centrowej obliczana jest przez uśrednienie w sumie 5 kolejnych wartości serii (wartość bieżąca okresu poza dwiema bezpośrednio poprzednimi wartościami i dwiema wartościami następującymi bezpośrednio po wartości bieżącej). Średnią ruchomej wstecznej 5-stopniowej oblicza się przez uśrednienie bieżącej wartości okresu z wartościami z 4 bezpośrednio poprzednich okresów. Poniższa składnia ilustruje użycie specyfikacji TRANSFORM (MOVAVE n) w celu obliczenia 5-centrowej średniej średniej ruchomej przy użyciu wersji 6.11 lub wcześniejszej: Aby obliczyć n ruchliwą wsteczną średnią z okresu n w wersji 6.11 lub wcześniejszej, skorzystaj z TRANSFORMY (MOVAVE n) n LAG k), gdzie k (n-1) 2 jeśli n jest nieparzyste lub gdzie k (n-2) 2, jeśli n jest równe. Na przykład następująca składnia ilustruje obliczanie 5-letniej średniej ruchomej wstecznej z użyciem wersji 6.11 lub wcześniejszej: Następująca składnia ilustruje użycie specyfikacji TRANSFORM (CMOVAVE n) w celu obliczenia 5-punktowej średniej ruchomej średniej przy użyciu Release 6.12 lub później: Następująca podobna składnia ilustruje użycie specyfikacji TRANSFORM (MOVAVE n) w celu obliczenia 5-letniej średniej ruchomej wstecznej przy użyciu Release 6.12 lub późniejszej: Więcej informacji na ten temat można znaleźć w części Operacje transformacji w rozdziale EXPAND w podręczniku użytkownika SASETS. Jeśli nie masz dostępu do SASETS, możesz obliczyć średnią ruchomej w kroku DATA, jak pokazano na tym przykładowym programie. System operacyjny i informacje o wersjiInformacyjny kod na karcie Pełny kod ilustruje obliczanie średniej ruchomej 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. 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 N obserwacji w zbiorze danych lub w ciągu ostatnich N obserwacji w obrębie jednostki BY-a średniej ruchomej w SAS Ten wpis został pozytywnie przyczyniony przez Pętlę DO - idź tam komentować i przeczytać pełny post. Wspólnym pytaniem na forach dyskusyjnych SAS jest obliczanie średniej ruchomej w SAS. W tym artykule przedstawiono, jak używać PROC EXPAND i zawiera linki do artykułów używających kroku DATA lub makr do obliczania średnich kroczących w SAS. W poprzednim poście wyjaśniłem, jak zdefiniować średnią ruchomą i podać przykład pokazany tutaj. Wykres jest wykresem rozliczeniowym miesięcznej ceny zamknięcia dla zasobów IBM w okresie 20 lat. Trzy krzywe poruszają się średnio. Krzywa 8220MA8221 jest pięciopunktową (końcową) średnią ruchu. Krzywa 8220WMA8221 to ważona średnia ruchoma z ciężarami od 1 do 5. (Przy obliczaniu ważonej średniej ruchomej w czasie t. Wartość yt ma ciężar 5, wartość y t-1 ma ciężar 4, wartość y t-2 ma ciężar 3 itd.) Krzywa 8220EWMA8221 jest geometrycznie ważoną średnią ruchomą ze współczynnikiem wygładzania alfa 0.3. W tym artykule przedstawiono, jak wykorzystać procedurę EXPAND w oprogramowaniu SASETS do obliczania prostej średniej ruchomej, ważonej średniej ruchomej i średniej ruchomej w wykładzie SAS. Aby uzyskać przegląd PROC EXPAND i jego wiele funkcji, zalecam przeczytanie krótkiego artykułu 8220Stupid Human Tricks z proC EXPAND8221 autorstwa David Cassell (2017). Ponieważ nie każdy klient SAS ma licencję na oprogramowanie SASETS, na końcu tego artykułu znajdują się linki, które pokazują, jak obliczyć prostą średnią ruchową w SAS, używając kroku DATA. Tworzenie przykładowej serii czasów Aby obliczyć średnią ruchową w SAS, potrzebujesz danych. Następujące połączenie PROC SORT tworzy przykładową serię czasową z 233 obserwacjami. Nie ma brakujących wartości. Dane są sortowane według zmiennej czasowej, T. Zmienna Y zawiera miesięczną cenę zamknięcia zasobów IBM w okresie 20 lat. Obliczenie średniej ruchomej w SAS przy użyciu PROC EXPAND PROC EXPAND oblicza wiele średnich kroczących i innych statystyk kroczących, takich jak odchylenia standardowe toczenia, korelacje i skumulowane sumy kwadratów. W procedurze instrukcja identyfikacyjna identyfikuje zmienną czasową, T. Dane należy posortować według zmiennej ID. Instrukcja CONVERT określa nazwy zmiennych wejściowych i wyjściowych. Opcja TRANSFORMOUT określa metodę i parametry używane do obliczania statystyk kroczących. W przykładzie użyto trzech instrukcji CONVERT: Pierwsza określa, że ​​MA to zmienna wyjściowa, która jest obliczana jako średnia ruchoma (do tyłu), która wykorzystuje pięć wartości danych (k5). Drugie oświadczenie CONVERT określa, że ​​WMA jest zmienną wyjściową, ważoną średnią ruchoma. Wagi są automatycznie standaryzowane przez procedurę, więc formuła jest WMA (t) (5 yt 4 y t-1 3 y t-2 2 y t-3 1 y t-4) 15. Trzeci zestaw CONVERT określa, że ​​EWMA jest zmienną wyjściową, która jest geometrycznie ważoną średnią ruchoma z parametrem 0.3. Zwróć uwagę na opcję METHODNONE na oświadczeniu PROC EXPAND. Domyślnie procedura ROZSZERZENIE dopasowuje krzywe sześciennego krzywej spline do niezmienionych wartości zmiennych. Opcje METHODNONE zapewniają, że surowe punkty danych są używane do obliczania średnich ruchomej, a nie interpolowanych. Wizualizacja średnich ruchów Ważnym użyciem średniej ruchomej jest pokrywanie krzywej na wykresie rozrzutowym surowych danych. Umożliwia to wizualizację krótkoterminowych trendów w danych. Następujące połączenie PROC SGPOT tworzy wykres na górze tego artykułu: aby utrzymać ten artykuł tak prosto, jak to możliwe, nie omawiałem, jak radzić sobie z brakiem danych podczas obliczania średnich kroczących. Zobacz dokumentację PROC EXPAND dotyczącą różnych problemów związanych z brakiem danych. W szczególności można użyć opcji METHOD, aby określić, jak interpolować brakujące wartości. Możesz także użyć opcji transformacji, aby kontrolować, jak średnie ruchome są zdefiniowane dla pierwszych kilku punktów danych. Tworzenie średniej ruchomej w SAS przy użyciu kroku DATA Jeśli nie ma oprogramowania SASETS, poniższe odnośniki przedstawiają, jak korzystać z kroku SAS DATA do obliczania prostych średnich kroczących za pomocą funkcji LAG. Baza wiedzy SAS zawiera artykuł 8220Compute średniej ruchowej zmiennej.8221 Premal Vora (2008) porównuje krok DATA z kodem PROC EXPAND w artykule 8220Easy Rolling Statistics z PROC EXPAND.8221 Ron Cody zawiera kilka makr SAS książki. Na przykład Cody8217s Kolekcja popularnych zadań programowania SAS i sposób ich zwalczania udostępnia makra o nazwie moveAve. Makro można pobrać jako część 8220Example Code i Data8221 dla książki. Krok DATA, który jest przeznaczony do obsługi jednej obserwacji na raz, nie jest najlepszym narzędziem obliczania szeregów czasowych, które naturalnie wymagają wielu obserwacji (opóźnień i opóźnień). W przyszłym blogu pokażę, jak zapisywać funkcje SASIML, które obliczają proste, ważone i wykładniczo ważone średnie ruchome. Język matrycy w PROC IML jest łatwiejszy do pracy z obliczeniami, które wymagają dostępu do wielu punktów czasowych. ffTheDoLoopdyIl2AUoC8zA ffTheDoLoopdqj6IDK7rITs ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: gIN9vFwOqvQ ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: VsGLiPBpWU ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: F7zBnMyn0Lo ffTheDoLoopdl6gmwiTKsz0

No comments:

Post a Comment