histogram
Description
L'action dataPreprocess.histogram génère des classes (bins) d'histogramme et des statistiques simples basées sur ces classes pour vos variables numériques . C'est l'outil parfait pour résumer la distribution de vos données continues, un peu comme trier une montagne de chaussettes par catégories de taille pour y voir plus clair. Elle offre un contrôle très fin grâce aux paquets de requêtes , permettant de configurer la largeur des classes, de gérer finement les valeurs aberrantes ou d'imposer des bornes exactes .
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| table | Spécifie la table d'entrée contenant les données à analyser . Le buffet à volonté de nos données. |
| inputs | Liste des variables numériques à découper en classes . Attention, les variables caractères n'aiment pas être découpées en tranches ! |
| casOutBinDetails | Spécifie la table de sortie CAS qui contiendra les détails précis des classes générées . |
| requestPackages | Un tableau de configuration qui définit finement comment construire l'histogramme (méthode de binning, nombre de bins, traitement des outliers, arrondissement) . |
| freq | Spécifie le nom de la variable de fréquence numérique . Idéal si certaines observations pèsent plus lourd que d'autres. |
| maxIterations | Définit le nombre maximal d'itérations pour les statistiques univariées robustes itératives (comme l'estimateur de Gini) . |
Préparation des données
Création d'une table de test avec des données numériques continues
Génère une table contenant des mesures de taille et de poids fictives pour expérimenter la création d'histogrammes.
| 1 | DATA mycas.mesures; |
| 2 | call streaminit(123); |
| 3 | DO id = 1 to 1000; |
| 4 | taille = rand('Normal', 170, 15); |
| 5 | poids = rand('LogNormal', 4, 0.5); |
| 6 | OUTPUT; |
| 7 | END; |
| 8 | RUN; |
Exemples d'utilisation
Création d'un histogramme basique sur une variable
Cet exemple découpe la variable 'taille' en utilisant l'algorithme automatique de 'nice binning' %%niceBinning%% sans paramétrage complexe.
| 1 | PROC CAS; |
| 2 | dataPreprocess.histogram / |
| 3 | TABLE={name="mesures"} |
| 4 | inputs={"taille"} |
| 5 | casOutBinDetails={name="bins_taille", replace=True}; |
| 6 | RUN; |
| 7 | QUIT; |
Résultat Attendu :
Histogramme avancé avec gestion des valeurs aberrantes et arrondissement
Ici, on déploie l'artillerie lourde via %%requestPackages%% pour forcer 10 classes de largeur égale %%method%%. Les valeurs aberrantes (outliers) sont détectées par l'écart interquartile %%outlierMethod%% et 'Winsorisées' (ramenées aux seuils) %%outlierTreatment%%. Enfin, les limites des classes sont arrondies au multiple de 5 le plus proche %%roundType%%.
| 1 | PROC CAS; |
| 2 | dataPreprocess.histogram RESULT=res / |
| 3 | TABLE={name="mesures"} |
| 4 | inputs={"poids"} |
| 5 | casOutBinDetails={name="bins_poids_details", replace=True} |
| 6 | requestPackages={{ |
| 7 | method="EQUALWIDTH", |
| 8 | nBins=10, |
| 9 | niceBinning=False, |
| 10 | round=True, |
| 11 | roundType="NEAREST", |
| 12 | roundFactor=5, |
| 13 | outlierMethod="IQR", |
| 14 | outlierTreatment="WINSOR", |
| 15 | outlierArguments={scaleMultiplier=1.5} |
| 16 | }}; |
| 17 | PRINT res; |
| 18 | RUN; |
| 19 | QUIT; |