fpca

fPca

Description

L'action `fPca` (Functional Principal Component Analysis) effectue une analyse en composantes principales sur des données fonctionnelles. Elle est conçue pour traiter des observations qui sont des courbes ou des séries de points, en réduisant la dimensionnalité tout en capturant les modes de variation dominants de la structure fonctionnelle sous-jacente.

fpca.fPca <result=results> <status=rc> / display={caseSensitive=TRUE|FALSE, exclude=TRUE|FALSE, excludeAll=TRUE|FALSE, keyIsPath=TRUE|FALSE, names={"string-1", ...}, pathType="LABEL"|"NAME", traceNames=TRUE|FALSE}, eigenVal={caslib="string", compress=TRUE|FALSE, indexVars={"var", ...}, label="string", lifetime=int, maxMemSize=int, memoryFormat="DVR"|"INHERIT"|"STANDARD", name="table-name", onDemand=TRUE|FALSE, promote=TRUE|FALSE, replace=TRUE|FALSE, replication=int, tableRedistUpPolicy="DEFER"|"NOREDIST"|"REBALANCE", threadBlockSize=int, timeStamp="string", where={"expr", ...}}, eigenVec={caslib="string", name="table-name", ...}, id={"variable-name-1", ...}, inputs={{format="string", formattedLength=int, label="string", name="variable-name", nfd=int, nfl=int}, ...}, nBins=integer, output={casout={caslib="string", name="table-name", ...}, npc=integer}, outputTables={groupByVarsRaw=TRUE|FALSE, includeAll=TRUE|FALSE, names={"string-1", ...}, repeated=TRUE|FALSE, replace=TRUE|FALSE}, rankThreshold=double, saveState={caslib="string", name="table-name", ...}, table={caslib="string", name="table-name", computedVars={{...}}, groupBy={{...}}, where="where-expression", ...};
Paramètres
ParamètreDescription
table Spécifie la table d'entrée CAS contenant les données fonctionnelles à analyser (paramètre obligatoire).
inputs Spécifie la liste des variables d'entrée qui constituent les points de mesure de la fonction (ex: séries temporelles).
id Spécifie la ou les variables utilisées comme identifiant unique pour chaque enregistrement (courbe).
nBins Définit le nombre de bacs (bins) utilisés pour discrétiser et lisser les courbes fonctionnelles. La valeur minimale est 10. La valeur par défaut est -1 (calcul automatique).
output Paramètre complexe spécifiant la table de sortie pour les scores (`casout`) et le nombre de composantes principales à retenir (`npc`, défaut 4).
eigenVal Spécifie les paramètres de la table de sortie CAS qui contiendra la matrice des valeurs propres.
eigenVec Spécifie les paramètres de la table de sortie CAS qui contiendra la matrice des vecteurs propres (les fonctions propres).
saveState Spécifie la table de sortie pour sauvegarder l'état analytique (modèle) afin de l'utiliser ultérieurement pour le scoring de nouvelles données.
rankThreshold Définit le seuil de valeur propre pour déterminer le rang de la matrice de covariance. La valeur par défaut est 1E-08.
display Spécifie quelles tables de résultats doivent être envoyées au client pour affichage.
Préparation des Données Voir la fiche de ce code dataprep
Création de données fonctionnelles simulées

Génération d'un jeu de données 'fpca_data' contenant 100 courbes sinusoïdales, chacune définie par 50 points de mesure (y1 à y50) avec un léger décalage de phase et du bruit aléatoire.

Copié !
1 
2DATA casuser.fpca_data;
3array y[50];
4DO id = 1 to 100;
5DO j = 1 to 50;
6y[j] = sin(j/10 + id/20) + rannor(123)*0.1;
7END;
8OUTPUT;
9END;
10 
11RUN;
12 

Exemples

Exécution de l'analyse en composantes principales fonctionnelles sur les variables d'entrée y1 à y50, identifiées par la variable 'id'.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3fpca.fPca / TABLE={name="fpca_data", caslib="casuser"}, id={"id"}, inputs={"y1"-"y50"};
4 
5RUN;
6 
Résultat :
Le journal affichera les informations du modèle, le nombre d'observations lues et utilisées, ainsi que les tables de résultats par défaut (valeurs propres, variance expliquée).

Analyse demandant le calcul de 3 composantes principales (npc=3), avec un lissage sur 20 bins, et la sauvegarde des résultats (scores, valeurs propres, vecteurs propres) ainsi que l'état du modèle (astate) dans des tables CAS distinctes.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3fpca.fPca / TABLE={name="fpca_data", caslib="casuser"}, id={"id"}, inputs={"y1"-"y50"}, nBins=20, OUTPUT={npc=3, casout={name="fpca_scores", caslib="casuser", replace=true}}, eigenVal={name="fpca_evals", caslib="casuser", replace=true}, eigenVec={name="fpca_evecs", caslib="casuser", replace=true}, saveState={name="fpca_astate", caslib="casuser", replace=true};
4 
5RUN;
6 
Résultat :
Crée quatre tables dans la bibliothèque 'casuser' : 'fpca_scores' (coordonnées des individus), 'fpca_evals' (valeurs propres), 'fpca_evecs' (vecteurs propres) et 'fpca_astate' (modèle pour scoring futur).

FAQ

Quelle est la fonction principale de l'action fPca ?
Quel paramètre permet de spécifier la table de sortie pour la matrice des valeurs propres ?
À quoi sert le paramètre 'nBins' ?
Comment sauvegarder l'état de la matrice des vecteurs propres pour un scoring futur ?
Quelle est la valeur par défaut du paramètre 'rankThreshold' ?
Quel paramètre permet d'identifier la variable d'enregistrement ?
Quelles sont les options disponibles dans le paramètre 'output' ?