Data Preparation Jak przekształcać zmienne jakościowe? Marta Płonka Predictive Solutions W ostatnim artykule zobaczyliśmy, jak sprawdzić, czy między wybranymi przez nas predyktorami a zmienną przewidywaną istnieje zależność. Pokazaliśmy, jak możemy spróbować ocenić siłę tego związku, kiedy możemy uznać go za nieistotny oraz, jak zbudować ranking predyktorów na podstawie miar zależności. Wykorzystaliśmy do tego podejście zastosowane w modelu Data Preparation, oparte na istotności oraz jakości predykcji. W kolejnych dwóch artykułach zobaczymy, jak możemy wykorzystać przekształcenia zmiennych, w celu polepszenia zależności między predyktorami a zmienną przewidywaną. Na początek skupimy się na przekształceniach zmiennych jakościowych. Przekształcenia zmiennych jakościowych Jeśli naszym predyktorem jest zmienna jakościowa, np. poziom wykształcenia, możemy sprawdzić, czy kategorie wyodrębnione przez nas lub osobę, która je opracowała (np. w badaniu ankietowym) są odpowiednie. Przykładowo, czy wyznaczone kategorie wykształcenia dobrze różnicują to, ile kto zarabia. Zbyt duża liczba szczegółowych może utrudnić nam zaobserwowanie ogólniejszych zależności. W takiej sytuacji, możemy rozważyć złączenie wybranych. W wielu technikach analitycznych zmienne jakościowe muszą zostać przekształcane na zbiór zmiennych zero-jedynkowych przed ich użyciem bierze się to z wymagań, jakie stawiają danym takie techniki, jak np. analiza regresji. Korzystając ze zmiennych o mniejszej liczbie, upraszczamy i uogólniamy nasze modele. Załóżmy, że mamy zaobserwowaną cechę, jaka nas interesuje (np. dochód). Możemy sprawdzić, czy jest ona zależna od 2 wybranych predyktora (np. wykształcenia). Jeżeli stwierdzimy, że dochód nie zależy widocznie od tego, czy wykształcenie respondenta było, np. średnie czy średnie zawodowe, możemy połączyć te dwie kategorie w jedną. Do oceny tej zależności będziemy wykorzystywać podejście znane z poprzedniego artykułu [Jak wybrać] [odpowiednie predyktory do analizy]. Opis działania Załóżmy, że mamy dane dotyczące samochodów i dwie zmienne, które nas interesują: cena i spalanie (zużycie paliwa). Informację o cenie samochodów mamy ujętą w 5 kategoriach cenowych: z bardzo tanie, z tanie, z o przeciętnej cenie, z drogie, z bardzo drogie. Podobnie, zmienna spalanie ma 5 : z bardzo niskie, z niskie, z przeciętne, z wysokie, z bardzo wysokie.
2 Data Preparation Jak przekształcać zmienne jakościowe? Mając takie dane możemy sprawdzić, czy wyodrębnione kategorie zużycia paliwa dobrze różnicują cenę samochodu. Może się okazać, że nie ma potrzeby rozpatrywania samochodów o niskim i bardzo niskim spalaniu oddzielnie. Co więcej, rozpatrzenie ich jako jednej ułatwi nam prognozę ceny samochodu. Wykorzystamy do tego procedurę kategoryzacji nadzorowanej. Innymi słowy, przeprowadzimy rekodowanie jakościowego predyktora w oparciu o zmienną przewidywaną. Działanie tej procedury jest podobne do etapu łączenia w trakcie budowy drzewa typu CHAID. Pierwszym krokiem jest usunięcie pustych. Przykładowo, nie mamy żadnych danych o samochodach, których spalanie jest na przeciętnym poziomie. Wartość 3 jest jedną z wartości zmiennej spalanie, ale dla naszego zbioru ma zerową liczebność. Jeżeli nasz predyktor ma takie kategorie, będą one pomijane w dalszych krokach procedury. W drugim kroku badane są odpowiednie pary. Do tego, co znaczy w tym przypadku odpowiednie, wrócimy za chwilę. Skupmy się teraz na tym, na czym polega badanie. Jeżeli zastanawiamy się, czy połączyć kategorie samochodów o bardzo niskim i niskim spalaniu musimy sprawdzić, jak kształtowała się wśród takich samochodów cena. Możemy z naszego zbioru wybrać wyłącznie takie samochody, które mają spalanie=1 lub spalanie=2 i stworzyć, dla w ten sposób okrojonej zmiennej spalanie oraz cena tabelę krzyżową. Taka przykładowa tabela przedstawiona jest poniżej: Tabela 1. Przykładowa tabela krzyżowa: Cena w tysiącach Spalanie Liczebność Spalanie bardzo niskie niskie Ogółem Cena bardzo tani 8 4 12 tani 8 6 14 standardowa cena 10 6 16 drogi 10 15 25 bardzo drogi 14 19 33 Ogółem 50 50 100 Na podstawie tej tabeli możemy sprawdzać, czy cena istotnie zależy od dwóch wybranych spalania. Jeżeli tak, nie powinniśmy ich łączyć; w przeciwnym wypadku możemy rozważyć ich połączenie. Do oceny, czy korelacja istnieje czy nie, wykorzystamy istotność. Przypomnijmy, że w przypadku jakościowych predyktorów, istotność wyliczamy w zależności od skali pomiaru z testu: Chi-kwadrat, F i Goodmana. Wróćmy teraz do tego, jak wybieramy pary do połączenia. Jeżeli predyktor jest mierzony na skali nominalnej, to procedura sprawdzi każdą kombinację, np., gdy mamy kategorie A, B, C to rozpatrzymy, czy nie warto połączyć AB, AC, BC. W przypadku, gdy predyktor ma skalę porządkową, zbiór kombinacji jest ograniczony tylko do sąsiednich, np. dla A, B, C spróbujemy połączyć pary AB, BC. W naszym przykładzie dla zmiennej spalanie mamy do rozpatrzenia poniższe łączenia : z bardzo niskie + niskie; z niskie + przeciętne; z przeciętne + wysokie z wysokie + bardzo wysokie. Dla każdej takiej zmiennej okrojonej do dwóch rozpatrujemy zależność ze zmienną cena. Ponieważ nasza zmienna przewidywana jest mierzona na skali przedziałowej, procedura wyznaczy istotność dla testu Goodmana. Naszym najlepszym kandydatem do połączenia będzie para o największej istotności. Innymi słowy, będzie to para, dla której istotność najsilniej przemawia za brakiem związku ze zmienną cena. Wartość istotności jest porównywana z wartością p, wskazaną przez analityka i jeżeli jest od niej większa, kategorie są łączone. Parametr p pozwala nam zadecydować, jak dużą wartość istotności uznajemy za podstawę do tego, żeby uznać kategorie za słabo oddziałujące na cenę. Domyślnie, w IBM SPSS Statistics wartość p wynosi standardowo 0,05.
3 Data Preparation Jak przekształcać zmienne jakościowe? Jeżeli porównywalna wartość istotności nie jest większa od wartości p, algorytm przerywa działanie. Drugim warunkiem zatrzymania procedury jest połączenie wszystkich predyktora w jedną. Jeżeli łączenie się udało, powtarzamy omówione kroki dla predyktora z nową (pomniejszoną) liczbą. Załóżmy, że połączyliśmy kategorie niskie spalanie z bardzo niskimi. Nasz predyktor ma o jedną kategorie mniej, a do rozpatrzenia mamy kombinacje łączenia: z niskie/bardzo niskie + przeciętne, z przeciętne + wysokie, z wysokie + bardzo wysokie. Ponownie procedura przeprowadza serie testów, wyznacza istotność i wybiera parę o największej istotności, itd. Nowe kategorie, numerowane od 0, wyznaczane są na podstawie największych wartości połączonych. Załóżmy, że mamy kategorie o wartościach 1/2, 3, 4/5/6, dla których wartości największe wynoszą,,. Nowe kategorie tworzymy zgodnie z zasadą: kategoria 0 wartości mniejsze lub równe od, kategoria 1 wartości większe od i mniejsze lub równe od, kategoria 2 wartości większe od Zrób to sam! Otwórzmy nasz zbiór danych samochody.sav. Mamy w nim, tak jak w poprzednim artykule, dane dotyczące 155 modeli samochodów. Tym razem mamy tylko 3 zmienne jakościowe. Zmienną cena_jakosc, której wartości reprezentują 7 cenowych, gdzie 1 oznacza klasę samochodów najtańszych. Zmienną spalanie_jakosc, która reprezentuje 7 zużycia paliwa, gdzie 1 to klasa samochodów o najmniejszym spalaniu oraz trzecią, zmienną typ, która przyjmuje dwie wartości: 0 dla samochodów osobowych i 1 dla ciężarowych. Sprawdzimy teraz, jak nasza zmienna spalanie_jakosc przejdzie przez omawianą procedurę połączenia. Wybierzmy [Przekształcenia] u [Przygotuj dane do modelowania] u [Interaktywnie]. Na zakładce [Zmienne] przenieśmy zmienną cena_jakosc do pola [Zmienna] u [przewidywana], a zmienną spalanie_jakosc na listę [Zmienne wejściowe]. Rysunek 1. Wybór zmiennych Po wyborze zmiennych, przejdźmy na zakładkę [ustawienia] i z listy po lewej stronie wybierzmy element [Przekształcenia zmiennych]. Zaznaczmy opcje [Połącz małoliczne] [kategorie ]. [wartość p] zostawmy na domyślnym poziomie 0,05. Możemy przejść jeszcze przez pozostałe opcje dostępne na liście i odznaczyć czynności, których nie omawiamy w artykule. Jak już to zrobimy, kliknijmy w [Analizuj dane].
4 Data Preparation Jak przekształcać zmienne jakościowe? Rysunek 2. Ustawienia Przekształcenia zmiennych Wejściowe zmienne jakościowe Na zakładce [Analiza] otrzymamy wykres jakości predykcji dla nowoutworzonej zmiennej spalanie_jakosc_transformed. Jest to zmienna, która powstała na skutek połączenia zmiennej spalanie_jakosc. Sufiks, który jest dodawany do utworzonych przez procedurę zmiennych, możemy zmienić w opcjach dostępnych w [Nazwy zmiennych] na zakładce [Ustawienia]. Przed tym, jak sprawdzimy, które kategorie zostały połączone, zobaczmy, czy jakość predykcji zmiennej przekształconej wzrosła. Wybierzmy z listy w dolnej części okna [widok: Zmienne]. Spośród wizualizacji, jakie się pojawią, otrzymamy, m.in. przedstawione poniżej porównanie jakości predykcji. Dokładne wartości możemy odczytać z wykresów lub z tabeli predyktory, przełączając [użycie: oryginalna/przekształcona]. Rysunek 3. Zakładka Analiza Widok: Zmienne Widzimy, że dla zmiennej oryginalnej jakość predykcji wynosiła 0,41, a po przekształceniu wzrosła do 0,46. Aby sprawdzić dokładnie, jak procedura przekształciła naszą zmienną, naciśnijmy przycisk [Uruchom]. Dzięki temu skończymy pracę z kreatorem, a do naszego zbioru zostanie dołączona zmienna spalanie_jakosc_transformed. Możemy teraz wykonać i porównać analizę częstości dla zmiennej przed i po przekształceniu. Wybierzmy [Analiza Opis Statystyczny] [Częstości]. Przenieśmy wspomniane zmienne na listę po prawej stronie, pod przyciskiem [Wykresy] zaznaczmy [wykresy słupkowe] i kliknijmy [OK].
5 Data Preparation Jak przekształcać zmienne jakościowe? Rysunek 4. Częstości W wyniku otrzymamy dwie tabele i dwa wykresy słupkowe dla analizowanych zmiennych (etykiety wartości dla nowej zmiennej trzeba wprowadzić samemu). Częstość Procent Procent ważnych Procent skumulowany Ważne <= 16 8 5,2 5,2 5,2 17 19 14 9,0 9,0 14,2 20 22 33 21,3 21,3 35,5 23 26 53 34,2 34,2 69,7 27 29 31 20,0 20,0 89,7 30 32 11 7,1 7,1 96,8 33 + 5 3,2 3,2 100,0 Ogółem 155 100,0 100,0 Częstość Procent Procent ważnych Procent skumulowany Tabela 2, 3. Porównanie zmiennych tabele częstości Spalanie i spalanie_jakosc_transformed Ważne <= 19 22 14,2 14,2 14,2 20 22 33 21,3 21,3 35,5 23 26 53 34,2 34,2 69,7 27 29 31 20,0 20,0 89,7 30 + 16 10,3 10,3 100,0 Ogółem 155 100,0 100,0 Widzimy, że zmienna po przekształceniu ma mniej. Jeśli wnikliwiej przyjrzymy się tabeli częstości zobaczymy, że procedura połączyła dwie pierwsze i dwie ostatnie kategorie. Rysunek 5. Porównanie zmiennych wykresy słupkowe Zamiast samochodów o spaleniu poniżej 16 (8 samochodów) oraz między 17 a 19 (14 samochodów), otrzymaliśmy jedną kategorię samochodów o spalaniu mniejszym lub równym 19 (22 samochody). Jak pamiętamy, w kreatorze do oceny zależności zmiennych jakościowych, w przypadku gdy zmienna przewidywana jest nominalna, wykorzystuje się test Chi-kwadrat. W związku z tym, wykonajmy teraz łączenie zmiennej spalanie_jakosc, wybierając nominalną
6 Data Preparation Jak przekształcać zmienne jakościowe? zmienną przewidywaną typ. Dzięki temu możemy samodzielnie prześledzić jej działanie, wyliczając istotność statystyki Chi-kwadrat w procedurze tabeli krzyżowej. Pamiętajmy, że przed utworzeniem tabeli musimy dokonać selekcji obserwacji. Przykładowo, jak badamy, czy połączyć kategorie pierwszą i drugą, wybieramy tylko obserwacje zgodnie z warunkiem spalanie_jakosc=1 or spalanie_jakosc=2. Dla danych z naszego zbioru, zmienna spalanie ma 7 : z kategoria 1: <= 16, z kategoria 2: od 17 do 19, z kategoria 3: od 20 do 22, z kategoria 4: od 23 do 26, z kategoria 5: od 27 do 29, z kategoria 6: od 30 do 32, z kategoria 7: powyżej 33, co daje 6 potencjalnych do połączenia sąsiednich : 1+2, 2+3, 3+4, 4+5 5+6, 6+7. Dla każdej z nich możemy wyliczyć istotność testu Chi-kwadrat. Otrzymamy następujące wyniki istotności: Kombinacja Tabela 4. Łączenie na podstawie istotności testu Chi-kwadrat 1 + 2 0,095 2 + 3 0,749 3 + 4 0,952 4 + 5 0,013 5 + 6 0,152 6 + 7 0,755 Największą wartość istotności ma złączenie 3 i 4. Ponieważ jest ona większa od ustalonej przez użytkownika wartości p (0,2), kategorie zostaną połączone. Dla nowych kombinacji istotność wynosi: Kombinacja Tabela 5. Łączenie na podstawie testu Chi-kwadrat 1 + 2 0,095 2 + 3/4 0,704 3/4 + 5 0,010 5 + 6 0,152 6 + 7 0,755 Największą wartość istotności ma złączenie 6 i 7 i wynosi 0,755 więc kategorie te zostaną połączone. Ponownie, dla nowych kombinacji mamy: Łączenie Tabela 6. Łączenie na podstawie testu Chi-kwadrat 1 + 2 0,020 2 + 3/4 0,704 3/4 + 5 0,010 5 + 6/7 0,162 Największą wartość istotności ma połączenie 2 i 3/4. Znowu możemy je połączyć, ponieważ wartość 0,704 jest większa od 0,2. Nowe kombinacje dla zmiennej wyglądają w ten sposób: Łączenie 1 + 2/3/4 0,051 2/3/4 + 5 0,011 5 + 6/7 0,162
7 Data Preparation Jak przekształcać zmienne jakościowe? Największą wartość istotności ma połączenie 5 + 6/7. Nie jest ona jednak większa niż 0,2, więc procedura przerwie działanie. Ostatecznie nasza zmienna będzie miała teraz kategorie: z kategoria 1: <= 16, z kategoria 2: 17 26, z kategoria 3: 27 29, z kategoria 4: 30+. Przejdźmy do kreatora Automatycznego przygotowania danych i zobaczmy, czy uzyskamy to samo. Powtórzmy te same kroki, co poprzednio z tą tylko różnicą, że tym razem wybierzmy jako zmienną przewidywaną zmienną typ, a [wartość p] zwiększmy do 0,2. Powinniśmy otrzymać nową zmienną spalanie_jakosc_transformed (zmienna zostanie nadpisana). Tak, jak poprzednio wykonajmy dla niej analizę częstości. Częstość Procent Procent ważnych Procent skumulowany Ważne <= 16 8 5,2 5,2 5,2 17 26 100 64,5 64,5 69,7 27 29 31 20,0 20,0 89,7 30+ 16 10,3 10,3 100,0 Ogółem 155 100,0 100,0 Tabela 7. Rysunek 6. Wyniki łączenia na podstawie testu Chi-kwadrat Widzimy, że zgodnie z tym, co wyliczyliśmy kategorie od 17 do 20 (2), od 20 do 22 (3) oraz od 23 do 26 (4) zostały połączone w kategorie od 17 do 26. Kategoria spalanie powyżej 33 (7) i od 30 do 33 (6), zostały połączone w jedną kategorię spalanie powyżej 30. Na koniec przyjrzyjmy się pozostałym opcjom dostępnym w kreatorze w ramach przekształcenia wejściowych zmiennych jakościowych. W sytuacji, gdy nie mamy zmiennej przewidywanej możemy wykorzystać opcje połączenia małolicznych. Użytkownik wybiera dla zmiennych porządkowych lub/i zmiennych nominalnych, minimalną liczebność, jaką powinna mieć każda kategoria. Należy wybrać liczbę od 0 do 100. Gdy wybierzemy, np. 5, oznacza to, że żadna z zmiennej przekształconej nie będzie miała mniej niż 5% ogólnej liczebności. Jeżeli mamy zmienną nominalną, to małoliczne kategorie zostaną połączone w jedną wspólną kategorię. Jeżeli mamy zmienną porządkową małoliczną, kategoria zostanie dołączona do następnej. Wyjątkiem jest sytuacja, gdy małoliczna kategoria jest ostatnią kategorią. W takiej sytuacji zostaje ona dołączona do poprzedzającej ją. Predictive Solutions ul. Racławicka 58 30-017 Kraków tel. 12 636 96 80 faks wew. 102 e-mail [info@predictivesolutions.pl] [www.predictivesolutions.pl] Podsumowując zobaczyliśmy, jak można przekształcać zmienne jakościowe tak, aby uzyskać polepszenie jakości predykcji. W następnym artykule skupimy się na przekształceniach zmiennych ilościowych. Poznamy nową metodę kategoryzacji nadzorowanej i zobaczymy, czym różni się ona od omawianej wcześniej kategoryzacji optymalnej.