Domanda:
Regressione lineare mobile ponderata esponenzialmente
brandon
2011-04-24 23:56:27 UTC
view on stackexchange narkive permalink

Ho un problema in cui ho bisogno di calcolare la regressione lineare quando arrivano i campioni. Esiste una formula che posso utilizzare per ottenere la regressione lineare mobile ponderata esponenzialmente? Non sono sicuro che sia così che lo chiameresti.

Dico in modo esponenziale perché voglio controllare il peso dei vecchi campioni proprio come usare la media mobile ponderata. Ma voglio che i vecchi campioni siano meno ponderati, esponenzialmente meno, dei campioni più recenti
Sei risposte:
#1
+7
Dirk Eddelbuettel
2011-04-25 02:27:09 UTC
view on stackexchange narkive permalink

Certo, aggiungi solo un argomento weights = a lm () (in caso di R):

  R> x <- 1:10 ## la media è 5,5 R> lm (x ~ 1) ## regressione su calcoli costanti meanCall: lm (formula = x ~ 1) Coefficienti: (Intercetta) 5,5 R> lm (x ~ 1, pesi = 0,9 ^ (seq (10,1, per = -1))) Chiama: lm (formula = x ~ 1, pesi = 0,9 ^ (seq (10, 1, per = -1))) Coefficienti : (Intercetta) 6.35 R> 

Qui si dà più peso ai valori "più recenti" ( ie , più alti) e la media si sposta da 5,5 a 6,35. La chiave, se esiste, è il peso esponenziale $ \ lambda ^ \ tau $ che calcolo al volo; puoi cambiare il fattore di peso in qualsiasi valore tu scelga e, a seconda di come ordini i tuoi dati, puoi anche far funzionare l'esponente nell'altro modo.

Puoi fare lo stesso con i modelli di regressione che coinvolgono qualsiasi regressore tu abbia .

Mai sentito parlare di R. Sembra essere quello che voglio, ma non capisco tutta la sintassi. Puoi spiegare come funzionerebbe con questa formula di regressione lineare? (NΣXY - (ΣX) (ΣY)) / (NΣX ^ 2 - (ΣX) ^ 2). La formula funziona perfettamente per il mio problema, ma sto scrivendo un documento di ricerca e ho bisogno di una forma di spostamento esponenziale più accettabile per funzionare quando arrivano i campioni.
Sembra che il comando seq in quella sintassi significhi che tiene traccia degli ultimi 10 campioni. Ho bisogno di qualcosa come la media mobile ponderata esponenzialmente che diminuisca tutti i pesi passati avvicinandosi ma non raggiungendo mai lo 0
Ho usato 10 per l'esempio; sostituiscilo con N dove determini N come la lunghezza del tuo set di dati. Inoltre, questa è semplicemente un'applicazione dei ** minimi quadrati ponderati ** che qualsiasi libro di testo di regressione decente tratterà in modo più dettagliato.
#2
+4
Ralph Winters
2011-04-25 20:18:03 UTC
view on stackexchange narkive permalink

Sembra che quello che vuoi fare sia un modello a due stadi. Trasforma prima i tuoi dati in una forma smussata esponenzialmente utilizzando un fattore di smussatura specificato, quindi inserisci i dati trasformati nella formula di regressione lineare.

http://www.jstor.org/pss/2627674

http://en.wikipedia.org/wiki/Exponential_smoothing

