ica

fastIca

Description

L'action fastIca calcule les composantes indépendantes en utilisant la méthode fastICA. Elle est principalement utilisée pour la séparation aveugle de sources (BSS), permettant d'extraire des signaux sources statistiquement indépendants à partir de mélanges linéaires observés. Cette méthode est utile dans le traitement du signal, la réduction de dimension et l'exploration de données.

ica.fastIca <result=results> <status=rc> / attributes={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}} display={caseSensitive=TRUE | FALSE, exclude=TRUE | FALSE, excludeAll=TRUE | FALSE, keyIsPath=TRUE | FALSE, names={"string-1" <, "string-2", ...>}, pathType="LABEL" | "NAME", traceNames=TRUE | FALSE} eigenThreshold=double gFunction="EXP" | "LOGCOSH" groupByLimit=64-bit-integer inputs={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}} method={maxIter=integer, name="DEFLATION" | "SYMMETRIC", tolerance=double} n=integer noCenter=TRUE | FALSE noScale=TRUE | FALSE output={casOut={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", promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}}, component="string", copyVars={"variable-name-1" <, "variable-name-2", ...>}, white="string"} 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} prefix="string" seed=integer 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", 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"} whitePrefix="string";
Paramètres
ParamètreDescription
tableSpécifie les paramètres de la table d'entrée contenant les données à analyser.
inputsSpécifie les variables numériques à utiliser pour l'analyse. Si omis, toutes les variables numériques sont utilisées.
nSpécifie le nombre de composantes indépendantes à calculer. 0 indique autant de composantes que de variables.
methodSpécifie la méthode d'extraction : 'DEFLATION' (décorrélation par déflation) ou 'SYMMETRIC' (décorrélation symétrique).
gFunctionSpécifie la fonction non quadratique utilisée pour l'approximation de la néguentropie : 'EXP' ou 'LOGCOSH'.
eigenThresholdDéfinit le seuil pour la proportion de variance expliquée par les valeurs propres ; les valeurs inférieures sont écartées.
seedSpécifie la graine pour la génération de nombres aléatoires pour l'initialisation.
prefixSpécifie le préfixe pour nommer les composantes indépendantes dans la table de sortie (par défaut 'Comp').
outputSpécifie la table de sortie CAS qui contiendra les statistiques par observation (les composantes calculées).
noCenterSi défini à TRUE, supprime le centrage des variables numériques avant l'analyse.
noScaleSi défini à TRUE, supprime la mise à l'échelle des variables numériques avant l'analyse.
Préparation des Données Voir la fiche de ce code dataprep
Création de données de signaux mixtes

Génère un jeu de données contenant deux signaux sources mélangés linéairement pour tester la séparation.

Copié !
1 
2DATA mycas.signaux_mixtes;
3DO t = 1 to 1000;
4s1 = sin(t/5);
5s2 = mod(t, 20) - 10;
6x1 = 0.6*s1 + 0.4*s2;
7x2 = 0.4*s1 + 0.6*s2;
8OUTPUT;
9END;
10 
11RUN;
12 

Exemples

Exécute l'analyse en composantes indépendantes sur les variables mélangées avec les paramètres par défaut.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3ica.fastIca TABLE="signaux_mixtes", inputs={"x1", "x2"}, n=2;
4 
5RUN;
6 
Résultat :
Affiche les informations du modèle, les valeurs propres et les matrices de mélange/démélange.

Utilise la méthode symétrique, une fonction log-cosh, une graine spécifique et sauvegarde les composantes calculées.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3ica.fastIca TABLE={name="signaux_mixtes"}, inputs={"x1", "x2"}, n=2, method={name="SYMMETRIC", maxIter=1000, tolerance=1e-5}, gFunction="LOGCOSH", seed=12345, prefix="Composante_", OUTPUT={casOut={name="resultats_ica", replace=true}, component=""};
4 
5RUN;
6 
Résultat :
Génère une table 'resultats_ica' contenant les variables d'origine et les nouvelles colonnes 'Composante_1' et 'Composante_2' représentant les sources séparées.

FAQ

Quelle est la fonction principale de l'action fastIca ?
Comment déterminer le nombre de composantes indépendantes à calculer ?
Quelles fonctions peuvent être utilisées pour l'approximation de la néguentropie ?
Quelles sont les méthodes de décorrélation disponibles ?
Comment contrôler les critères de convergence de l'algorithme ?
Peut-on désactiver le centrage ou la mise à l'échelle des variables ?
À quoi sert le paramètre eigenThreshold ?
Comment spécifier la table de sortie pour les statistiques par observation ?
Comment personnaliser le nommage des composantes et des variables blanchies ?