simple

crossTab

##set_simple

Description

L'action simple.crossTab est le pilier de l'analyse descriptive pour les variables catégoriellesLes variables catégorielles sont des données qualitatives divisées en groupes distincts (nominales ou ordinales), utilisées dans SAS Viya pour segmenter les analyses et définir des classes. dans SAS Viya. Elle permet de générer des tableaux de contingence à une ou deux entrées (fréquences croisées). Au-delà du simple comptage, elle peut calculer des statistiques de pondération via une variable de poids , effectuer des tests d'indépendance du Chi-deux et mesurer l'association entre les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage.. C'est l'équivalent moderne et distribué de la célèbre PROC FREQ de SAS9, mais prête pour le Big Data. Si vos données étaient des invités à une fête, crossTab serait le physionomiste qui compte qui discute avec qui !

Syntaxe Officielle
proc cas;
simple.crossTab /
table={name="ma_table", caslib="ma_caslib"}, /* Paramètre obligatoire */
row="variable_ligne", /* Paramètre obligatoire */
col="variable_colonne",
chiSq=true | false,
association=true | false,
weight="variable_ponderation",
aggregator="MEAN" | "SUM" | "N" | ... ;
run;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table d'entrée CAS. Doit inclure au moins le nom de la table.
row Définit la variable à utiliser pour les lignes du tableau croisé (Paramètre obligatoire).
col Définit la variable à utiliser pour les colonnes. Si omis, une tabulation à une entrée est effectuée.
chiSq Active le calcul des statistiques du Chi-deux pour tester l'indépendance entre les lignes et les colonnes.
association Active le calcul des mesures d'association (comme le coefficient de corrélation de Pearson ou de Spearman).
weight Spécifie une variable numérique de pondération. Utile pour les enquêtes ou les données agrégées.
aggregator Définit la statistique utilisée pour agréger la variable de poids (MEAN, SUM, STD, etc.) .
includeMissing Si mis à True, inclut les valeurs manquantes comme une catégorie distincte dans le tableau.
rowNBins / colNBins Définit le nombre de groupes (bins) pour les variables numériques continues afin de les traiter comme des catégories.
niceBinning Applique un algorithme pour créer des intervalles de discrétisation 'propres' et lisibles.

Préparation des données

Création de données de ventes fictives

Ce code génère une table avec des régions, des types de produits et des montants de ventes pour illustrer les tabulations.

1DATA casuser.ventes;
2 INPUT Region $ Produit $ Ventes Poids;
3 DATALINES;
4Est Ordinateur 1500 1.2
5Est Tablette 800 0.8
6Ouest Ordinateur 1200 1.1
7Ouest Tablette 900 0.9
8Nord Ordinateur 2000 1.5
9Sud Tablette 600 0.7
10Nord Tablette 1100 1.0
11Est Ordinateur 1400 1.2
12;
13RUN;

Exemples d'utilisation

Tabulation simple à une entrée

Comptage simple des occurrences pour chaque type de produit.

1PROC CAS;
2 SIMPLE.crossTab / TABLE={name="ventes"}, row="Produit";
3RUN;
Résultat Attendu :
Un tableau affichant le nombre de lignes pour chaque produit (Ordinateur, Tablette).
Tableau croisé à deux entrées

Croisement entre la région et le type de produit.

1PROC CAS;
2 SIMPLE.crossTab / TABLE={name="ventes"}, row="Region", col="Produit";
3RUN;
Résultat Attendu :
Une matrice montrant la répartition des produits par région.
Analyse statistique complète avec pondération

Cet exemple croise la région et le produit, applique un poids, calcule les statistiques de Chi-deux et les mesures d'association.

1PROC CAS;
2 SIMPLE.crossTab /
3 TABLE={name="ventes"},
4 row="Region",
5 col="Produit",
6 weight="Poids",
7 aggregator="SUM",
8 chiSq=true,
9 association=true,
10 includeMissing=true,
11 niceBinning=true;
12RUN;
Résultat Attendu :
Plusieurs tableaux de résultats : 1. Fréquences croisées pondérées par la somme des poids. 2. Statistiques du Chi-deux (Probabilité, Degrés de liberté). 3. Mesures d'association (Gamma, Tau-b de Kendall, etc.).
Tabulation avec discrétisation (Binning)

Idéal quand vous voulez croiser une variable catégorielle avec une variable numérique continue découpée en intervalles.

1PROC CAS;
2 SIMPLE.crossTab /
3 TABLE={name="ventes"},
4 row="Produit",
5 col="Ventes",
6 colNBins=3,
7 niceBinning=true;
8RUN;
Résultat Attendu :
Un tableau croisant les produits avec les ventes découpées en 3 tranches automatiques lisibles.