Come si scala il sistema di polari in base al numero di colonne?
Come ottenere i gradini del sistema di polari in base al numero di colonne?
Un preludio al calcolo dei variogrammi usando Polars
Da qualche tempo sto leggendo sui Varigrammi [1]. Questo è uno strumento di visualizzazione utilizzato in Geostatistica per vedere come una quantità specifica varia nello spazio. Può fungere da strumento diagnostico molto utile, aiutando a rispondere alle seguenti domande:
- C’è una certa distanza
d
da un puntoxi
da cui non otteniamo più alcun valore informativo? - C’è ciclicità nella misura in funzione della distanza?
Sono stato curioso di applicare questa teoria ai dati delle serie temporali, in particolare perché rispetto a metodi specifici delle serie temporali come l’autocorrelazione [2], un Varigrama è valido per dati mancanti o non uniformemente spaziati (che è una caratteristica dei dati delle serie temporali reali) e può essere esteso a dimensioni superiori [3, 4].
Il problema dei variogrammi è che sono computazionalmente costosi. Tuttavia, di recente ho sperimentato con polars
e ho pensato che il metodo rolling
[5] e/o l’espressione si prestino bene all’algoritmo del variogramma. La parte complicata è che i variogrammi scalano con il numero di ritardi, quindi volevo vedere rapidamente se c’è una significativa diminuzione delle prestazioni quando si utilizza Expr.rolling
[6] per un gran numero di colonne.
POC: Posso utilizzare Polars .rolling per i Variogrammi?
L’algoritmo per un variogramma è relativamente semplice [1]:
- Microsoft rilascia Orca 2 la pioniera ragionamento avanzato nei modelli di linguaggio più piccoli con strategie di addestramento personalizzate.
- Collaborazione tra esseri umani e intelligenza artificiale
- Piattaforma AI per le aziende con Amazon Bedrock
Dove h
è il ritardo (ad esempio, una distanza), delta
è una soglia di tolleranza, z
è il valore che stiamo misurando e N
è l’insieme di punti in cui h-delta <= j-i <=h+delta
. In pratica, stiamo cercando di trovare tutte le coppie di punti i,j
la cui differenza sia compresa tra [h-delta, h+delta]
.
La funzione di rolling di polars fa qualcosa di molto simile. Per ogni punto, crea finestre [5]:
(x0 + offset, x0 + offset + period]
(x1 + offset, x1 + offset + period]
- …
Se definiamo offset = h — delta
e lasciamo period=2*delta
, allora ricreeremmo…