SAS - Cross Tabulations
Tabele krzyżowe obejmują tworzenie tabel krzyżowych, zwanych również tabelami warunkowymi, przy użyciu wszystkich możliwych kombinacji dwóch lub więcej zmiennych. W SAS jest tworzony za pomocąPROC FREQ razem z TABLESopcja. Na przykład - jeśli potrzebujemy częstotliwości każdego modelu dla każdej marki w każdej kategorii typu samochodu, to musimy użyć opcji TABLES w PROC FREQ.
Składnia
Podstawowa składnia stosowania tabel krzyżowych w SAS to -
PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;
Poniżej znajduje się opis użytych parametrów -
Dataset to nazwa zbioru danych.
Variable_1 and Variable_2 to nazwy zmiennych zbioru danych, którego rozkład częstotliwości ma zostać obliczony.
Przykład
Rozważmy przypadek znalezienia liczby typów samochodów dostępnych pod każdą marką na podstawie utworzonego formularza zbioru danych samochody1 SASHELP.CARSjak pokazano niżej. W tym przypadku potrzebujemy indywidualnych wartości częstotliwości, a także sumy wartości częstotliwości dla różnych marek i dla wszystkich typów. Możemy zaobserwować, że wynik pokazuje wartości w wierszach i kolumnach.
PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc FREQ data = CARS1;
tables make*type;
run;
Po wykonaniu powyższego kodu otrzymujemy następujący wynik -
Zestawienie krzyżowe 3 zmiennych
Kiedy mamy trzy zmienne, możemy zgrupować 2 z nich i zestawić każdą z nich w tabeli z trzecią zmienną. W rezultacie mamy dwie tabele krzyżowe.
Przykład
W poniższym przykładzie znajdujemy częstotliwość występowania każdego typu samochodu i każdego modelu samochodu w odniesieniu do marki samochodu. Używamy również opcji nocol i norow, aby uniknąć sum i wartości procentowych.
proc FREQ data = CARS2 ;
tables make * (type model) / nocol norow nopercent;
run;
Po wykonaniu powyższego kodu otrzymujemy następujący wynik -
Zestawienie krzyżowe 4 zmiennych
Przy 4 zmiennych liczba sparowanych kombinacji wzrasta do 4. Każda zmienna z grupy 1 jest sparowana z każdą zmienną z grupy 2.
Przykład
W poniższym przykładzie znajdujemy częstotliwość długości samochodu dla każdej marki i każdego modelu. Podobnie częstotliwość koni mechanicznych dla każdej marki i każdego modelu.
proc FREQ data = CARS2 ;
tables (make model) * (length horsepower) / nocol norow nopercent;
run;
Po wykonaniu powyższego kodu otrzymujemy następujący wynik -