Die Aktion 'fastIca' berechnet unabhängige Komponenten mithilfe des FastICA-Algorithmus. Dieses Verfahren wird häufig zur blinden Quellentrennung (Blind Source Separation) verwendet, um gemischte Signale in ihre ursprünglichen, statistisch unabhängigen Komponenten zu zerlegen. Es basiert auf der Maximierung der Nicht-Gaussianität.
| Parameter | Beschreibung |
|---|---|
| table | Gibt die Einstellungen für die Eingabetabelle an, die die zu analysierenden Daten enthält. |
| inputs | Liste der numerischen Variablen in der Eingabetabelle, die für die Analyse verwendet werden sollen. |
| n | Gibt die Anzahl der zu berechnenden unabhängigen Komponenten an. Wenn 0 (Standard), entspricht die Anzahl der Komponenten der Anzahl der Eingabevariablen. |
| method | Spezifiziert die Methode zur Komponentenextraktion. 'name' kann 'DEFLATION' (deflationäre Dekorrelation) oder 'SYMMETRIC' (symmetrische Dekorrelation) sein. Enthält auch 'maxIter' und 'tolerance'. |
| seed | Gibt den Startwert für den Pseudozufallszahlengenerator an, um reproduzierbare Ergebnisse zu gewährleisten. |
| gFunction | Legt die nichtquadratische Funktion fest, die zur Annäherung der Negentropie verwendet wird ('EXP' oder 'LOGCOSH'). |
| eigenThreshold | Schwellenwert für den Anteil der Varianz, der durch Eigenwerte erklärt wird. Eigenwerte unterhalb dieses Schwellenwerts werden verworfen. |
| noCenter | Wenn auf TRUE gesetzt, wird die Zentrierung der numerischen Variablen unterdrückt. |
| noScale | Wenn auf TRUE gesetzt, wird die Skalierung der numerischen Variablen unterdrückt. |
| output | Konfiguriert die Ausgabetabelle, die beobachtungsweise Statistiken und die unabhängigen Komponenten enthält. Unterparameter umfassen 'casOut', 'component' (Präfix für Komponenten), 'white' (Präfix für geweißte Variablen). |
| outputTables | Liste der Ergebnistabellen, die als CAS-Tabellen auf dem Server gespeichert werden sollen. |
| prefix | Präfix für die Benennung der unabhängigen Komponenten (Standard: 'Comp'). |
| whitePrefix | Präfix für die Benennung der geweißten (whitened) Variablen (Standard: 'White'). |
Erzeugt eine CAS-Tabelle mit gemischten Signalen (Sinus, Sägezahn, Rauschen), um die Trennung durch ICA zu demonstrieren.
| 1 | |
| 2 | PROC CAS; |
| 3 | dataStep.runCode / code=" |
| 4 | data casuser.signals; |
| 5 | do t = 1 to 1000; |
| 6 | s1 = sin(t/10); |
| 7 | s2 = mod(t, 20)-10; |
| 8 | s3 = rannor(1); |
| 9 | x1 = 0.6*s1 + 0.4*s2; |
| 10 | x2 = 0.3*s2 + 0.7*s3; |
| 11 | x3 = 0.2*s1 + 0.3*s2 + 0.5*s3; |
| 12 | output; |
| 13 | end; |
| 14 | |
| 15 | run; |
| 16 | "; |
| 17 | |
| 18 | RUN; |
| 19 |
Führt eine FastICA-Analyse auf den gemischten Signalen durch, um 3 unabhängige Komponenten zu extrahieren.
| 1 | |
| 2 | PROC CAS; |
| 3 | ica.fastIca / TABLE={name="signals", caslib="casuser"} inputs={"x1", "x2", "x3"} n=3 seed=12345; |
| 4 | |
| 5 | RUN; |
| 6 |
Verwendet die symmetrische Methode, die Log-Cosh-Funktion und speichert die berechneten Komponenten in einer Ausgabetabelle.
| 1 | |
| 2 | PROC CAS; |
| 3 | ica.fastIca / TABLE={name="signals", caslib="casuser"} inputs={"x1", "x2", "x3"} n=3 seed=12345 method={name="SYMMETRIC", maxIter=1000, tolerance=1e-5} gFunction="LOGCOSH" prefix="IC" OUTPUT={casOut={name="ica_scores", caslib="casuser", replace=true}, component="Comp", white="Whitened"}; |
| 4 | |
| 5 | RUN; |
| 6 |