Publié le :

Exemple d'analyse discriminante canonique avec PROC HPCANDISC

Ce code est également disponible en : Deutsch English Español
Ce script SAS© illustre l'utilisation de la procédure HPCANDISC pour effectuer une analyse discriminante canonique sur le jeu de données Iris de Fisher. Il génère ensuite un graphique de dispersion des variables canoniques 1 et 2, regroupées par espèce, à l'aide de PROC TEMPLATE et PROC SGRENDER. Ce processus permet de visualiser la séparation entre les groupes basée sur les combinaisons linéaires de variables qui maximisent la discrimination.
Analyse des données

Type : SASHELP


Les données proviennent de la bibliothèque SASHELP, spécifiquement le jeu de données IRIS, qui est un jeu de données public standard pour l'analyse discriminante.

1 Bloc de code
PROC HPCANDISC
Explication :
Ce bloc exécute la procédure HPCANDISC pour une analyse discriminante canonique. Il utilise les données `sashelp.iris` comme entrée, stocke les résultats canoniques (scores et coefficients) dans un nouveau jeu de données nommé `outcan`, calcule les distances de Mahalanobis et effectue une analyse de variance. La variable `Species` est utilisée comme variable d'identification des observations et de classification des groupes, tandis que `SepalLength`, `SepalWidth`, `PetalLength` et `PetalWidth` sont les variables quantitatives utilisées pour la discrimination.
Copié !
1PROC HPCANDISC DATA=sashelp.iris out=outcan distance anova;
2 id Species;
3 class Species;
4 var SepalLength SepalWidth PetalLength PetalWidth;
5RUN;
2 Bloc de code
PROC TEMPLATE
Explication :
Ce bloc utilise PROC TEMPLATE pour définir un modèle de graphique (`statgraph`) personnalisé nommé `scatter`. Ce modèle crée un graphique de dispersion (`scatterplot`) qui visualise les deux premières variables canoniques (`Can1`, `Can2`) résultant de PROC HPCANDISC. Les points sont regroupés et colorés selon la variable `species`. Le graphique inclut un titre d'entrée, des options d'axes personnalisées et une légende discrète pour les groupes d'espèces.
Copié !
1PROC TEMPLATE;
2 define statgraph scatter;
3 begingraph;
4 entrytitle 'Fisher (1936) Iris Data';
5 layout overlayequated / equatetype=fit
6 xaxisopts=(label='Canonical Variable 1')
7 yaxisopts=(label='Canonical Variable 2');
8 scatterplot x=Can1 y=Can2 / group=species name='iris';
9 layout gridded / autoalign=(topleft);
10 discretelegend 'iris' / border=false opaque=false;
11 endlayout;
12 endlayout;
13 endgraph;
14 END;
15RUN;
3 Bloc de code
PROC SGRENDER
Explication :
Ce bloc utilise PROC SGRENDER pour générer le graphique défini précédemment par le modèle `scatter`. Il prend le jeu de données `outcan` (créé par PROC HPCANDISC et contenant les variables canoniques) comme source de données pour le rendu, produisant la visualisation des groupes d'espèces dans l'espace des variables canoniques.
Copié !
1PROC SGRENDER DATA=outcan template=scatter;
2RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : S A S S A M P L E L I B R A R Y