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

Перекрестная таблица включает создание перекрестных таблиц, также называемых условными таблицами, с использованием всех возможных комбинаций двух или более переменных. В SAS он создается с использованиемPROC FREQ вместе с TABLESвариант. Например, если нам нужна частота каждой модели для каждой марки в каждой категории типов автомобилей, тогда нам нужно использовать параметр ТАБЛИЦЫ для PROC FREQ.

Синтаксис

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

PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;

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

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

  • Variable_1 and Variable_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;

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

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

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

пример

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

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

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

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

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

пример

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

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

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