przekształcenia

Transkrypt

przekształcenia
PRZEKSZTAŁCENIA
Niezwykle przydatną umiejętnością jest tworzenie nowych zmiennych na podstawie zmiennych już istniejących
jeżeli działamy używając menu i okienek to zdecydowaną większość poleceń do tego przeznaczonych
znajdziemy w menu PRZEKSZTAŁCENIA
Jedną z najczęściej używanych jest komenda Oblicz wartości ( compute )
Przypuśćmy, że chcielibyśmy wiedzieć jaki jest dochód na głowę w gospodarstwie domowym respondenta.
Takiej zmiennej nie ma w zbiorze danych lecz łatwo będzie ją utworzyć dzieląc dochód gospodarstwa
domowego (INCOME91) przez liczbę domowników (HOMPOP).
COMPUTE Dochod = income91 / hompop.
Execute.
Powyższy przykład stworzył zmienną „Dochod” która dla każdej osoby przechowuje wynik dzielenia dochodów
je gospodarstwa domowego przez liczbę osób w nim zamieszkujących.
Obliczanie wartości wyposażone jest w długą listę dostępnych funkcji. Chcąc na przykład obliczyć logarytm
naturalny z dochodów łącznych gospodarstwa domowego (INCOME91) należy wpisać poniższą komendę:
COMPUTE LINCOM91 = LN(income91) .
Powstaje zmienna LINCOM91, której wartości są logarytmem wartości zmiennej Income91
Często używaną funkcją jest MEAN. Dzięki niej można szybko obliczyć średnią arytmetyczną z kilku
zmiennych. W poniższym przypadku jest to średnia z trzech zmiennych opisujących sytuację finansową
gospodarstwa domowego (NOTEDUC, NOTFOOD, NOTMEDI):
COMPUTE INDEX = MEAN(noteduc,notfood,notmedi) .
VARIABLE LABELS
INDEX= 'WSKAZNIK BIEDY'.
Dzięki „jeżeli” (IF) łatwo utworzyć zmienne wymagające użycia relacji (<, >, =>, =<, =) i warunków
logicznych (or, and, not). W ten sposób można na przykład na podstawie ilości lat respondenta zakwalifikować
go do jednej z czterech kategorii wiekowych.
Na podstawie zmiennej „age” tworzymy nową zmienną „wiek”
COMPUTE wiek = 0 .
IF (age <=34) wiek = 1 .
IF (age >34 and age<=45) wiek = 2 .
IF (age >45 and age<=61) wiek = 3 .
IF (age >61) wiek = 4 .
Execute.
I dorabiamy etykiety nowej zmiennej
VALUE LABELS
WIEK
1 'Do 34 lat'
2 '35 - 45 lat'
3 '46 - 61'
4 'Powyżej 61 lat'.
Identyczny efekt jak poprzednio możemy osiągnąć przez Rekodowanie. Polega na zmienianiu wartości
zmiennych, czyli na nadawaniu wartościom zmiennej innych wartości (1=5, 2=6) lub na przypisywaniu
podzakresom zmiennej określonych kodów (1,2,3=1; 4,5,6=2).
RECODE
age (1 THRU 34=1)(35 THRU 45=2) (46 THRU 61=3)(99=9).
W tym wypadku oryginalne wartości zmiennej AGE zostały utracone.
Aby zachować oryginalne wartości zmiennej należy podczas rekodowania utworzyć nową zmienną .
Pokazuje to poniższy zapis :
RECODE
age (1 THRU 34=1)(35 THRU 45=2) (46 THRU 61=3)(99=9)
INTO GRUPAGE .
Nowo powstałą zmienną GRUPAGE możemy opisać identycznie jak poprzednio, nadając etykietę samej
zmiennej
VARIABLE LABEL
GRUPAGE 'KATEGORIE WIEKOWE'.
i jej wartościom:
VALUE LABELS
GRUPAGE
1 'Do 34 lat'
2 '35 - 45 lat'
3 '46 - 61'
4 'Powyżej 61 lat'.
W zmiennej oryginalnej kodem określającym braki danych było 99, w nowej zmiennej jest to 9. Braki danych
deklarujemy w następujący sposób :
MISSING VALUE GRUPAGE (9).
Braki danych z reguły kodujemy jako 9 (lub 99 lub 999)
Odpowiedzi typu "nie wiem" jako 8 (lub 98 lub 998), zależnie wartości danej zmiennej, w której występują. Z
reguły w deklarujemy braki danych i odpowiedzi typu "nie wiem" jako missing values. Innym popularnym
sposobem deklarowania braków danych jest użycie wartości ujemnych, lecz my pozostaniemy przy 9.
Została utworzona nowa zmienna, której wartość 1 oznacza osobę do 34 lat, 2 od 35 do 45 lat, 3-powyżej 45, 9
to brak danych.
Kolejną komendą dającą możliwość tworzenia nowych zmiennych jest Rangowanie obserwacji (RANK.)
Służy ona do rangowania wartości zmiennej według szeregu dostępnych kryteriów. Najczęściej używa się
rangowania według wartości percentyli.
Wyobraźmy sobie, że chcielibyśmy porangować dochody łączne gospodarstwa domowego od gospodarstw
najbiedniejszych do najzasobniejszych. Możemy to zrobić dzieląc je według wartości decyli na 10 grup i
przypisując poszczególnym grupom rangi od 1 do 10.
RANK
VARIABLES=income91
/TIES=MEAN .
(A) /NTILES (10) /PRINT=YES
Powstaje nowa zmienna ciągła, której wartości mówią nam do którego decyla dochodów należy gospodarstwo
domowe respondenta.
Dodatkowo, używając rank możemy rangować oddzielnie podgrupy osób badanych. Przykładowo jeśli
porangowalibyśmy, wzrost respondentów prawdopodobnie najwyższe pozycje zajmowali by mężczyźni. Jeśli
karzemy porangować wzrost według płci kobiety i mężczyźni zostaną porangowani oddzielnie w ten sposób np.
rangę 1 otrzymają dwie osoby: najwyższa kobieta jak i mężczyzna, a nie jeden najwyższy respondent.
Inną bardzo przydatną komendą służącą do tworzenia nowych zmiennych jest Zlicz wystąpienia (COUNT). Jej
zastosowanie ilustruje poniższa procedura tworzenia “wskaźnika szczęścia”. Chcąc utworzyć taki wskaźnik
można zliczyć wszystkie wartości oznaczające “bardzo szczęśliwy” (1) i “raczej szczęśliwy” (2) dla zmiennych
opisujących poczucie szczęścia respondenta pięć lat temu (HAPPAS5), obecnie (HAPUNHAP) i za pięć lat
(HAPFUT5).
COUNT
happy = happas5 hapunhap hapfut5
(1 thru 2)
.
VARIABLE LABELS happy 'WSKAZNIK SZCZESCIA(ile razy był b szczęśliwy )' .
Powstaje nowa zmienna HAPPY, w której 0 oznacza, że respondent nie wskazał 1 lub 2 na żadnej z trzech
zmiennych, a 3 mówi nam, że mamy do czynienia z wielkim optymistą, który był, jest i będzie szczęśliwy.
DANE
W zbiorze można wykonywać analizy na wybranej grupie przypadków. Wyboru przypadków (filtrowania)
dokonuje się poprzez Wybierz Obserwacje:
Dokonać możemy tego na dwa sposoby tak aby nie wybrane obserwacje zostały trwale usunięte lub czasowo
wyłączone z analiz („odfiltrowane”)
Poniższy przykład ilustruje polecenia wyłączające czasowo wszystkie osoby, które na zmiennej sex miały
wartość inną niż 1.
USE ALL.
COMPUTE filter_$=(sex = 1).
FILTER BY filter_$.
EXECUTE.
Pierwsza linia mówi, że do nadchodzących operacji mają zostać wykorzystane wszystkie przypadki
Kolejna tworzy i formatują zmienną filter_$, która przyjmuje wartość logiczną PRAWDA (1) dla osób których
zdanie: sex =1 było prawdziwe, a wartość logiczną FAŁSZ (0) dla pozostałych osób.
Kolejna linia wybrać czasowo osoby, które mają na zmienne filter_$ wartość prawda, pozostałe pominąć.
W wyniku tej operacji w analizowanym zbiorze danych chwilowo pozostali sami mężczyźni:
Aby wybrać interesującą nas grupę danych można tworzyć bardziej złożone filtry. Poniższy filtr spowoduje, że
w zbiorze pozostaną tylko mężczyźni powyżej 30-tego roku życia:
USE ALL.
COMPUTE filter_$=(sex = 1 & age > 30).
VARIABLE LABEL filter_$ 'sex = 1 & age > 30 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMAT filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE.
Przywrócić obserwacje czasowo wyłączone komendą Wybierz Obserwacje można poprzez komendę :
FILTER OFF.
USE ALL.
EXECUTE .

Podobne dokumenty