Учебники

SAS – кросс-таблицы

Кросс-табуляция включает в себя создание кросс-таблиц, также называемых условными таблицами, с использованием всех возможных комбинаций двух или более переменных. В SAS он создается с помощью PROC FREQ вместе с опцией TABLES . Например – если нам нужна частота каждой модели для каждой марки в каждой категории автомобилей, то нам нужно использовать опцию TABLES в PROC FREQ.

Синтаксис

Основной синтаксис для применения кросс-табуляции в SAS –

PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;

Ниже приведено описание используемых параметров:

  • Набор данных – это имя набора данных.

  • Переменная_1 и Переменная_2 – это имена переменных набора данных, распределение частот которых необходимо рассчитать.

Набор данных – это имя набора данных.

Переменная_1 и Переменная_2 – это имена переменных набора данных, распределение частот которых необходимо рассчитать.

пример

Рассмотрим случай определения количества типов автомобилей под каждой маркой автомобилей из набора данных cars1, созданного из SASHELP.CARS, как показано ниже. В этом случае нам нужны отдельные значения частоты, а также сумма значений частоты по маркам и типам. Мы можем наблюдать, что результат показывает значения по строкам и столбцам.

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;

Когда приведенный выше код выполняется, мы получаем следующий результат –

cross_tab_1

Перекрестная таблица из 3 переменных

Когда у нас есть три переменные, мы можем сгруппировать 2 из них и скрестить каждую из этих двух с третьим допустимым. Таким образом, в результате мы имеем два кросс-таблицы.

пример

В приведенном ниже примере мы находим частоту каждого типа автомобиля и каждой модели автомобиля по отношению к марке автомобиля. Также мы используем опции nocol и norow, чтобы избежать значений суммы и процента.

proc FREQ data = CARS2 ;
tables make * (type model)  / nocol norow nopercent;   
run;

Когда приведенный выше код выполняется, мы получаем следующий результат –

cross_tab_2

Перекрестная таблица из 4 переменных

С 4 переменными количество парных комбинаций увеличивается до 4. Каждая переменная из группы 1 соединяется с каждой переменной из группы 2.

пример

В приведенном ниже примере мы находим частоту длины автомобиля для каждой марки и каждой модели. Аналогично частота лошадиных сил для каждой марки и каждой модели.

proc FREQ data = CARS2 ;
tables (make model) * (length  horsepower)  / nocol norow nopercent;   
run;

Когда приведенный выше код выполняется, мы получаем следующий результат –