Scénario de test & Cas d'usage
Análisis y pronóstico de series temporales univariantes.
Descubrir todas las acciones de uniTimeSeriesCrea una tabla con 200,000 observaciones para simular datos de un sensor cada minuto durante varios meses. La serie tiene una tendencia y un componente cíclico.
| 1 | DATA mycas.sensor_iot; |
| 2 | FORMAT timestamp datetime20.; |
| 3 | DO i = 1 to 200000; |
| 4 | timestamp = '01JAN2025:00:00:00'dt + i*60; |
| 5 | produccion_kw = 500 + 0.001*i + 50*sin(i/1000) + rannor(567)*10; |
| 6 | OUTPUT; |
| 7 | END; |
| 8 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.loadTable / |
| 3 | caslib='CASUSER' path='sensor_iot.sashdat' |
| 4 | casOut={name='sensor_iot', replace=true}; |
| 5 | RUN; |
| 1 | uniTimeSeries.arima / |
| 2 | TABLE={name='sensor_iot'}, |
| 3 | timeId={name='timestamp'}, |
| 4 | interval='minute', |
| 5 | nThreads=4, |
| 6 | series={ |
| 7 | {name='produccion_kw', model={ |
| 8 | {estimate={p=2, diff=1, q=1}}, |
| 9 | {forecast={lead=60}} |
| 10 | }} |
| 11 | }, |
| 12 | outFor={name='pronostico_iot', replace=true}; |
| 1 | TABLE.fetch / TABLE={name='pronostico_iot'} to=10; |
| 2 | RUN; |
| 3 | QUIT; |
| 4 |
La acción debe procesar las 200,000 observaciones de manera eficiente y sin errores. Se debe generar una tabla de salida `pronostico_iot` que contenga 60 predicciones para los próximos 60 minutos. El rendimiento de la acción debe ser aceptable para un conjunto de datos de este tamaño.