SAS - Tabulaciones cruzadas

La tabulación cruzada implica producir tablas cruzadas, también llamadas tablas contingentes, usando todas las combinaciones posibles de dos o más variables. En SAS se crea utilizandoPROC FREQ junto con TABLESopción. Por ejemplo, si necesitamos la frecuencia de cada modelo para cada marca en cada categoría de tipo de automóvil, entonces debemos usar la opción TABLES de PROC FREQ.

Sintaxis

La sintaxis básica para aplicar la tabulación cruzada en SAS es:

PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;

A continuación se muestra la descripción de los parámetros utilizados:

  • Dataset es el nombre del conjunto de datos.

  • Variable_1 and Variable_2 son los nombres de las variables del conjunto de datos cuya distribución de frecuencia debe calcularse.

Ejemplo

Considere el caso de encontrar cuántos tipos de automóviles están disponibles bajo cada marca de automóvil a partir del conjunto de datos cars1 que se crea a partir de SASHELP.CARSComo se muestra abajo. En este caso, necesitamos los valores de frecuencia individuales, así como la suma de los valores de frecuencia entre las marcas y los tipos. Podemos observar que el resultado muestra valores en filas y columnas.

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;

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:

Tabulación cruzada de 3 variables

Cuando tenemos tres variables podemos agrupar 2 de ellas y tabular cada una de estas dos con la tercera variable. Entonces, en el resultado tenemos dos tablas cruzadas.

Ejemplo

En el siguiente ejemplo, encontramos la frecuencia de cada tipo de automóvil y cada modelo de automóvil con respecto a la marca del automóvil. También usamos la opción nocol y norow para evitar los valores de suma y porcentaje.

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

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:

Tabulación cruzada de 4 variables

Con 4 variables, el número de combinaciones emparejadas aumenta a 4. Cada variable del grupo 1 se empareja con cada variable del grupo 2.

Ejemplo

En el siguiente ejemplo, encontramos la frecuencia de longitud del automóvil para cada marca y cada modelo. De manera similar, la frecuencia de caballos de fuerza para cada marca y cada modelo.

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

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado: