Regressione bayesiana - Qualcuno ha fatto un EA usando questo algoritmo? - pagina 28

 

Sul tema del ramo: Bayes, mql

Formula di Bayes

La dipendenza lineare y=ax+b;

La formula della distribuzione normale (si potrebbe, in linea di principio, prendere una distribuzione diversa).

Riscriviamo la formula

P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1)

Poi, per quanto ho capito, dovete enumerare tutte le possibili combinazioni di a e b. Quelli a e b che danno la massima probabilità secondo la formula (1) saranno i coefficienti.

 
Yuri Evseenkov:

Sul tema del ramo: Bayes, mql

Formula di Bayes

La dipendenza lineare y=ax+b;

La formula della distribuzione normale (si potrebbe, in linea di principio, prendere un'altra distribuzione).

Riscriviamo la formula

P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1)

Poi, per quanto ho capito, dovete enumerare tutte le possibili combinazioni di a e b. Quelli a e b che danno la massima probabilità secondo la formula (1) saranno i coefficienti.

C'è il sospetto che questo non sia il caso.
 
Dmitry Fedoseev:
C'è il sospetto che questo non sia affatto il caso.
Condividete i vostri sospetti, per favore.
 
Yuri Evseenkov:
Condividete i vostri sospetti, per favore.
No. Se lo sapessi con certezza, lo metterei nel codice, ma si può blaterare all'infinito. Ci sono megaloni del genere nel thread, lasciamo che mostrino la loro eloquenza nella pratica.
 
Dmitry Fedoseev:
No. Se lo sapessi con certezza, lo rappresenterei nel codice, ma si può blaterare all'infinito. Ci sono megaloni del genere nel thread, lasciamo che mostrino la loro eloquenza nella pratica.
Peccato. Lei è il più specifico sull'argomento. E offtop compagni competenti è molto interessante per me, ma ho paura di perdersi nel "bosco".
 
Yuri Evseenkov:

Sul tema del ramo: Bayes, mql

Formula di Bayes

La dipendenza lineare y=ax+b;

La formula della distribuzione normale (si potrebbe, in linea di principio, prendere una distribuzione diversa).

Riscriviamo la formula

P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1)

Poi, per quanto ho capito, dovete enumerare tutte le possibili combinazioni di a e b. Quelli a e b che danno la massima probabilità secondo la formula (1) saranno i coefficienti.

Sembra che tu stia pensando nella giusta direzione. L'ho già dimenticato, ma la spiegazione è questa.

Supponiamo di avere una serie temporale (prezzi se volete), Y = {y[1], y[2], ..., y[n]}. Abbiamo anche parametri sconosciuti del modello W={w[1], w[2], ... , w[m]}. Supponiamo che il modello sia di regressione, cioè

y[i] = SOMMA_j w[j]*f(X) + e[i]

dove f() è una funzione approssimativa (un polinomio per esempio), X sono i dati di input, e[] è un errore.

Usiamo il teorema della massima verosimiglianza per trovare i parametri del modello W:

W = argmax ln(P(W|Y))

Ora applica il teorema di Bayes:

P(W|Y) = P(Y|W)*P(W)/P(Y)

Dividere per P(Y) è una normalizzazione che può essere trascurata. Otteniamo

(1) W = argmax {ln(P(W|Y))} ~ argmax {ln(P(Y|W)) + ln(P(W))} ~ argmin {-ln(P(Y|W)) - ln(P(W))}

P(Y|W), la probabilità di X dati i parametri W, può essere calcolata come segue:

P(Y|W) = P(SUM_j w[j]*f(X) + e[i] | W) = P(E)

Se gli errori hanno una distribuzione normale e sono indipendenti l'uno dall'altro, allora

(2) P(Y|W) = P(E) ~ exp(-SUM{e[i]^2}/(2*sigma^2))

Sostituire la (2) nella (1) e ottenere

