dataPreprocess

kde

##set_datapreprocess

Description

L'action kde (Kernel Density Estimation) de l'ensemble dataPreprocess permet de calculer l'estimation de la densité par noyau . C'est l'outil statistique parfait pour lisser vos histogrammes et modéliser la forme réelle de la distribution de vos données, le tout sans les angles droits parfois un peu trop rigides des graphiques classiques !

Syntaxe Officielle
proc cas;
dataPreprocess.kde /
table={name="nom_table"}
inputs={{name="var1"}}
casOutKDEDetails={name="table_sortie", replace=true}
requestPackages={{kernel="NORMAL", method="FFT", grid={nGridPointsPerDimension=256}}};
run;
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table d'entrée contenant les données à analyser.
inputs Liste des variables pour lesquelles l'estimation de densité doit être calculée (jusqu'à 64 variables autorisées simultanément).
casOutKDEDetails Spécifie la table de sortie qui contiendra les détails de l'estimation de densité (les points de la grille et la densité estimée associée).
casOutCDFMap Spécifie la table de sortie pour la fonction de répartition cumulative (CDF).
cdf Booléen qui, s'il est défini sur True, demande le calcul de la fonction de densité cumulative en plus de l'estimation classique.
requestPackages Tableau d'options avancées permettant de configurer finement le lissage : choix du type de noyau (kernel), de l'algorithme (FFT ou force brute), gestion des valeurs aberrantes (outlierArguments), et paramètres de la grille (grid).

Préparation des données

Création de données simulées

Nous générons une table contenant une variable distribuée normalement pour observer la puissance du lissage par noyau.

1DATA casuser.mes_donnees;
2 call streaminit(12345);
3 DO i = 1 to 1000;
4 valeur = rand("Normal", 50, 10);
5 OUTPUT;
6 END;
7RUN;

Exemples d'utilisation

Estimation de Densité par Noyau (Basique)

Calcul d'une KDE standard sur notre variable avec les paramètres optimaux par défaut.

1PROC CAS;
2 dataPreprocess.kde /
3 TABLE={name="mes_donnees", caslib="casuser"}
4 inputs={{name="valeur"}}
5 casOutKDEDetails={name="kde_out", caslib="casuser", replace=true};
6RUN;
7QUIT;
Résultat Attendu :
Une table CAS nommée 'kde_out' est créée, contenant les différentes valeurs de l'axe et leur densité estimée correspondante, prête à être tracée.
KDE Avancée avec ajustement du Noyau et analyse CDF

Ici, on sort l'artillerie lourde ! Nous générons la fonction de densité cumulative (CDF) et paramétrons précisément notre estimation en forçant l'utilisation d'un algorithme par transformée de Fourier rapide (FFT) et d'un noyau d'Epanechnikov pour une analyse pointue.

1PROC CAS;
2 dataPreprocess.kde /
3 TABLE={name="mes_donnees", caslib="casuser"}
4 inputs={{name="valeur"}}
5 cdf=true
6 casOutCDFMap={name="cdf_out", caslib="casuser", replace=true}
7 casOutKDEDetails={name="kde_out_adv", caslib="casuser", replace=true}
8 requestPackages={{
9 kernel="EPANECHNIKOV",
10 method="FFT",
11 bandwidthOpts={method="SNR", multiplier=1.5},
12 grid={nGridPointsPerDimension=512}
13 }};
14RUN;
15QUIT;
Résultat Attendu :
Le serveur calcule une KDE très affinée avec 512 points de grille, une bande passante manuellement ajustée (multiplier=1.5), et produit deux tables distinctes : 'kde_out_adv' pour la densité lissée et 'cdf_out' pour les probabilités cumulées.