factorAnalysis

faNFactors

##set_factoranalysis

Description

L'action faNFactors du set d'actions factorAnalysis est utilisée pour déterminer mathématiquement le nombre optimal de facteurs à extraire dans une analyse factorielle. Au lieu de deviner au hasard, elle utilise des critères statistiques robustes comme les valeurs propres (EigenvaluesValeurs propres mesurant la variance expliquée par chaque composante principale ou facteur. Une valeur supérieure à 1 indique que le facteur capture plus d'information qu'une seule variable.), l'analyse parallèle ou la méthode MAP de VelicerCritère statistique déterminant le nombre optimal de facteurs en minimisant la variance résiduelle des corrélations partielles. Plus précis que le critère de Kaiser pour l'analyse factorielle.. C'est l'étape indispensable avant d'appeler l'action faExtract pour s'assurer que votre modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). ne souffre ni de sous-extraction ni de sur-extraction. Un peu comme demander à un chef la juste dose d'épices : ni trop, ni trop peu !

Syntaxe Officielle
factorAnalysis.faNFactors <result=results> <status=rc> /
attributes={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}},
corrOut={casouttable},
criteria={{alpha={double}, nSimulations={64-bit-integer}, seed={64-bit-integer}, status="ACTIVE" | "INACTIVE", threshold={double}, type="EIGENVALUE" | "MAP2" | "MAP4" | "PARALLEL" | "PROPORTION"}, {...}},
display={displayTables},
freq="variable-name",
inputs={{casinvardesc}},
nFactors="MAX" | "MEAN" | "MEDIAN" | "MIN",
outputTables={outputTables},
priors={type="ASMC" | "INPUT" | "MAX" | "ONE" | "RANDOM" | "SMC", values={doubles}, seed=64-bit-integer},
table={castable},
varianceDivisor="DF" | "N" | "WDF" | "WEIGHT",
weight="variable-name"

Paramètres Clés

Nom du paramètre Description
table Spécifie la table CAS d'entrée contenant les variables à analyser.
criteria Paramètre obligatoire. Liste un ou plusieurs critères pour suggérer le nombre de facteurs. Types disponibles : EIGENVALUE (valeurs propres > seuil), MAP2/MAP4 (Minimum Average Partial), PARALLEL (Analyse Parallèle de Horn), PROPORTION (pourcentage de variance expliquée).
inputs Liste les variables numériques à inclure dans l'analyse factorielle.
nFactors Définit comment synthétiser les résultats si plusieurs critères sont actifs : MIN (prend le minimum suggéré, par défaut), MAX, MEAN ou MEDIAN.
priors Définit les estimations de communalité initiales. SMC (Squared Multiple Correlation) est la valeur par défaut courante.
corrOut Spécifie une table de sortie pour stocker la matrice de corrélation calculée.

Préparation des données

Création de données de test pour analyse factorielle

Génération d'un jeu de données simulant des variables corrélées pour tester la détection de facteurs.

1DATA casuser.test_factor;
2 DO i = 1 to 500;
3 f1 = rannor(1);
4 f2 = rannor(1);
5 x1 = f1 + 0.2*rannor(1);
6 x2 = 0.8*f1 + 0.3*rannor(1);
7 x3 = 0.9*f1 + 0.1*rannor(1);
8 x4 = f2 + 0.2*rannor(1);
9 x5 = 0.7*f2 + 0.4*rannor(1);
10 x6 = 0.8*f2 + 0.2*rannor(1);
11 OUTPUT;
12 END;
13RUN;

Exemples d'utilisation

Détermination par valeurs propres (Critère de Kaiser)

Utilise le critère classique où l'on garde les facteurs dont la valeur propre est supérieure à 1.

1PROC CAS;
2 factorAnalysis.faNFactors /
3 TABLE={name="test_factor"},
4 inputs={"x1", "x2", "x3", "x4", "x5", "x6"},
5 criteria={{type="EIGENVALUE", threshold={1.0}}};
6RUN;
Résultat Attendu :
Un tableau indiquant le nombre de facteurs suggérés (devrait être 2 dans cet exemple).
Analyse Multi-Critères avec Analyse Parallèle

Exemple complexe combinant l'Analyse Parallèle (plus précise) et la méthode MAP, en demandant le maximum des suggestions.

1PROC CAS;
2 factorAnalysis.faNFactors /
3 TABLE={name="test_factor"},
4 inputs={"x1", "x2", "x3", "x4", "x5", "x6"},
5 nFactors="MAX",
6 priors={type="SMC"},
7 criteria={
8 {type="PARALLEL", nSimulations={1000}, seed=12345, alpha={0.05}},
9 {type="MAP2"},
10 {type="EIGENVALUE", threshold={1.0}}
11 },
12 outputTables={replace=true, names={NFactorSuggestions="suggested_factors"}};
13RUN;
Résultat Attendu :
Comparaison détaillée des suggestions de chaque critère et stockage du résultat final dans une table CAS.