factorAnalysis

faExtract

Description

L'action faExtract effectue une analyse factorielle sur une table CAS. Elle permet d'extraire des facteurs communs à partir de variables quantitatives en utilisant diverses méthodes d'extraction (Composantes principales, Maximum de vraisemblance, Moindres carrés non pondérés, etc.) et techniques de rotation (Varimax, Promax, etc.). Elle offre des options étendues pour gérer les communautés a priori, la pondération et la sortie des résultats statistiques.

factorAnalysis.faExtract <result=results> <status=rc> / attributes={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, corrOut={caslib="string", compress=TRUE | FALSE, indexVars={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR" | "INHERIT" | "STANDARD", name="table-name", onDemand=TRUE | FALSE, promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}}, display={caseSensitive=TRUE | FALSE, exclude=TRUE | FALSE, excludeAll=TRUE | FALSE, keyIsPath=TRUE | FALSE, names={"string-1" <, "string-2", ...>}, pathType="LABEL" | "NAME", traceNames=TRUE | FALSE}, freq="variable-name", fuzz=double, inputs={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, method={name="ALPHA" | "ML" | "PRINCIPAL" | "PRINIT" | "ULS", name-specific-parameters}, * nFactors={integer-1 <, integer-2, ...>}, outputTables={groupByVarsRaw=TRUE | FALSE, includeAll=TRUE | FALSE, names={"string-1" <, "string-2", ...>} | {key-1={casouttable-1} <, key-2={casouttable-2}, ...>}, repeated=TRUE | FALSE, replace=TRUE | FALSE}, priors={type="ASMC" | "INPUT" | "MAX" | "ONE" | "RANDOM" | "SMC", type-specific-parameters}, referenceStructure=TRUE | FALSE, reorder=TRUE | FALSE, rotate={type="BIQUARTIMAX" | "BIQUARTIMIN" | "CF" | "COVARIMIN" | "EQUAMAX" | "FACTORPARSIMAX" | "GCF" | "GENCF" | "GENERALIZEDCF" | "GENERALIZEDCRAWFORDFERGUSON" | "NONE" | "OBBIQUARTIMAX" | "OBEQUAMAX" | "OBFACTORPARSIMAX" | "OBLIMIN" | "OBPARSIMAX" | "OBQUARTIMAX" | "OBVARIMAX" | "ORTHOMAX" | "PARSIMAX" | "PROMAX" | "QUARTIMAX" | "QUARTIMIN" | "TRADITIONALCF" | "TRADITIONALCRAWFORDFERGUSON" | "VARIMAX", type-specific-parameters}, table={caslib="string", computedOnDemand=TRUE | FALSE, computedVars={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, computedVarsProgram="string", dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}, groupBy={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, groupByMode="NOSORT" | "REDISTRIBUTE", importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}, * name="table-name", onDemand=TRUE | FALSE, orderBy={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, singlePass=TRUE | FALSE, vars={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, where="where-expression"}, varianceDivisor="DF" | "N" | "WDF" | "WEIGHT", weight="variable-name";
Paramètres
ParamètreDescription
attributesModifie les attributs des variables utilisées dans l'analyse (format, label, etc.).
corrOutSpécifie la table de sortie CAS qui contiendra la matrice de corrélation, les statistiques sommaires et le nombre d'observations.
displaySpécifie la liste des tables de résultats à renvoyer au client pour affichage.
freqNom de la variable numérique contenant la fréquence d'occurrence de chaque observation.
fuzzSeuil minimal pour l'affichage des corrélations et des chargements factoriels. Les valeurs inférieures à ce seuil sont affichées comme manquantes.
inputsListe des variables d'entrée à utiliser pour l'analyse factorielle.
methodSpécifie la méthode d'extraction des facteurs (ex: 'PRINCIPAL' pour composantes principales, 'ML' pour maximum de vraisemblance).
nFactorsParamètre requis spécifiant le nombre d'entiers (facteurs) à extraire.
outputTablesListe des noms des tables de résultats à sauvegarder sur le serveur CAS.
priorsSpécifie la méthode de calcul des estimations de communauté a priori (ex: 'SMC' pour carrés des corrélations multiples).
referenceStructureSi défini à TRUE, demande les tables de sortie liées à la structure de référence (utile pour les rotations obliques).
reorderSi défini à TRUE, réordonne les lignes (variables) des matrices factorielles en fonction de leurs chargements absolus les plus élevés.
rotateSpécifie la méthode de rotation des facteurs (ex: 'VARIMAX' pour orthogonale, 'PROMAX' pour oblique).
tableSpécifie les paramètres de la table d'entrée (nom, caslib, clause where, etc.).
varianceDivisorSpécifie le diviseur utilisé pour le calcul des variances et covariances ('DF', 'N', 'WDF', 'WEIGHT').
weightNom de la variable numérique à utiliser comme pondération pour l'analyse.
Préparation des Données Voir la fiche de ce code dataprep
Création de données pour l'Analyse Factorielle

Création d'une table CAS nommée 'SOCECON' contenant des données socio-économiques simulées pour l'exemple (Population, École, Emploi, Services, Maison).

Copié !
1DATA casuser.socecon; INPUT Population School Employment Services House; DATALINES;
25700 12.8 2500 270 25000
31000 10.9 600 10 10000
43400 8.8 1000 10 9000
53800 13.6 1700 140 25000
64000 12.8 1600 140 25000
78200 8.3 2600 60 12000
81200 11.4 400 10 16000
99100 11.5 3300 60 14000
109900 12.5 3400 180 18000
119600 13.7 3600 390 25000
129600 9.6 3300 80 12000
139400 11.4 4000 100 13000
14; RUN;

Exemples

Analyse factorielle de base utilisant la méthode des composantes principales pour extraire 2 facteurs sans rotation.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3factorAnalysis.faExtract / TABLE="socecon", inputs={"Population", "School", "Employment", "Services", "House"}, method={name="PRINCIPAL"}, nFactors={2};
4 
5RUN;
6 
Résultat :
Génère les valeurs propres (Eigenvalues) et la matrice des facteurs (Factor Pattern) montrant les chargements non pivotés.

Analyse avancée utilisant la méthode du Maximum de Vraisemblance (ML), une rotation oblique Promax, des priors basés sur les corrélations multiples carrées (SMC), et le réarrangement des résultats.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3factorAnalysis.faExtract / TABLE="socecon", inputs={"Population", "School", "Employment", "Services", "House"}, nFactors={2}, method={name="ML", maxIterations=50}, priors={type="SMC"}, rotate={type="PROMAX", power=3}, reorder=TRUE, fuzz=0.3, corrOut={name="corr_stats", replace=TRUE};
4 
5RUN;
6 
Résultat :
Produit des structures de facteurs rotatés (Rotated Factor Pattern), les corrélations inter-facteurs, et sauvegarde les statistiques dans la table 'corr_stats'.

FAQ

Quel est l'objectif de l'action faExtract ?
Quel paramètre est obligatoire pour exécuter cette action ?
Quelle est la méthode d'extraction utilisée par défaut si aucune n'est spécifiée ?
Comment peut-on appliquer une rotation aux facteurs extraits ?
Est-il possible d'effectuer une analyse pondérée ?
A quoi sert le paramètre `fuzz` ?
Comment gérer les cas de Heywood lors de l'extraction ?
Comment sauvegarder la matrice de corrélation et les statistiques sommaires ?
Quelle option permet de réorganiser les lignes des matrices factorielles dans la sortie ?
Comment définir le diviseur utilisé pour le calcul de la variance ?