simple

crossTab

Description

Réalise des tabulations à une ou deux voies pour produire des tables de fréquences pour des variables catégorielles. Cette action est fondamentale pour l'analyse exploratoire des données, permettant de comprendre la distribution des données et les relations entre les variables.

simple.crossTab / acrossBy=TRUE | FALSE, aggregator="CSS" | "CV" | "KURTOSIS" | "MAX" | "MEAN" | "MIN" | "N" | "NMISS" | "PROBT" | "SKEWNESS" | "STD" | "STDERR" | "SUM" | "TSTAT" | "USS" | "VAR", association=TRUE | FALSE, chiSq=TRUE | FALSE, col="variable-name", colFormat="string", colNBins=integer, descending=TRUE | FALSE, fullTable=TRUE | FALSE, groupByLimit=64-bit-integer, includeMissing=TRUE | FALSE, niceBinning=TRUE | FALSE, orderByGbyRaw=TRUE | FALSE, row="variable-name", rowFormat="string", rowNBins=integer, table={caslib="string", computedOnDemand=TRUE | FALSE, computedVars={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, computedVarsProgram="string", dataSourceOptions={key-1=any-list-or-data-type-1, key-2=any-list-or-data-type-2, ...}, groupBy={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, groupByMode="NOSORT" | "REDISTRIBUTE", importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}, name="table-name", orderBy={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, singlePass=TRUE | FALSE, vars={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, where="where-expression", whereTable={casLib="string", dataSourceOptions={adls_noreq-parameters | bigquery-parameters | cas_noreq-parameters | clouddex-parameters | db2-parameters | dnfs-parameters | esp-parameters | fedsvr-parameters | gcs_noreq-parameters | hadoop-parameters | hana-parameters | impala-parameters | informix-parameters | jdbc-parameters | mongodb-parameters | mysql-parameters | odbc-parameters | oracle-parameters | path-parameters | postgres-parameters | redshift-parameters | s3-parameters | sapiq-parameters | sforce-parameters | singlestore_standard-parameters | snowflake-parameters | spark-parameters | spde-parameters | sqlserver-parameters | ss_noreq-parameters | teradata-parameters | vertica-parameters | yellowbrick-parameters}, importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}, name="table-name", vars={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, where="where-expression"}}, weight="variable-name";
Paramètres
ParamètreDescription
acrossByLorsque défini sur Vrai, les niveaux des variables de ligne et de colonne sont les mêmes pour toutes les variables de regroupement (group-by).
aggregatorSpécifie l'agrégateur pour lequel les valeurs de la variable de poids sont agrégées en un score d'ordre de classement si une variable de poids est spécifiée.
associationLorsque défini sur Vrai, les mesures d'association entre la variable de ligne et de colonne de la tabulation croisée sont calculées.
chiSqLorsque défini sur Vrai, les statistiques du chi-carré sont calculées pour le test d'indépendance des variables de ligne et de colonne ainsi que leurs p-valeurs asymptotiques.
colSpécifie la variable de colonne pour la tabulation à deux voies.
colFormatSpécifie un format pour la variable de colonne.
colNBinsSpécifie le nombre de classes à utiliser pour la discrétisation de la variable de colonne.
descendingLorsque défini sur Vrai, les niveaux formatés des variables sont organisés par ordre décroissant.
fullTableLorsque défini sur Vrai, une analyse complète de la table est effectuée.
groupByLimitSpécifie le nombre maximum de niveaux dans un ensemble de regroupement. Lorsque le serveur atteint ce nombre de niveaux, il s'arrête et ne renvoie pas de résultat. Utile pour éviter de créer de très grands ensembles de résultats.
includeMissingLorsque défini sur Vrai, les valeurs manquantes sont incluses dans la tabulation croisée comme un niveau de variable.
niceBinningLorsque défini sur Vrai, un algorithme de discrétisation optimisé ('nice binning') est utilisé pour les variables numériques.
orderByGbyRawLorsque défini sur Vrai, l'ordre des variables de regroupement est basé sur les valeurs brutes des variables, et non sur les valeurs formatées.
rowSpécifie la variable de ligne pour la tabulation.
rowFormatSpécifie un format pour la variable de ligne.
rowNBinsSpécifie le nombre de classes à utiliser pour la discrétisation de la variable de ligne.
tableSpécifie la table d'entrée à analyser.
weightSpécifie la variable de poids numérique utilisée pour calculer les statistiques dans les cellules et les marges de la table.
Préparation des Données Voir la fiche de ce code dataprep
Création de la table de données CARS

Ce code SAS crée une table CAS nommée 'CARS' dans la caslib 'CASUSER'. Cette table contient des informations sur différents modèles de voitures, y compris leur type, leur origine et leur prix de vente conseillé (MSRP). Elle sera utilisée pour illustrer les exemples de tabulation croisée.

Copié !
1DATA casuser.cars;
2 LENGTH Type $ 10 Origin $ 10;
3 INFILE DATALINES delimiter=',';
4 INPUT Type $ Origin $ MSRP;
5 DATALINES;
6Sedan,Asia,25000
7SUV,Asia,35000
8Sports,Europe,60000
9Sedan,USA,28000
10SUV,USA,40000
11Truck,USA,45000
12Sedan,Europe,55000
13SUV,Europe,65000
14;
15RUN;

Exemples

Cet exemple réalise une tabulation de fréquence simple sur la variable 'Type' de la table 'CARS'. Cela permet de compter le nombre de voitures de chaque type.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 SIMPLE.crossTab /
3 TABLE={name='cars'},
4 row='Type';
5RUN;
Résultat :
Le résultat est une table de fréquence ('CrossTab') qui liste chaque 'Type' de voiture et le nombre d'occurrences ('_Freq_') pour chacun.

Cet exemple effectue une tabulation croisée à deux voies entre les variables 'Type' et 'Origin'. Il calcule également les statistiques du chi-carré ('chiSq=true') et les mesures d'association ('association=true') pour tester l'indépendance entre le type de voiture et son origine.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 SIMPLE.crossTab /
3 TABLE={name='cars'},
4 row='Type',
5 col='Origin',
6 chiSq=true,
7 association=true;
8RUN;
Résultat :
Le résultat inclut la table de contingence principale ('CrossTab') montrant les fréquences pour chaque combinaison Type/Origin. Des tables supplémentaires sont générées : 'ChiSq' pour les statistiques du chi-carré, et 'Measures' pour les mesures d'association comme le Phi, le V de Cramer, etc.

Cet exemple montre comment utiliser une variable de poids ('weight'). La tabulation croisée entre 'Type' et 'Origin' est effectuée, mais la fréquence dans chaque cellule est la somme des valeurs de la variable 'MSRP' (prix de vente) au lieu du simple décompte.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 SIMPLE.crossTab /
3 TABLE={name='cars'},
4 row='Type',
5 col='Origin',
6 weight='MSRP';
7RUN;
Résultat :
La table de résultats 'CrossTab' affiche la somme des prix ('_Sum_') pour chaque croisement de 'Type' et 'Origin', plutôt que le nombre d'observations.

FAQ

À quoi sert l'action `crossTab` ?
Quels sont les paramètres obligatoires pour utiliser l'action `crossTab` ?
Comment puis-je créer un tableau croisé à deux dimensions ?
Est-il possible d'inclure les valeurs manquantes dans la tabulation ?
Comment puis-je calculer les statistiques du chi-carré ?
Puis-je utiliser une variable de pondération dans mon analyse ?
Que fait le paramètre `association` ?
Comment puis-je regrouper les données numériques en bacs (bins) pour l'analyse ?