W ~ argmin {-ln(P(Y|W)) - ln(P(W))} ~ argmin SUM{e[i]^2} - ln(P(W))

P(W) è di solito 1, e possiamo togliere una distribuzione laplassiana:

P(W) ~ exp(-lambda*||W|||_1)

Otteniamo

W ~ argmin SUM{e[i]^2} - ln(P(W)) ~ argmin SUMChe[i]^2 + lambda*||W|_1

Come risultato, l'applicazione della massima verosimiglianza e del teorema di Bayes alla nostra regressione in serie con errori gaussiani porta a un metodo dei minimi quadrati con o senza il termine di regolazione lambda*... o senza. La matematica è contorta, ma il risultato è semplice. Se non ti piace la distribuzione normale dell'errore, sostituiscila con un'altra, per esempio Laplassiana, ottieni:

W ~ argmin SUM|e[i]| + lambda*||W||_1.

Si può anche sostituire con una super-gaussiana, quindi si ottiene

W ~ argmin SUM|e[i]|^p + lambda*||W|_1

A proposito, l'additivo regolatore come scritto qui trasforma il metodo dei minimi quadrati in un metodo di codifica deflazionato. Senza di essa, è una regressione lineare classica, risolta differenziando per W ed equiparando a zero.

 
Vladimir:

Sembra che tu stia pensando nella giusta direzione. Comincio a dimenticarlo, ma ecco la spiegazione.

Supponiamo di avere una serie temporale (prezzi se volete), Y = {y[1], y[2], ..., y[n]}. Abbiamo anche parametri sconosciuti del modello W={w[1], w[2], ... , w[m]}. Supponiamo che il modello sia di regressione, cioè

y[i] = SOMMA_j w[j]*f(X) + e[i]

dove f() è una funzione approssimativa (un polinomio per esempio), X sono i dati di input, e[] è un errore.

Usiamo il teorema della massima verosimiglianza per trovare i parametri del modello W:

W = argmax ln(P(W|Y))

Ora applica il teorema di Bayes:

P(W|Y) = P(Y|W)*P(W)/P(Y)

Dividere per P(Y) è una normalizzazione che può essere trascurata. Otteniamo

(1) W = argmax {ln(P(W|Y))} ~ argmax {ln(P(Y|W)) + ln(P(W))} ~ argmin {-ln(P(Y|W)) - ln(P(W))}

P(Y|W), la probabilità di X dati i parametri W, può essere calcolata come segue:

P(Y|W) = P(SUM_j w[j]*f(X) + e[i] | W) = P(E)

Se gli errori hanno una distribuzione normale e sono indipendenti l'uno dall'altro, allora

(2) P(Y|W) = P(E) ~ exp(-SUM{e[i]^2}/(2*sigma^2))

Sostituire la (2) nella (1) e ottenere

W ~ argmin {-ln(P(Y|W)) - ln(P(W))} ~ argmin SUM{e[i]^2} - ln(P(W))

P(W) è di solito 1, e possiamo togliere una distribuzione laplassiana:

P(W) ~ exp(-lambda*||W|||_1)

Otteniamo

W ~ argmin SUM{e[i]^2} - ln(P(W)) ~ argmin SUMChe[i]^2 + lambda*||W|_1

Come risultato, l'applicazione della massima verosimiglianza e del teorema di Bayes alla regressione delle nostre serie con errori gaussiani porta a un metodo dei minimi quadrati con il sommando governante lambda*... o senza. La matematica è contorta, ma il risultato è semplice. Se non ti piace la distribuzione normale dell'errore, sostituiscila con un'altra, per esempio Laplassiana, ottieni:

W ~ argmin SUM|e[i]| + lambda*||W||_1.

Si può anche sostituire con una super-gaussiana, quindi si ottiene

W ~ argmin SUM|e[i]|^p + lambda*||W|_1