Apparentemente questo sito non mi permette di premere la freccia su perché sono troppo nuovo, ma sicuramente quello di cui avevo bisogno
@brandon Ora puoi (sono necessarie 15 ripetizioni).
Cordiali saluti, il riferimento a The Crane and Crotty (http://www.jstor.org/pss/2627674) è un URL valido, ma quando provo a ottenere il PDF ricevo un messaggio che "il file è danneggiato e non può essere riparato" .
#3
+3
Henry
2011-04-25 21:20:16 UTC
view on stackexchange narkive permalink

Se stai cercando un'equazione della forma

$$ y = \ alpha_n + \ beta_n x $$

dopo che sono arrivati ​​$ n $ pezzi di dati, e stai usando un fattore esponenziale $ k \ ge 1 $ allora potresti usare

$$ \ beta_n = \ frac {\ left (\ sum_ {i = 1} ^ nk ^ i \ right) \ sinistra (\ sum_ {i = 1} ^ nk ^ i X_i Y_i \ destra) - \ sinistra (\ sum_ {i = 1} ^ nk ^ i X_i \ destra) \ sinistra (\ sum_ {i = 1} ^ nk ^ i Y_i \ right)} {\ left (\ sum_ {i = 1} ^ nk ^ i \ right) \ left (\ sum_ {i = 1} ^ nk ^ i X_i ^ 2 \ right) - \ left (\ sum_ {i = 1} ^ nk ^ i X_i \ right) ^ 2} $$

e

$$ \ alpha_n = \ frac {\ left (\ sum_ {i = 1 } ^ nk ^ i Y_i \ right) - \ beta_n \ left (\ sum_ {i = 1} ^ nk ^ i X_i \ right)} {\ sum_ {i = 1} ^ nk ^ i}. $$

Se l'arrotondamento o la velocità diventano problemi, questo può essere riformulato in altre forme. Potrebbe anche valere la pena sapere che per $ k>1 $ hai $ \ sum_ {i = 1} ^ n k ^ i = \ frac {k (k ^ n - 1)} {k-1} $.

Questo è carino, ma esiste una formulazione ricorsiva online?ad esempio, puoi scrivere $ a_n, b_n $ in termini di $ a_ {n-1}, b_ {n-1}, x_n, y_n, k $?
@Peter: probabilmente non facilmente, ma invece di conservare tutti i vari $ X_i $ e $ Y_i $ puoi semplicemente memorizzare quattro o cinque somme correnti
#4
+3
MohSahx
2014-01-04 03:41:08 UTC
view on stackexchange narkive permalink

Sì che puoi. Il metodo che stai cercando è chiamato metodo dei minimi quadrati ponderati esponenzialmente. È una variazione del metodo dei minimi quadrati ricorsivi: \ begin {align} Θ ̂ (k + 1) & = Θ ̂ (k) + K [z (k + 1) -x ^ T (k + 1) Θ ̂ (k)] \\ K (k + 1) & = D (k) x (k + 1) [λ + x ^ T (k + 1) D (k) x (k + 1)] ^ (- 1 ) \\ D (k + 1) & = \ frac 1 λ \ bigg (D (k) -D (k) x (k + 1) \ bigg [λ + x ^ T (k + 1) D (k) x (k + 1) \ bigg] ^ {- 1} x ^ T (k + 1) D (k) \ bigg) \ end {align} $ 0.9<λ<1 $ tipicamente.

È un metodo sviluppato per tenere conto di parametri variabili nel tempo, ma sono ancora in un formato lineare. che deriva dalla funzione di costo: $$ J (Θ) = 1/2 ∑_ (i = km) ^ k▒ 〖λ ^ (ki) [z (i) -x ^ T (i) Θ]〗 ^ 2 $$

I minimi quadrati ordinari vengono calcolati in base a quanto segue per confronto:

la funzione di costo è: $$ J (Θ) = 1/2 ∑_ (i = i) ^ k▒ [z (i) -x ^ T (i) Θ] ^ 2 $$ con \ begin {align} Θ (k) & = D (k) X_k ^ T Z_k \\ Cov [Θ ̂ (k)] & = σ ^ 2 D (k) \\ D (k) & = [X_k ^ T X_k] ^ {- 1} \ end {align}

Benvenuto nel sito, @MohSahx! Sarebbe più chiaro se puoi modificare le tue formule in "latex", specialmente per rivedere i simboli come ▒.
#5
+1
IrishStat
2011-04-25 15:49:36 UTC
view on stackexchange narkive permalink

Se formi il Transfer Function Model y (t) = W (B) * X (t) + [THETA (B) / PHI (B)] * a (t) l'operatore [THETA (B) / PHI (B)] è la "componente levigante". Ad esempio, se PHI (B) = 1.0 e THETA (B) = 1-.5B ciò implicherebbe un insieme di pesi di .5, .25, .125, .... in questo modo potresti fornire la risposta all'ottimizzazione della "regressione lineare mobile ponderata" piuttosto che assumerne la forma.

#6
+1
Peter
2018-05-10 14:12:33 UTC
view on stackexchange narkive permalink

Non sono sicuro della relazione effettiva di questo con la regressione lineare mobile ponderata esponenzialmente, ma una semplice formula online per stimare una pendenza e un offset ponderati esponenzialmente si chiama doppio livellamento esponenziale di Holt-Winters.Dalla pagina di Wikipedia:

Data una serie temporale $ x_0 ... x_t $ e parametri di livellamento $ \ alpha \ in (0,1], \ beta \ in (0, 1] $, Inizializza con:

\ begin {align} s_1 & = x_1 \\ b_1 & = x_1 - x_0 \ end {align}

E poi per $ t>1 $: \ begin {align} s_t & = (1- \ alpha) (s_ {t-1} + b_ {t-1}) + \ alpha x_t \\ b_t & = (1- \ beta) b_ {t-1} + \ beta (s_t - s_ {t-1}) \ end {align}

Dove $ b_t $ è una pendenza stimata e $ s_t $ è un'intercetta y stimata al tempo t.

Forse una persona incline alla statistica può commentare quanto questo sia vicino alla soluzione della regressione lineare mobile ponderata esponenzialmente.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...