Automatyczna rekategoryzacja zmiennych jakościowych z modułem Data Preparation

Często podczas eksploracyjnej analizy danych poszukujemy optymalnej kategoryzacji predyktorów w celu jak najlepszego zobrazowania zależności pomiędzy nimi a zmienną zależną. Ręczne poszukiwania najlepszego podziału jest niestety bardzo czasochłonne. Z pomocą przychodzi nam moduł Data Preparation umożliwiający automatyczne przekształcenia zmiennych w oparciu o testy istotności.

Jeśli naszym predyktorem jest zmienna jakościowa, np. poziom wykształcenia, możemy sprawdzić, czy wyodrębnione (przez nas lub osobę, która przygotowywała badanie ankietowe) kategorie są odpowiednie – np. czy dobrze różnicują zarobki. Zbyt duża liczba szczegółowych kategorii może utrudnić nam zaobserwowanie ogólniejszych zależności. W takiej sytuacji możemy rozważyć połączenie wybranych kategorii zmiennej zależnej – najlepiej tych, które nie różnią się ze względu na rozkład zmiennej przewidywanej. Przykładowo, czy dochód jest zależny od dwóch wybranych kategorii predyktora (np. wykształcenia). Jeżeli stwierdzimy, że dochód nie zależy od tego, czy wykształcenie respondenta było średnie czy zasadnicze zawodowe, możemy połączyć te dwie kategorie w jedną.

Kolejnym potencjalnym zastosowaniem automatycznej rekategoryzacji zmiennych jakościowych jest przekształcenie ich w optymalny zestaw wskaźnikowych zmiennych dychotomicznych. W wielu technikach analitycznych zmienne jakościowe muszą jeszcze przed użyciem zostać przekształcone na zbiór zmiennych zero-jedynkowych. Bierze się to z wymagań, jakie stawiają danym takie techniki, jak np. analiza regresji. Korzystając ze zmiennych o mniejszej liczbie kategorii, upraszczamy i uogólniamy nasze modele.

Opis procedury Interaktywnego przygotowania danych

Załóżmy, że mamy następujące dane dotyczące samochodów : cenę i spalanie (zużycie paliwa). Informację o cenie samochodów mamy ujętą w 5. kategoriach cenowych:

  • bardzo tanie
  • tanie
  • o przeciętnej cenie
  • drogie
  • bardzo drogie.

Podobnie, zmienna spalanie ma 5 kategorii:

  • bardzo niskie
  • niskie
  • przeciętne
  • wysokie
  • bardzo wysokie.

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 kategorii 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 kategorii w trakcie budowy drzewa typu CHAID. Pierwszym krokiem jest usunięcie pustych kategorii. 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 kategorii. 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ę cena takich samochodów. Możemy z naszego zbioru wybrać wyłącznie takie samochody, które mają spalanie=1 lub spalanie=2 i stworzyć dla – okrojonej w ten sposób – zmiennej spalanie oraz zmiennej cena tabelę krzyżową. Taka przykładowa tabela przedstawiona jest poniżej:

Rysunek 1. Rozkład ceny wśród samochodów o niskim i bardzo niskim spalaniu

Rysunek 1. Rozkład ceny wśród samochodów o niskim i bardzo niskim spalaniu

Na podstawie tej tabeli możemy sprawdzać, czy cena istotnie zależy od dwóch wybranych kategorii spalania. Jeżeli tak, nie powinniśmy ich łączyć. W przeciwnym wypadku możemy rozważyć ich połączenie. Do oceny, czy istnieje tu korelacja 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 kategorii do połączenia. Jeżeli predyktor jest mierzony na skali nominalnej, to procedura sprawdzi każdą kombinację kategorii, 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 kategorii, np. dla kategorii A, B, C spróbujemy połączyć pary AB, BC. W naszym przykładzie dla zmiennej spalanie mamy do rozpatrzenia poniższe łączenia kategorii:

  • bardzo niskie + niskie
  • niskie + przeciętne
  • przeciętne + wysokie
  • wysokie + bardzo wysokie.

