Modélisation structurelle : Gérez vos contraintes algébriques complexes avec SAS et COSAN

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Expert
Publié le :
Stéphanie

Le Conseil de l'Expert

Stéphanie
Spécialiste Machine Learning et IA.

L'utilisation du modèle COSAN au sein de la PROC CALIS représente l'approche la plus flexible et la plus rigoureuse pour tester des structures de covariance non conventionnelles. Contrairement aux modèles par défaut, COSAN vous permet de décomposer la matrice de corrélation selon votre propre logique mathématique, ici $D \cdot B + D \cdot \Psi$. Ce script est remarquable car il utilise des instructions de programmation SAS intégrées pour lier les paramètres entre eux. En définissant des dépendances strictes (comme b12 = alpha - b11), vous n'estimez pas simplement des poids factoriels : vous testez une hypothèse théorique précise sur la répartition de la variance entre deux facteurs, tout en forçant le respect de la structure unitaire de la diagonale via le calcul dynamique de la matrice Psi.

Ce script utilise la procédure CALIS pour analyser une matrice de corrélation (données Kinzer & Kinzer, Guttman 1957). Il définit un modèle de type COSAN en spécifiant explicitement les matrices de paramètres (D, B, Psi) et applique des contraintes algébriques complexes sur les charges factorielles et les structures de corrélation à l'aide d'instructions de programmation SAS© intégrées.
Analyse des données

Type : CREATION_INTERNE


Les données sont une matrice de corrélation (TYPE=CORR) créée directement dans le script via un DATA STEP et des datalines.

1 Bloc de code
DATA STEP Data
Explication :
Création du jeu de données 'kinzer' contenant la matrice de corrélation triangulaire inférieure pour 6 variables.
Copié !
1DATA kinzer(type=corr);
2title "Data Matrix of Kinzer & Kinzer, see GUTTMAN (1957)";
3 _type_ = 'corr';
4 INPUT _name_ $ var1-var6;
5 DATALINES;
6var1 1.00 . . . . .
7var2 .51 1.00 . . . .
8var3 .46 .51 1.00 . . .
9var4 .46 .47 .54 1.00 . .
10var5 .40 .39 .49 .57 1.00 .
11var6 .33 .39 .47 .45 .56 1.00
12;
2 Bloc de code
PROC CALIS
Explication :
Exécution de la procédure CALIS avec l'instruction COSAN. Définition de la structure du modèle, des matrices de paramètres (B, Psi, D) et application de contraintes mathématiques spécifiques sur les coefficients via du code SAS standard à l'intérieur de la procédure.
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] = b12 b22 b32 b42 b52 b62;
8 matrix Psi
9 [1,1] = psi1-psi6;
10 matrix D
11 [1,1] = d1-d6;
12 parameters alpha (1.);
13 
14 /* SAS Programming Statements to Define Dependent Parameters*/
15 /* 6 constraints on the factor loadings */
16 b12 = alpha - b11;
17 b22 = alpha - b21;
18 b32 = alpha - b31;
19 b42 = alpha - b41;
20 b52 = alpha - b51;
21 b62 = alpha - b61;
22 
23 /* 6 Constraints on Correlation structures */
24 psi1 = 1. - b11 * b11 - b12 * b12;
25 psi2 = 1. - b21 * b21 - b22 * b22;
26 psi3 = 1. - b31 * b31 - b32 * b32;
27 psi4 = 1. - b41 * b41 - b42 * b42;
28 psi5 = 1. - b51 * b51 - b52 * b52;
29 psi6 = 1. - b61 * b61 - b62 * b62;
30 vnames
31 D = [var1-var6],
32 B = [factor1 factor2],
33 Psi = D;
34RUN;
L'Astuce Pro
Pour eviter les echecs de convergence ou les resultats mathematiquement incoherents (cas de Heywood), utilisez l instruction BOUNDS afin de garantir que les variances Psi calculees dynamiquement restent positives, car les instructions de programmation dans PROC CALIS ne protegent pas nativement contre les valeurs negatives. Notez que l utilisation de matrices dans le modele COSAN avec des donnees de type CORR impose que la somme des carres des chargements par ligne (B) ne depasse jamais 1.0, sans quoi l algorithme Newton-Raphson pourrait diverger avant d atteindre l optimum global.
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