Die Aktion fPca führt eine funktionale Hauptkomponentenanalyse (Functional Principal Component Analysis, FPCA) durch. Diese Methode wird verwendet, um funktionale Daten, wie Zeitreihen oder Kurven, zu analysieren und deren Dimensionalität zu reduzieren. Im Gegensatz zur klassischen PCA, die Vektoren behandelt, berücksichtigt die FPCA die funktionale Struktur und Glattheit der Daten. Sie ist nützlich für die Merkmalsextraktion, das Clustering und die Erkennung von Ausreißern in hochdimensionalen funktionalen Datensätzen.
| Parameter | Beschreibung |
|---|---|
| table | Gibt die Eingabetabelle an, die die zu analysierenden Daten enthält. |
| inputs | Gibt die Liste der Eingabevariablen an, die für die funktionale Analyse verwendet werden sollen. |
| id | Gibt die Variable an, die als Datensatzidentifikator verwendet wird. |
| nBins | Gibt die Anzahl der Bins an, die beim Binning der funktionalen Kurven verwendet werden sollen (Standardwert: -1, Minimum: 10). |
| eigenVal | Gibt die Ausgabetabelle an, in der die Eigenwertmatrix gespeichert werden soll. |
| eigenVec | Gibt die Ausgabetabelle an, in der die Eigenvektormatrix gespeichert werden soll. |
| output | Gibt die Parameter für die Erstellung der Scoring-Ausgabetabelle an, einschließlich des Tabellennamens und der Anzahl der Hauptkomponenten. |
| saveState | Gibt die Ausgabetabelle an, um den Zustand der Eigenvektormatrix für zukünftiges Scoring zu speichern. |
| rankThreshold | Gibt den Eigenwert-Schwellenwert zur Bestimmung des Rangs der Kovarianzmatrix an. |
Wir erstellen einen Datensatz 'functional_data' mit 100 Beobachtungen. Jede Beobachtung hat eine ID und 10 Messwerte (Y1-Y10), die eine funktionale Kurve (eine Sinuswelle mit Rauschen) darstellen.
| 1 | |
| 2 | DATA mycas.functional_data; |
| 3 | array y[10]; |
| 4 | DO i=1 to 100; |
| 5 | id=i; |
| 6 | DO j=1 to 10; |
| 7 | y[j] = sin(j/10 * 3.14) + rannor(123)*0.1; |
| 8 | END; |
| 9 | OUTPUT; |
| 10 | END; |
| 11 | |
| 12 | RUN; |
| 13 |
Führt eine grundlegende FPCA auf den Eingabevariablen Y1 bis Y10 durch und verwendet 'id' als Identifikator.
| 1 | |
| 2 | PROC CAS; |
| 3 | fpca.fPca / TABLE={name="functional_data", caslib="casuser"}, inputs={"Y1", "Y2", "Y3", "Y4", "Y5", "Y6", "Y7", "Y8", "Y9", "Y10"}, id={"id"}; |
| 4 | |
| 5 | RUN; |
| 6 |
Führt eine FPCA durch, legt die Anzahl der Bins fest, speichert die Eigenwerte und Eigenvektoren in separaten Tabellen und speichert die Score-Werte (projizierte Daten) in einer Ausgabetabelle.
| 1 | |
| 2 | PROC CAS; |
| 3 | fpca.fPca / TABLE={name="functional_data", caslib="casuser"}, inputs={"Y1", "Y2", "Y3", "Y4", "Y5", "Y6", "Y7", "Y8", "Y9", "Y10"}, id={"id"}, nBins=20, eigenVal={name="eigenvalues_out", caslib="casuser", replace=true}, eigenVec={name="eigenvectors_out", caslib="casuser", replace=true}, OUTPUT={casout={name="scores_out", caslib="casuser", replace=true}, npc=3}, rankThreshold=1E-06; |
| 4 | |
| 5 | RUN; |
| 6 |