Dla każdej takiej zmiennej – okrojonej do dwóch kategorii – 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. 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 kategorii predyktora w jedną. Jeżeli łączenie się udało, powtarzamy omówione kroki dla predyktora z nową (pomniejszoną) liczbą kategorii. Załóżmy, że połączyliśmy kategorie niskie spalanie z bardzo niskimi. Nasz predyktor ma o jedną kategorię mniej, a do rozpatrzenia mamy kombinacje łączenia:

  • niskie/bardzo niskie + przeciętne,
  • przeciętne + wysokie,
  • wysokie + bardzo wysokie.

Ponownie procedura przeprowadza serie testów, wyznacza istotność i wybiera parę o największej istotności, itd. W wyniku działania procedury do zbioru danych zostaną dodane nowe zmienne będące efektem przekształcenia zarówno predyktorów jak i zmiennej niezależnej. Nowe kategorie zostaną ponumerowane od 0 i wyznaczane będą na podstawie największych wartości spośród połączonych kategorii. Załóżmy, że mamy kategorie o wartościach 1/2, 3, 4/5/6, dla których wartości największe wynoszą max1 = 2 max2 = 3, max3 = 6. Nowe kategorie tworzymy zgodnie z zasadą: kategoria 0 wartości mniejsze lub równe od max1, kategoria 1 wartości większe od max1 i mniejsze lub równe od max2, kategoria 2 wartości większe od max2. Procedura Interaktywnego przygotowania danych w praktyce Wróćmy do wspomnianych wcześniej samochodów. Dane dotyczące 155 modeli: zmienna „Cena w tysiącach” została pogrupowana w 7 kategorii, gdzie 1 oznacza klasę samochodów najtańszych. Zmienna „Spalanie” również posiada 7 kategorii zużycia paliwa, gdzie 1 to klasa samochodów o najmniejszym spalaniu. Trzecią zmienną jest „Typ samochodu”, która przyjmuje 2 wartości: 0 dla samochodów osobowych i 1 dla aut ciężarowych. Przetestujmy jak procedura łączenia kategorii przekształci zmienną „Spalanie” biorąc pod uwagę „Cenę w tysiącach”. Wybierzmy Przekształcenia -> Przygotuj dane do modelowania -> Interaktywnie. W zakładce Zmienne należy wskazać zmienną zależną oraz zestaw predyktorów poprzez przeniesienie ich do odpowiednich pól. W naszym przypadku zmienną przewidywaną jest „Cena w tysiącach” a zmienną niezależną (wejścia) jest „Spalanie”.

 

Rysunek 2. Okno wyboru zmiennych

Rysunek 2. Okno wyboru zmiennych

Po wyborze zmiennych, przejdźmy na zakładkę Ustawienia i z listy po lewej stronie wybierzmy element [Przekształcenia zmiennych]. Aby wykonać pożądane przez nas przekształcenie musimy zaznaczyć opcję Połącz małoliczne kategorie… w sekcji Wejściowe zmienne jakościowe. W tym miejscu możemy również zdefiniować progową wartość istotności (w polu wartość pl), ale możemy ją również pozostawić 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 przycisk [Analizuj] zlokalizowany w górnym obszarze okna procedury.

 

Rysunek 3. Ustawienia – Przekształcenia zmiennych – Wejściowe zmienne jakościowe

Rysunek 3. Ustawienia – Przekształcenia zmiennych – Wejściowe zmienne jakościowe

 

Aby podejrzeć wyniki musimy przejść do zakładki Analiza, będącej interaktywną formą prezentacji wyników. Wśród dostępnych obiektów otrzymamy wykres jakości predykcji dla nowoutworzonej zmiennej spalanie_jakosc_transformed (czyli przekształconej zmiennej „Spalanie”). Sufiks, który jest dodawany do utworzonych przez procedurę zmiennych, możemy zmienić w opcjach dostępnych w Nazwy zmiennych w zakładce Ustawienia.

 

Rysunek 4. Zakładka Analiza -> Widok: Zmienne

Rysunek 4. Zakładka Analiza -> Widok: Zmienne

 

