Jak wykonać transformację dziennika w sas-ie
Wiele testów statystycznych zakłada, że wartości danej zmiennej mają rozkład normalny .
Jednak wartości często nie mają rozkładu normalnego. Jednym ze sposobów rozwiązania tego problemu jest przekształcenie zmiennej poprzez pobranie log każdej wartości.
Wykonując tę transformację, zmienna generalnie zbliża się do rozkładu normalnego.
Poniższy przykład pokazuje, jak wykonać transformację dziennika zmiennej w SAS-ie.
Przykład: transformacja dziennika w SAS-ie
Załóżmy, że mamy następujący zestaw danych w SAS-ie:
/*create dataset*/ data my_data; input x; datalines ; 1 1 1 2 2 2 2 2 2 3 3 3 6 7 8 ; run ; /*view dataset*/ proc print data =my_data;
Możemy użyć PROC UNIVARIATE do przeprowadzenia testów normalności zmiennej x w celu ustalenia, czy ma ona rozkład normalny, a także utworzyć histogram do wizualizacji rozkładu wartości:
/*create histogram and perform normality tests*/
proc univariate data =my_data normal ;
histogram x;
run ;
W ostatniej tabeli zatytułowanej Testy normalności widzimy, że wartość p testu Shapiro-Wilka jest mniejsza niż 0,05, co stanowi mocny dowód na to, że zmienna x nie ma rozkładu normalnego.
Histogram pokazuje również, że rozkład wartości nie wydaje się mieć rozkładu normalnego:
Możemy podjąć próbę transformacji logarytmicznej oryginalnego zbioru danych, aby sprawdzić, czy uda nam się utworzyć zbiór danych o bardziej normalnym rozkładzie.
Możemy użyć poniższego kodu, aby utworzyć nowy zbiór danych w SAS-ie, w którym pobieramy log każdej z oryginalnych wartości x:
/*use log transformation to create new dataset*/
data log_data;
set my_data;
x = log (x);
run ;
/*view log transformed data*/
proc print data =log_data;
Następnie możemy ponownie użyć PROC UNIVARIATE, aby przeprowadzić testy normalności przekształconej zmiennej, a także utworzyć histogram:
/*create histogram and perform normality tests*/
proc univariate data =log_data normal ;
histogram x;
run ;
W ostatniej tabeli zatytułowanej Testy normalności widzimy, że wartość p dla testu Shapiro-Wilka jest teraz większa niż 0,05.
Z histogramu wynika również, że rozkład wartości jest nieco bardziej normalny niż przed transformacją:
Na podstawie wyników testu Shapiro-Wilka i przedstawionego powyżej histogramu można stwierdzić, że transformacja logarytmiczna stworzyła zmienną o znacznie bardziej normalnym rozkładzie niż zmienna pierwotna.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:
Jak zidentyfikować wartości odstające w SAS
Jak obliczyć odległość gotowania w SAS
Jak tworzyć histogramy w SAS-ie