Jak już pokazywaliśmy w poprzednich tekstach, analiza korespondencji jest znakomitą techniką prezentacji i oceny związku pomiędzy dwiema zmiennymi, który zaobserwowaliśmy w tabeli kontyngencji. Interface PS IMAGO PRO pozwala na wprowadzenie dwóch zmiennych do analizy – wierszowej i kolumnowej. Czy na pewno jesteśmy skazani na tak bardzo limitowany wybór?
Chcesz dowiedzieć się więcej o analziie korespondencji?
Zapraszamy na szkolenie MC 3a. Pozycjonowanie z wykorzystaniem map percepcyjnych i technik skalowania optymalnego
W tym i następnym artykule spróbujemy sięgnąć poza ograniczenia prostej analizy dwóch zmiennych w tabeli i wyjść poza z pozoru niemożliwe do przekroczenia granice. Poniższy tekst stanowi z jednej strony wstęp do bardziej zaawansowanych i niestandardowych zastosowań analizy korespondencji, z drugiej strony jest podsumowaniem dotychczasowych wpisów na ten temat.
Narzędziem, z którego będziemy musieli skorzystać, będzie język poleceń dostępny w PS IMAGO PRO. Nie tylko umożliwia on automatyzację i modyfikację wykonywanych procedur, ale również daje dostęp do dodatkowych opcji. Jak to wygląda w przypadku analizy korespondencji? Kluczową z naszego punktu widzenia „ukrytą” funkcjonalnością jest możliwość modyfikacji kształtu danych źródłowych wykorzystywanych w dalszej analizie. Parametr ten definiujemy w pierwszej linijce procedury, która zazwyczaj ma postać: CORRESPONDENCE TABLE = zmienna_wierszowa (zakres) BY zmienna_kolumnowa (zakres). Taki kształt danych wykorzystujemy najczęściej. Analiza korespondencji sama buduje tabelę na podstawie surowych danych w układzie przypadków i zmiennych. Sprawa komplikuje się, jeżeli dane mają postać gotowej tabeli zawierającej zagregowane liczebności. W takiej sytuacji musimy skorzystać z języka poleceń i odpowiednio zmodyfikować pierwszy wiersz procedury:
CORRESPONDENCE TABLE = ALL (liczba wierszy , liczba kolumn).
Dzięki powyższej modyfikacji silnik analityczny PS IMAGO PRO będzie traktował każdy wiersz, jako kategorię zmiennej wierszowej, a każdą kolumnę jako osobną kategorię zmiennej kolumnowej.
Kolejne pytanie: skąd PS IMAGO PRO zaczyta nazwy kategorii zmiennej wierszowej i kolumnowej, które później pojawią się na mapie percepcyjnej? W przypadku kolumn sprawa jest prosta – opisy punktów będą stanowiły etykiety zmiennych umieszczone w kolumnach (przy braku etykiet SPSS wykorzysta nazwy zmiennych). Warto o tym pamiętać i już przed przeprowadzeniem analizy zadbać o czytelne i zrozumiałe nazewnictwo. Dla nazw wierszy sprawa nieco się komplikuje. PS IMAGO PRO domyślnie wykorzysta numery przypadków, co nie jest zbyt czytelnym rozwiązaniem. Mamy jednak dodatkową możliwość. Konieczne jest stworzenie numerycznej zmiennej rowcat_, która będzie zawierać opisy kategorii wierszowych (zapisane jako standardowe etykiety). Nazwa wspomnianej zmiennej zawiera znak specjalny („_”), o czym zostaniemy ostrzeżeni stosownym komunikatem. Jeżeli nazwy przypadków występują w oryginalnej tabeli pod postacią opisów tekstowych należy zamienić je na zmienną numeryczną wykorzystując procedurę automatycznego rekodowania (zakładka Przekształcenia) lub kopiowanie etykiet na nową zmienną (zakładka Predictive Solutions). Należy także pamiętać, że zmienna rowcat_ nie liczy się do ogólnego rachunku liczby kolumn naszej tabeli, a także, że musi znajdować się na początku tabeli.
Praktyka jest w tym przypadku dużo prostsza niż teoria. Regularni czytelnicy pamiętają zapewne poprzedni tekst dotyczący motywacji wyboru piwa. Dane w tradycyjnej formie wyglądają następująco: każdy wiersz reprezentuje przypadek a każda kolumna zmienną.
Format danych dla opcji Table=ALL() przedstawia się w odmienny sposób. Każdy wiersz reprezentuje kategorię zmiennej wierszowej (ich nazwy zawiera zmienna rowcat_), każda kolumna reprezentuje kategorię zmiennej kolumnowej, zaś poszczególne komórki zawierają liczebności. Tabela nie powinna zawierać podsumowań ogółem. Nawiasem mówiąc, taką tabelę można z łatwością uzyskać korzystając z panelu kontrolnego OMS. Nie trzeba kopiować jej ręcznie z raportu!
Skoro mamy już dane, możemy przystąpić do właściwej analizy. Nie jest to trudne. Wszystkie pożądane parametry analizy możemy ustawić przy pomocy kreatora analizy (na dwóch dowolnych zmiennych z tabeli i dowolnym przedziale wartości), a następnie wkleić ją do języka poleceń w celu dalszej modyfikacji. Jest to szybsza forma wykonania analizy, ale doświadczeni użytkownicy mogą samodzielnie wpisać poszczególne elementy procedury. Edytor poleceń PS IMAGO PRO bardzo ułatwia pracę podpowiadając kolejne możliwe opcje i parametry do wyboru.
CORRESPONDENCE TABLE=ALL(6,4)
/DIMENSIONS=2
/MEASURE=CHISQ
/STANDARDIZE=RCMEAN
/NORMALIZATION=SYMMETRICAL
/PRINT=TABLE RPOINTS CPOINTS
/PLOT=NDIM(1,MAX) BIPLOT(20). ;
Wykonanie analizy na domyślnych ustawieniach, jedynie z modyfikacją kształtu danych, powinno mieć postać zaprezentowaną powyżej. Kod z pozoru może wydawać się trudny, jednak w istocie widzimy tutaj efekty naszych ustawień w okienku definiowania analizy. W pierwszej linijce informujemy silnik PS IMAGO PRO o kształcie danych – tę linijkę musimy niestety zmodyfikować ręcznie. W nawiasach wpisujemy liczbę wierszy naszej tabeli, a po przecinku liczbę kolumn, nie uwzględniając jednak zmiennej rowcat_. Dalej jest już dużo prościej. Omówmy więc kolejne elementy.
- /DIMENSIONS=2 – tutaj wskazujemy programowi liczbę wymiarów uwzględnioną w ostatecznym rozwiązaniu
- /MEASURE=CHISQ
- /STANDARDIZE=RCMEAN – ta i poprzednia linijka są domyślnymi ustawieniami analizy korespondencji wykonywanej dla tabeli zawierającej liczebności. Jest to informacja o mierze dystansu i sposobie standaryzacji tabeli. Na razie nie modyfikujemy ich.
- /NORMALIZATION – jak pamiętamy z poprzednich tekstów, wybór metody normalizacji jest kluczowy dla późniejszej interpretacji mapy percepcyjnej. Dostępne tutaj opcje to domyślna normalizacja symetryczna (SYMMETRICAL), kolumnowa (CPRINCIPAL), wierszowa (RPRINCIPAL) oraz wierszowo-kolumnowa (PRINCIPAL).
- /PRINT – w tym miejscu definiujemy tabele, które pojawią się w wynikach analizy. TABLE oznacza tabelę korespondencji, RPOINTS i CPOINTS odpowiednio profile punktów wierszowych i kolumnowych. Program niezależnie od ustawień raportuje tabelę podsumowującą model, chyba że ustawimy tutaj opcję NONE. Zachęcam do samodzielnego eksperymentowania z opcjami dostępnymi pod przyciskiem Statystyki.
- /PLOT – ten wiersz odpowiada za wykresy, które pojawią się w raporcie wynikowym. Polecenie NDIM() na początku definiuje liczbę wymiarów prezentowanych w rozwiązaniu. Po nim kolejno dodajemy interesujące nas wykresy podając w nawiasie maksymalną długość etykiet. Najbardziej interesuje nas w tym miejscu BIPLOT, ale dostępne są również inne możliwości, które pozostawiam czytelnikom do samodzielnego sprawdzenia na własnych danych.
W tej analizie nie definiowaliśmy kategorii pasywnych. Aby to zrobić, należy dopisać w kodzie analizy korespondencji (uwaga na kropkę kończącą całą procedurę!) następującą linijkę: /SUPPLEMENTARY=. Edytor poleceń zaproponuje następnie możliwość ustawienia kategorii pasywnej dla wiersza poprzez opcję ROW () lub kolumny za pomocą opcji COLUMN (). W nawiasach definiujemy numery kategorii, które zostaną potraktowane przez program jako pasywne. Kolejne kategorie oddzielamy przecinkiem. Powyższy opis w zasadzie wyczerpuje temat wykonania analizy korespondencji przy pomocy języka poleceń w sytuacji, w której dysponujemy danymi w formie tabeli.
Czytelnik może jednak zapytać po co właściwie się męczyć i czy nie lepiej skorzystać z intuicyjnego kreatora analizy PS IMAGO PRO. Dane przecież zawsze można przekształcić do formy zagregowanej i częstości wykorzystać jako wagi. Taka metoda postępowania jest jak najbardziej prawidłowa, jednak może być ona bardziej skomplikowana dla mniej doświadczonego użytkownika. Przekształcanie danych zajmuje również w moim odczuciu więcej czasu niż wykonanie analizy z wykorzystaniem opcji TABLE=ALL, co może mieć znaczenie podczas eksploracji wielu tabel. W takim przypadku jest to więc w zasadzie kwestia wyboru wygodniejszej ścieżki postępowania. Niebagatelne znaczenie ma jednak fakt, że korzystając z panelu użytkownika w przypadku prostej analizy korespondencji jesteśmy ograniczeni tylko do dwóch zmiennych, a wykorzystanie języka poleceń znosi to ograniczenie. Poniżej wyliczyłem przykładowe zastosowania.
- Wprowadzenie wielu zmiennych do analizy
- Analiza podobieństwa pomiędzy przypadkami
- Analiza relacji pomiędzy przypadkami a zmiennymi i tworzonymi wymiarami
- Analiza zestawów wielokrotnych odpowiedzi
- Analiza przy wykorzystaniu zagregowanych wartości kilku skal (średnie, sumy) lub nawet agregatów dla zmiennych ilościowych
- Analiza tabel zbudowanych w oparciu o wartości różnych, złożonych wskaźników (np. stopa bezrobocia, PKB, czy Human Development Index)
W wielu przypadkach analiza korespondencji będzie stanowić ciekawą alternatywę i uzupełnienie dla innych technik wielowymiarowych, takich jak analiza skupień czy analiza czynnikowa. Widać jednak, że przedstawione w tym tekście proste przekształcenie kodu procedury w znaczący sposób poszerzyło możliwości analizy teoretycznie ograniczonej tylko do dwóch zmiennych.