Przed tym, jak sprawdzimy, które kategorie zostały połączone, zobaczmy, czy jakość predykcji przekształconej zmiennej 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. 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. Aby porównać rozkład nowej i oryginalnej zmiennej możemy wykorzystać procedurę Częstości z menu Analiza -> Opis Statystyczny. Procedura pozwala również na zamówienie wykresów słupkowych, które pomogą nam ocenić wynik przekształcenia.

 

Rysunek 5. Tabele częstości dla oryginalnej zmiennej Spalanie oraz dla zmiennej przekształconej Spalanie_jakosc_transformed

Rysunek 5. Tabele częstości dla oryginalnej zmiennej Spalanie
oraz dla zmiennej przekształconej Spalanie_jakosc_transformed

 

Widzimy, że zmienna po przekształceniu ma mniej kategorii. Jeśli wnikliwiej przyjrzymy się tabeli częstości, zobaczymy, że procedura połączyła dwie pierwsze i dwie ostatnie kategorie. Zamiast kategorii samochodów o spalaniu 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). Szczegółowo rozkłady zmiennych można porównać przy pomocy zamówionych wykresów słupkowych. 

 

Rysunek 6. Porównanie zmiennych oryginalnej i przekształconej – wykresy słupkowe

Rysunek 6. Porównanie zmiennych oryginalnej i przekształconej – wykresy słupkowe

 

Interaktywne przygotowanie danych krok po kroku

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 samodzielne łączenie kategorii zmiennej „Spalanie” wybierając nominalną zmienną przewidywaną – typ samochodu. Dzięki temu możemy łatwo 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, kiedy 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 kategorii:

  • kategoria 1: <= 16,
  • kategoria 2: od 17 do 19,
  • kategoria 3: od 20 do 22,
  • kategoria 4: od 23 do 26,
  • kategoria 5: od 27 do 29,
  • kategoria 6: od 30 do 32,
  • kategoria 7: powyżej 33.

Daje to 6 potencjalnych do połączenia sąsiednich kategorii: 1+2, 2+3, 3+4, 4+5 5+6, 6+7. Dla każdej z nich możemy wyliczyć istotność testu Chi-kwadrat. Przyjrzyjmy się kolejnym etapom łączenia kategorii zmiennej Spalanie zamieszczonym w poniższych tabelach. Jako wartość progową poziomu istotności powyżej której będziemy łączyć kategorie przyjmijmy 0,2.  

 

Rysunek 7. Etapy testowania i łączenia kategorii na podstawie istotności testu Chi-kwadrat

Rysunek 7. Etapy testowania i łączenia kategorii na podstawie istotności testu Chi-kwadrat

 

  1. Największą wartość istotności ma złączenie 3 i 4 kategorii. Ponieważ jest ona większa od ustalonej przez użytkownika wartości p (0,2), kategorie zostaną połączone. Dla nowych kombinacji kategorii istotność wynosi: 0,952.
  2. W kolejnym etapie największą wartość istotności ma złączenie 6 i 7 kategorii i wynosi 0,755 więc kategorie te zostaną połączone.
  3. Największą wartość istotności ma połączenie 2 i 3/4 kategorii. Znowu możemy je połączyć, ponieważ wartość 0,704 jest większa od 0,2.
  4. W ostatnim kroku największą wartość istotności ma połączenie kategorii 5 + 6/7. Nie jest ona jednak większa niż 0,2, więc procedura przerwie działanie.

Ostatecznie nasza przekształcona zmienna będzie miała teraz kategorie:

  • kategoria 1: <= 16,
  • kategoria 2: 17 – 26,
  • kategoria 3: 27 – 29,
  • 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.

 

Rysunek 8. Wyniki łączenia na podstawie testu Chi-kwadrat

Rysunek 8. 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 kategorii. 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 kategorii 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ą, to małoliczna kategoria zostanie dołączona do następnej kategorii. Wyjątkiem jest sytuacja, gdy jest ona ostatnią kategorią. Wówczas zostaje ona dołączona do kategorii poprzedzającej.


Powiązane wydarzenia: