series_periods_detect()
Si applica a: ✅Microsoft Fabric✅
Trova i periodi più significativi all'interno di una serie temporale.
La funzione series_periods_detect() è utile per rilevare modelli periodici nei dati, ad esempio cicli giornalieri, settimanali o mensili.
Sintassi
series_periods_detect(
serie,
min_period max_period num_periods ,
,
)
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
serie | dynamic |
✔️ | Matrice di valori numerici, in genere l'output risultante degli operatori make-series o make_list . |
min_period | real |
✔️ | Lunghezza minima del periodo per cui eseguire la ricerca. |
max_period | real |
✔️ | Lunghezza massima del periodo per cui eseguire la ricerca. |
num_periods | long |
✔️ | Numero massimo di periodi da restituire. Questo numero è la lunghezza delle matrici dinamiche di output. |
Importante
- L'algoritmo può rilevare periodi contenenti almeno 4 punti e al massimo la metà della lunghezza della serie.
- Impostare il min_period un po ' sotto e max_period un po 'sopra i periodi che si prevede di trovare nella serie temporale. Ad esempio, se si dispone di un segnale aggregato orario e si cercano periodi giornalieri e settimanali (rispettivamente 24 e 168 ore), è possibile impostare min_period=0,8*24, max_period=1,2*168 e lasciare il 20% dei margini intorno a questi periodi.
- La serie temporale di input deve essere regolare. Ovvero, aggregato in contenitori costanti, che è sempre il caso se è stato creato usando make-series. In caso contrario, l'output è privo di significato.
Valori restituiti
La funzione restituisce una tabella con due colonne:
- periodi: matrice dinamica contenente i periodi trovati, in unità di dimensione del contenitore, ordinati in base ai punteggi.
- punteggi: matrice dinamica contenente valori compresi tra 0 e 1. Ogni matrice misura il significato di un punto nella rispettiva posizione nella matrice di periodi.
Esempio
La query seguente incorpora uno snapshot del traffico dell'applicazione per un mese. La quantità di traffico viene aggregata due volte al giorno, ovvero la dimensione del contenitore è di 12 ore. La query produce un grafico a linee che mostra chiaramente un criterio nei dati.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| render linechart
È possibile eseguire la funzione series_periods_detect()
nella stessa serie per identificare i modelli ricorrenti. La funzione cerca i criteri nell'intervallo di periodi specificato e restituisce due valori. Il primo valore indica un modello rilevato lungo 14 punti con un punteggio di circa 84. L'altro valore è zero che indica che non è stato trovato alcun modello aggiuntivo.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| project series_periods_detect(y, 0.0, 50.0, 2)
Output
series_periods_detect_y_periods | series_periods_detect_y_periods_scores |
---|---|
[14, 0] | [0.84, 0] |
Il valore in series_periods_detect_y_periods_scores viene troncato.
Nota
Esiste anche un modello giornaliero visibile nel grafico, ma non viene restituito dalla query perché il campionamento è troppo grossolano (dimensioni bin di 12h). Un periodo giornaliero di 2 bin è inferiore alla dimensione minima del periodo di 4 punti, richiesto dall'algoritmo.
Contenuto correlato
- espressioni regolari
-
series_periods_validate()