A proposito, l'additivo regolatore come scritto qui trasforma il metodo dei minimi quadrati in un metodo di codifica deflazionato. Senza di essa è una classica regressione lineare, risolta differenziando per W ed equiparando a zero.

Grazie!
 
Vladimir:

Sembra che tu stia pensando nella giusta direzione. Comincio a dimenticarlo, ma ecco la spiegazione.

Supponiamo di avere una serie temporale (prezzi se volete), Y = {y[1], y[2], ..., y[n]}. Abbiamo anche parametri sconosciuti del modello W={w[1], w[2], ... , w[m]}. Supponiamo che il modello sia di regressione, cioè

y[i] = SOMMA_j w[j]*f(X) + e[i]

dove f() è una funzione approssimativa (un polinomio per esempio), X sono i dati di input, e[] è un errore.

Usiamo il teorema della massima verosimiglianza per trovare i parametri del modello W:

W = argmax ln(P(W|Y))

Ora applica il teorema di Bayes:

P(W|Y) = P(Y|W)*P(W)/P(Y)

Dividere per P(Y) è una normalizzazione che può essere trascurata. Otteniamo

(1) W = argmax {ln(P(W|Y))} ~ argmax {ln(P(Y|W)) + ln(P(W))} ~ argmin {-ln(P(Y|W)) - ln(P(W))}

P(Y|W), la probabilità di X dati i parametri W, può essere calcolata come segue:

P(Y|W) = P(SUM_j w[j]*f(X) + e[i] | W) = P(E)

Se gli errori hanno una distribuzione normale e sono indipendenti l'uno dall'altro, allora

(2) P(Y|W) = P(E) ~ exp(-SUM{e[i]^2}/(2*sigma^2))

Sostituire la (2) nella (1) e ottenere

W ~ argmin {-ln(P(Y|W)) - ln(P(W))} ~ argmin SUM{e[i]^2} - ln(P(W))

P(W) è di solito 1, e possiamo togliere una distribuzione laplassiana:

P(W) ~ exp(-lambda*||W|||_1)

Otteniamo

W ~ argmin SUM{e[i]^2} - ln(P(W)) ~ argmin SUMChe[i]^2 + lambda*||W|_1

Come risultato, l'applicazione della massima verosimiglianza e del teorema di Bayes alla regressione delle nostre serie con errori gaussiani porta a un metodo dei minimi quadrati con il sommando governante lambda*... o senza. La matematica è contorta, ma il risultato è semplice. Se non ti piace la distribuzione normale dell'errore, sostituiscila con un'altra, per esempio Laplassiana, ottieni:

W ~ argmin SUM|e[i]| + lambda*||W||_1.

Si può anche sostituire con una super-gaussiana, quindi si ottiene

W ~ argmin SUM|e[i]|^p + lambda*||W|_1

A proposito, l'additivo regolatore come scritto qui trasforma il metodo dei minimi quadrati in un metodo di codifica deflazionato. Senza di essa, è una classica regressione lineare risolta differenziando per W ed equiparando a zero.

Grazie per il commento dettagliato. Le parole chiave e le formule sono state date, ci darò un'occhiata.

"In sintesi, l'applicazione della massima verosimiglianza e del teorema di Bayes alla nostra regressione in serie con errori gaussiani porta a un metodo dei minimi quadrati con un termine di regolazione lambda*... o senza. La matematica è contorta e il risultato è semplice. "

Convinto. Quasi. Rimane un'ombra di dubbio che i coefficienti a e b delle linee y=ax+b quando sono calcolati con metodi diversi saranno numericamente o approssimativamente uguali. Qui è necessario o confrontare minuziosamente le formule di due metodi o scrivere un programma. La cosa principale è che le formule, l'algoritmo e il codice stesso siano adeguati alla teoria. Il programma deve:

-calcolare i coefficienti di a e b della regressione lineare y=ax+b usando il metodo dei minimi quadrati

