Le spline possono essere utilizzate per la previsione?


20

Non posso essere specifico sulla natura dei dati in quanto sono proprietari, ma supponiamo di avere dati come questo: ogni mese, alcune persone si iscrivono per un servizio. Quindi, in ogni mese successivo, tali persone possono aggiornare il servizio, interrompere il servizio o essere negato il servizio (ad es. Per mancato pagamento). Per la prima coorte nei nostri dati, abbiamo circa 2 anni di dati (24 mesi).

Il numero di persone che si iscrivono ogni mese è grande (nell'intervallo 100.000) e il numero che fa una delle tre cose è in migliaia. Tuttavia, non stiamo usando i dati a livello individuale (che sarebbero milioni di righe) ma i dati aggregati per mese e coorte (quale percentuale di ciascuna coorte fa ogni cosa ogni mese).

Abbiamo modellato i dati esistenti utilizzando spline di regressione adattativa multivariata (MARS) e trovato alcuni risultati interessanti. Tuttavia, sono preoccupato di usarli per estrapolare o prevedere in futuro. Le mie preoccupazioni sono perché le previsioni per il futuro sono necessariamente al di fuori dello spazio del campione (in termini di tempo) e le spline possono diventare instabili per l'estrapolazione.

È un metodo legittimo? Quali preoccupazioni ci sono e possono essere affrontate?


2
Naturalmente possono essere utilizzati per la previsione, ma dovrai prestare attenzione a come ottimizzare correttamente gli iperparametri del modello. Anche la scelta della funzione spline (costante, lineare, cubica) è importante. IIRC, in genere vengono utilizzate le funzioni di spline lineari in MARS e le spline di ordine superiore evitate per motivi di estrapolazione / adattamento eccessivo.
Sycorax dice di reintegrare Monica il

1
C'è qualcosa di cui ti preoccupi in particolare, che ti porterebbe a dubitare di un metodo che hai usato? La tua precisione è sembrata inaspettatamente bassa o qualcosa del genere? Hai provato altri metodi? Come si confrontano?
one_observation

1
@Sophologist Principalmente che finiranno per essere molto alla ricerca di nuovi valori poiché i nodi e le linee sono tutti basati su valori che sono passati. Quindi, diciamo, una spline lineare che dice "aumento di XXX per ogni anno dopo il 2014" si baserebbe solo sui dati del 2015 ma, se applicata al 2016, continuerebbe nella stessa direzione.
Peter Flom - Ripristina Monica

3
@PeterFlom: In realtà ero molto confuso riguardo alla tua domanda (le spline sono molto comuni per la previsione) fino a quando non ho letto la tua risposta a Sophologist. Ho modificato la tua domanda per aiutare a sottolineare esattamente ciò che penso sia la tua preoccupazione. Per favore ricontrolla.
Cliff AB,

2
@PeterFlom: supponendo che la mia modifica sia corretta, stai modellando l'effetto del tempo con una spline? Se è così, sarei abbastanza preoccupato. Tuttavia, se stai modellando l'effetto del tempo con un effetto lag e altre covariate con le spline, non vedrei alcun problema?
Cliff AB,

Risposte:


15

Dalla mia interpretazione della domanda, la domanda che mi stai ponendo è se puoi o meno modellare il tempo come spline.

La prima domanda a cui cercherò di rispondere è se è possibile utilizzare le spline per estrapolare i dati. La risposta breve è che dipende, ma la maggior parte delle volte, le spline non sono eccezionali per l'estrapolazione. Le spline sono essenzialmente un metodo di interpolazione, partizionano lo spazio su cui si trovano i tuoi dati e ad ogni partizione si adattano a un semplice regressore. Quindi diamo un'occhiata al metodo di MARS. Il metodo MARS è definita come f ( x ) = n Σ i = 1 α i B i ( x [ i ] ) dove α i è la costante al termine esima nel modello MARS,

f^(X)=Σio=1nαioBio(X[io])
αio è la funzione di base all'ottavo termine e x [ i ] rappresenta la funzione selezionata dal vettore di funzione all'ottavo termine. La funzione di base può essere una costante o può essere una funzione di cerniera (raddrizzatore). La funzione di cerniera è semplicemente m a x ( 0 , x [ i ] + c i ) Ciò che la funzione di cerniera forza il modello è creare unafunzionelineare atratti(è interessante notare che una rete neurale con una funzione di attivazione lineare rettificata può essere visto come il modello superset del modello MARS). BioX[io]
mun'X(0,X[io]+cio)

R

f^(X)=5+mun'X(0,X-5)+2mun'X(0,X-10)

10
f^(X)=10+2(X-10)=2X-10
5

Ora torniamo alle serie storiche. Le serie storiche sono un caso piuttosto speciale nell'apprendimento automatico. Tendono ad avere un po 'di struttura, sia che si tratti di una varianza parziale o di uno dei molti diversi tipi di sottostrutture, e questa struttura può essere sfruttata. Ma sono necessari algoritmi speciali in grado di sfruttare questa struttura, purtroppo le spline non lo fanno.

Ci sono un paio di cose che consiglierei di provare. Il primo sarebbero le reti ricorrenti. Se le tue serie temporali non sono così lunghe (e non hanno dipendenze a lungo termine) dovresti riuscire a cavartela usando una semplice rete ricorrente vaniglia. Se volessi essere in grado di capire cosa sta succedendo, potresti utilizzare un'unità lineare rettificata con distorsioni come funzione di attivazione e questo equivarrebbe a fare la modellazione MARS sul sottoinsieme delle serie temporali e la "memoria" che la rete neurale ricorrente detiene. Sarebbe difficile interpretare come la memoria è gestita dalla rete, ma dovresti avere un'idea di come viene gestito il sottospazio rispetto alla funzione lineare a tratti generata. Inoltre, se si dispone di funzionalità statiche che non appartengono alle serie storiche, è relativamente facile utilizzarle ancora in rete.

Se le serie temporali che hai sono molto lunghe e potrebbero avere dipendenze a lungo termine, ti consiglio di utilizzare una delle reti ricorrenti recintate, qualcosa come GRU o LSTM.

Sul lato più classico della classificazione delle serie storiche è possibile utilizzare modelli markov nascosti. Non approfondirò questi argomenti, perché non li conosco altrettanto bene.

In conclusione, non consiglierei l'uso di spline per due motivi. Uno, non è in grado di gestire complicati problemi di estrapolazione, che sembra essere il problema che stai descrivendo. E due, le spline non sfruttano le sottostrutture delle serie storiche che possono essere molto potenti nella classificazione delle serie storiche.

Spero che sia di aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.