uniTimeSeries arima

Modellierung von Sensordaten mit fehlenden Werten

Scénario de test & Cas d'usage

Geschäftskontext

Eine Produktionsanlage überwacht Maschinenvibrationen mit einem Sensor. Der Datenstrom wird gelegentlich unterbrochen, was zu Lücken in den Zeitreihen führt. Ziel ist es, ein robustes ARIMA-Modell zu erstellen, das mit diesen fehlenden Werten umgehen kann, indem es die Zeitreihe vor der Modellierung zuschneidet.
Über das Set : uniTimeSeries

Analyse und Prognose univariater Zeitreihen.

Entdecken Sie alle Aktionen von uniTimeSeries
Datenaufbereitung

Erstellt eine Tabelle `sensor_vibration` mit absichtlich eingefügten fehlenden Werten am Anfang, in der Mitte und am Ende der Zeitreihe.

Kopiert!
1DATA mycas.sensor_vibration;
2 FORMAT zeitstempel datetime16.;
3 DO i = 1 to 200;
4 zeitstempel = dhms('01jan2023'd, 0, 0, 0) + (i-1)*60;
5 vibration = 10 + 2*sin(i/10) + rannor(67890)*0.5;
6 /* Fehlende Werte einfügen */
7 IF (i <= 5) or (100 <= i <= 110) or (i >= 195) THEN vibration = . ;
8 OUTPUT;
9 END;
10RUN;

Étapes de réalisation

1
Ausführung der `arima`-Aktion mit der Option `trimId='BOTH'`, um fehlende Werte am Anfang und Ende der Reihe zu entfernen.
Kopiert!
1PROC CAS;
2 uniTimeSeries.arima /
3 TABLE={name='sensor_vibration', caslib='mycas'},
4 timeId={name='zeitstempel'},
5 interval='MINUTE',
6 trimId='BOTH',
7 series={name='vibration', model={estimate={p=1, diff=1, q=1}}},
8 outStat={name='stat_sensor', caslib='mycas', replace=true},
9 outEst={name='est_sensor', caslib='mycas', replace=true};
10RUN;
2
Überprüfung der Anpassungsstatistiken, um sicherzustellen, dass die Modellierung auf der zugeschnittenen Zeitreihe (ohne die führenden und nachfolgenden fehlenden Werte) basiert.
Kopiert!
1PROC PRINT DATA=mycas.stat_sensor; RUN;

Erwartetes Ergebnis


Die Aktion wird erfolgreich ausgeführt. Die Option `trimId='BOTH'` bewirkt, dass die ersten 5 und die letzten 6 Beobachtungen (die fehlende Werte enthalten) vor der Modellanpassung aus der Zeitreihe entfernt werden. Die internen fehlenden Werte (Beobachtungen 100-110) führen dazu, dass die Zeitreihe in zwei separate, zusammenhängende Segmente aufgeteilt wird, und das Modell wird auf dem längsten Segment angepasst. Die Ausgabetabelle `mycas.stat_sensor` zeigt Statistiken (z.B. `NOBS`), die die Anzahl der tatsächlich verwendeten Beobachtungen nach dem Zuschneiden widerspiegeln.