-ottenere i coefficienti di a e b, ai quali la probabilità per il teorema di Bayes è massima quando si applica la distribuzione normale con aspettativa matematica uguale ad ax+b

Poi dobbiamo confrontare questi coefficienti e, nel caso di una differenza considerevole, guardare il comportamento delle due linee in base a quelle a e b nella dinamica. Per esempio, nel tester di strategia in modalità visualizzazione.

Il programma può essere ulteriormente utilizzato utilizzando altri modelli, regressioni, distribuzioni con la formula di Bayes. Forse qualcosa decollerà davvero bene.

P.S Mi viene in mente il mio esempio preferito:

"È probabile che abbiate già usato il pensiero bayesiano, anche se non lo sapevate. Discutere
un esempio che ho preso da Neil Manson: sei un soldato in battaglia che si nasconde in una buca di volpe.Sai per certo
che c'è solo un soldato nemico rimasto sul campo di battaglia, a circa 400
metri
di distanza.Sai anche che se si tratta di un soldato regolare, non sarà in grado di colpirti da quella
distanza.Tuttavia, se quel soldato è un cecchino, è abbastanza possibile che possa colpirti
. Ma non ci sono molti cecchini nell'esercito nemico, quindi probabilmente è un soldato regolare. Tu
sollevi la testa fuori dalla trincea, cercando di dare un'occhiata migliore in giro.Bam! Un proiettile sfiora il tuo elmetto
e tu cadi di nuovo nella trincea.
Bene, si pensa. So che i cecchini sono rari, ma questo tizio mi ha colpito da quattrocento
metri.C'è ancora una buona possibilità che sia un soldato regolare, ma la possibilità che sia un cecchino è già
più alta, dato che mi ha colpito da una distanza così lunga.Dopo qualche minuto
osi guardare di nuovo fuori e alzi la testa sopra la tana della volpe.Bam! Un secondo proiettile
sfiora il tuo casco! Si cade di nuovo a terra. Oh, merda, pensi. È sicuramente un cecchino. Non importa quanto siano rari,
ma un soldato normale non può colpire due volte di seguito da quella distanza
. È sicuramente
un cecchino. Meglio chiamare i rinforzi. Se questa è un'approssimazione di ciò che pensereste in unasituazione
simile, allora congratulazioni! Stai già pensando come un bayesiano, almeno
a volte".
(Autore non specificato).

 
Yuri Evseenkov:


-Calcolare i coefficienti a e b della regressione lineare y=ax+b con il metodo dei minimi quadrati

-Ottenere i coefficienti di a e b, ai quali la probabilità per il teorema di Bayes è massima quando si applica una distribuzione normale con aspettativa uguale ad ax+b


Saranno uguali, molto vicini. La domanda è se ha senso cercare di stabilire una distribuzione a priori per i coefficienti quando viene applicata ai mercati finanziari.

Ho visto spesso la regolarizzazione applicata nella regressione (L1, L2). Potrebbe funzionare meglio della regressione lineare ordinale.

 
Alexey Burnakov:

Saranno uguali, molto vicini. La questione è se ha senso cercare di stabilire una distribuzione a priori per i coefficienti applicata ai mercati finanziari.

Ho visto spesso la regolarizzazione applicata nella regressione (L1, L2). Può funzionare meglio della regressione lineare ordinale.

I coefficienti a e b capisco che devono essere enumerati per trovare la combinazione che dà la massima probabilità secondo la formula di Bayes P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1) Le probabilità P(a) e P(b) saranno uguali ai passi dei cicli di overshoot e saranno un valore costante. La loro distribuzione sarà uniforme.

P.S. Aderisco all'opinione che la natura dei mercati finanziari reali e del forex differiscono significativamente. Il Forex è più che altro un affare di gioco d'azzardo. Un tipo di simulazione online multiplayer per computer. Quindi, per il Forex, è possibile applicare le leggi che sono rilevanti in queste aree. La legge della distribuzione normale, per esempio.

Motivazione: