L'astuce SAS pour forcer l'ordre des chargements factoriels : Un guide pratique avec PROC CALIS

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Confirmé
Publié le :
Simon

Le Conseil de l'Expert

Simon
Expert SAS et fondateur.

L'utilisation du langage COSAN (Covariance Structure Analysis) au sein de la procédure PROC CALIS permet d'aller bien au-delà de l'analyse factorielle exploratoire standard en imposant une structure théorique stricte aux données. Ce script est exemplaire car il combine trois techniques de haut niveau : la décomposition matricielle personnalisée, l'application de contraintes d'inégalités via LINCON, et la programmation intégrée. L'objectif ici est de valider un modèle où les chargements factoriels suivent un ordre hiérarchique précis (contraintes ordinales), ce qui est crucial pour tester des théories de développement ou des structures de type "simplex" (modèles de Guttman).

Ce script analyse la matrice de données de Kinzer & Kinzer (Guttman, 1957) en utilisant le langage de modélisation COSAN dans calis_syntax13.htm" class="fw-bold text-decoration-none kw-link" target="_blank" data-auto-link="1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true" data-bs-title=" By using PROC CALIS, you can constrain your measurement error models in many different ways" style="color: #fd7e14 !important; border-bottom: 1px dotted #fd7e14; cursor: help;">PROC CALIS. Le modèle spécifie une structure factorielle où les chargements sont soumis à des contraintes d'ordre (ordinales) via l'instruction LINCON. Des instructions de programmation SAS© intégrées sont utilisées pour définir les variances d'erreur (Psi) en fonction des chargements factoriels afin de maintenir la structure de corrélation.
Analyse des données

Type : CREATION_INTERNE


Les données sont définies directement dans le script (Datalines) sous forme d'une matrice de corrélation (TYPE=CORR) nommée 'Kinzer'.

1 Bloc de code
DATA STEP Data
Explication :
Création d'un jeu de données de type 'CORR' (matrice de corrélation) contenant les variables var1 à var6, avec 326 observations supposées (utilisé plus tard via NOBS).
Copié !
1DATA Kinzer(TYPE=CORR);
2Title "Data Matrix of Kinzer & Kinzer, see GUTTMAN (1957)";
3 _TYPE_ = 'CORR'; INPUT _NAME_ $ var1-var6;
4 DATALINES;
5var1 1.00 . . . . .
6var2 .51 1.00 . . . .
7var3 .46 .51 1.00 . . .
8var4 .46 .47 .54 1.00 . .
9var5 .40 .39 .49 .57 1.00 .
10var6 .33 .39 .47 .45 .56 1.00
11;
2 Bloc de code
PROC CALIS
Explication :
Exécution de PROC CALIS pour l'ajustement du modèle. L'instruction COSAN définit la structure covariance. Les matrices B, Psi et D sont définies explicitement. LINCON impose des contraintes d'ordre sur les coefficients de la matrice B. Les calculs de 'psi' assurent que la diagonale de la matrice de corrélation reste égale à 1.
Copié !
1PROC CALIS DATA=Kinzer nobs=326 nose;
2 cosan
3 var= var1-var6,
4 D(6,DIA) * B(2,GEN) + D(6,DIA) * Psi(6,DIA);
5 matrix B
6 [ ,1]= b11 b21 b31 b41 b51 b61,
7 [ ,2]= 0. b22 b32 b42 b52 b62;
8 matrix Psi
9 [1,1]= psi1-psi6;
10 matrix D
11 [1,1]= d1-d6 ;
12 lincon
13 b61 <= b51,
14 b51 <= b41,
15 b41 <= b31,
16 b31 <= b21,
17 b21 <= b11,
18 0. <= b22,
19 b22 <= b32,
20 b32 <= b42,
21 b42 <= b52,
22 b52 <= b62;
23 
24 /* SAS Programming Statements */
25 /* 6 Constraints on Correlation structures */
26 psi1 = 1. - b11 * b11;
27 psi2 = 1. - b21 * b21 - b22 * b22;
28 psi3 = 1. - b31 * b31 - b32 * b32;
29 psi4 = 1. - b41 * b41 - b42 * b42;
30 psi5 = 1. - b51 * b51 - b52 * b52;
31 psi6 = 1. - b61 * b61 - b62 * b62;
32 vnames
33 B = [factor1 factor2],
34 Psi = [var1-var6],
35 D = Psi;
36RUN;
L'Astuce Pro
Pour garantir la validite statistique de votre modele COSAN avec des donnees de type CORR, l utilisation de formules de programmation SAS pour definir Psi est cruciale car elle force la somme des variances expliquees et residuelles a egaler exactement 1 pour chaque variable. Si vous observez des difficultes de convergence dues a des contraintes LINCON trop strictes, ajoutez l option METHOD=MLSB (Maximum Likelihood avec Satorra-Bentler) pour obtenir des indices d ajustement plus robustes face aux violations de normalite induites par les contraintes d ordre des chargements factoriels.
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 : SAS SAMPLE LIBRARY