Régression bayésienne - Est-ce que quelqu'un a fait un EA en utilisant cet algorithme ? - page 28

 

Sur le sujet de la branche : Bayes, mql

Formule de Bayes

La dépendance linéaire y=ax+b ;

La formule de la distribution normale.( Vous pourriez, en principe, prendre une distribution différente.)

Réécrivons la formule

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

Ensuite, si je comprends bien, vous devez énumérer toutes les combinaisons possibles de a et b. Les a et b qui donnent la probabilité maximale selon la formule (1) seront les coefficients.

 
Yuri Evseenkov:

Sur le sujet de la branche : Bayes, mql

Formule de Bayes

La dépendance linéaire y=ax+b ;

La formule de la distribution normale.( Vous pourriez, en principe, prendre une autre distribution.)

Réécrivons la formule

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

Ensuite, si je comprends bien, vous devez énumérer toutes les combinaisons possibles de a et b. Les a et b qui donnent la probabilité maximale selon la formule (1) seront les coefficients.

Il y a des raisons de penser que ce n'est pas le cas.
 
Dmitry Fedoseev:
Il y a des raisons de penser que ce n'est pas du tout le cas.
Partagez vos soupçons, s'il vous plaît.
 
Yuri Evseenkov:
Partagez vos soupçons, s'il vous plaît.
Non. Si j'en étais sûr, je le mettrais dans le code, mais vous pouvez jacasser sans fin. Il y a de tels mégaladons dans le fil, laissons-les montrer leur éloquence en pratique.
 
Dmitry Fedoseev:
Non. Si j'en étais sûr, je le représenterais dans le code, mais vous pouvez jacasser à l'infini. Il y a de tels mégaladons dans le fil, laissons-les montrer leur éloquence en pratique.
C'est dommage. Vous êtes le plus précis sur le sujet. Et les camarades compétents hors sujet, je suis très intéressant, mais j'ai peur de me perdre dans les "bois".
 
Yuri Evseenkov:

Sur le sujet de la branche : Bayes, mql

Formule de Bayes

La dépendance linéaire y=ax+b ;

La formule de la distribution normale.( Vous pourriez, en principe, prendre une distribution différente.)

Réécrivons la formule

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

Ensuite, si je comprends bien, vous devez énumérer toutes les combinaisons possibles de a et b. Les a et b qui donnent la probabilité maximale selon la formule (1) seront les coefficients.

Vous semblez penser dans la bonne direction. Je l'ai déjà oublié, mais l'explication est la suivante.

Supposons que nous ayons une série temporelle (des prix si vous voulez), Y = {y[1], y[2], ..., y[n]}. Nous avons également des paramètres de modèle inconnus W={w[1], w[2], ... , w[m]}. Supposons que le modèle soit la régression, c'est-à-dire

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

où f() est une fonction d'approximation (un polynôme par exemple), X est la donnée d'entrée, e[] est une erreur.

Utilisons le théorème du maximum de vraisemblance pour trouver les paramètres du modèle W :

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

Maintenant applique le théorème de Bayes :

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

La division par P(Y) est une normalisation qui peut être négligée. On obtient

(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é de X étant donné les paramètres W, peut être calculée comme suit :

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

Si les erreurs ont une distribution normale et sont indépendantes les unes des autres, alors

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

Substituez (2) dans (1) et obtenez

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

P(W) est généralement égal à 1, et on peut en tirer une distribution laplassienne :

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

On obtient

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

En conséquence, l'application du maximum de vraisemblance et du théorème de Bayes à notre régression en série avec erreurs gaussiennes conduit à une méthode des moindres carrés avec ou sans le terme d'ajustement lambda*... ou sans. Le calcul est alambiqué, mais le résultat est simple. Si vous n'aimez pas la distribution normale des erreurs, remplacez-la par une autre, par exemple la distribution laplassienne, vous obtenez :

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

On peut aussi remplacer par un super-gaussien, on obtient alors

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

Au fait, l'additif régulateur tel qu'il est écrit ici transforme la méthode des moindres carrés en une méthode de codage déflaté. Sans elle, il s'agit d'une régression linéaire classique, résolue en différenciant par W et en égalisant à zéro.

 
Vladimir:

Vous semblez penser dans la bonne direction. Je commence à l'oublier, mais voici l'explication.

Supposons que nous ayons une série temporelle (des prix si vous voulez), Y = {y[1], y[2], ..., y[n]}. Nous avons également des paramètres de modèle inconnus W={w[1], w[2], ... , w[m]}. Supposons que le modèle est la régression, c'est-à-dire

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

où f() est une fonction d'approximation (un polynôme par exemple), X est la donnée d'entrée, e[] est une erreur.

Utilisons le théorème du maximum de vraisemblance pour trouver les paramètres du modèle W :

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

Maintenant applique le théorème de Bayes :

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

La division par P(Y) est une normalisation qui peut être négligée. On obtient

(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é de X étant donné les paramètres W, peut être calculée comme suit :

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

Si les erreurs ont une distribution normale et sont indépendantes les unes des autres, alors

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

Substituez (2) dans (1) et obtenez

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

P(W) est généralement égal à 1, et on peut en tirer une distribution laplassienne :

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

On obtient

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

En conséquence, l'application du maximum de vraisemblance et du théorème de Bayes à la régression de nos séries avec des erreurs gaussiennes conduit à une méthode des moindres carrés avec la somme gouvernante lambda*... ou sans. Les mathématiques sont alambiquées, mais le résultat est simple. Si vous n'aimez pas la distribution normale des erreurs, remplacez-la par une autre, par exemple la distribution laplassienne, vous obtenez :

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

On peut aussi remplacer par un super-gaussien, ce qui donne

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

Au fait, l'additif régulateur tel qu'il est écrit ici transforme la méthode des moindres carrés en une méthode de codage déflaté. Sans elle, il s'agit d'une régression linéaire classique, résolue en différenciant par W et en égalisant à zéro.

Merci !
 
Vladimir:

Vous semblez penser dans la bonne direction. Je commence à l'oublier, mais voici l'explication.

Supposons que nous ayons une série temporelle (des prix si vous voulez), Y = {y[1], y[2], ..., y[n]}. Nous avons également des paramètres de modèle inconnus W={w[1], w[2], ... , w[m]}. Supposons que le modèle soit la régression, c'est-à-dire

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

où f() est une fonction d'approximation (un polynôme par exemple), X est la donnée d'entrée, e[] est une erreur.

Utilisons le théorème du maximum de vraisemblance pour trouver les paramètres du modèle W :

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

Maintenant applique le théorème de Bayes :

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

La division par P(Y) est une normalisation qui peut être négligée. On obtient

(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é de X étant donné les paramètres W, peut être calculée comme suit :

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

Si les erreurs ont une distribution normale et sont indépendantes les unes des autres, alors

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

Substituez (2) dans (1) et obtenez

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

P(W) est généralement égal à 1, et on peut en tirer une distribution laplassienne :

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

On obtient

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

En conséquence, l'application du maximum de vraisemblance et du théorème de Bayes à la régression de nos séries avec des erreurs gaussiennes conduit à une méthode des moindres carrés avec la somme gouvernante lambda*... ou sans. Les mathématiques sont alambiquées, mais le résultat est simple. Si vous n'aimez pas la distribution normale des erreurs, remplacez-la par une autre, par exemple la distribution laplassienne, vous obtenez :

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

On peut aussi remplacer par un super-gaussien, on obtient alors

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

Au fait, l'additif régulateur tel qu'il est écrit ici transforme la méthode des moindres carrés en une méthode de codage déflaté. Sans elle, il s'agit d'une régression linéaire classique résolue en différenciant par W et en égalisant à zéro.

Merci pour ce commentaire détaillé. Les mots clés et les formules sont donnés, je vais m'en occuper.

"En résumé, l'application du maximum de vraisemblance et du théorème de Bayes à notre série de régression avec erreurs gaussiennes conduit à une méthode des moindres carrés avec un terme d'ajustement lambda*... ou sans. Les mathématiques sont alambiquées et le résultat est simple. "

Convaincu. Presque. Il ne fait aucun doute que les coefficients a et b des droites y=ax+b, lorsqu'ils sont calculés par différentes méthodes, seront numériquement ou approximativement égaux. Dans ce cas, vous devez soit comparer minutieusement les formules de deux méthodes, soit écrire un programme. L'essentiel est que les formules, l'algorithme et le code lui-même soient conformes à la théorie. Le programme doit :

-Calculez les coefficients a et b de la régression linéaire y=ax+b en utilisant la méthode des moindres carrés.

-Obtenir les coefficients a et b pour lesquels la probabilité selon le théorème de Bayes est maximale lorsqu'on applique la distribution normale avec une espérance mathématique égale à ax+b.

Il faut ensuite comparer ces coefficients et, en cas de différence considérable, examiner le comportement des deux lignes en fonction de ceux a et b en dynamique. Par exemple, dans le testeur de stratégie en mode visualisation.

Le programme peut encore être utilisé en utilisant d'autres modèles, des régressions, des distributions avec la formule de Bayes. Peut-être que quelque chose va tirer vraiment bien.

P.S. Mon exemple préféré me vient à l'esprit :

"Il y a de fortes chances que vous ayez déjà utilisé la pensée bayésienne, même si vous ne le saviez pas. Discutez à l'adresse
d'un exemple que j'ai pris à Neil Manson : vous êtes un soldat au combat qui se cache dans un terrier. Voussavez avec certitude
qu'il ne reste qu'un seul soldat ennemi sur le champ de bataille, à environ 400
mètres
.Vous savez également que si c'est un soldat ordinaire, il ne pourra pas vous atteindre à cettedistance
.Toutefois, si ce soldat est un tireur d'élite, il est tout à fait possible qu'il puisse vous toucher
. Mais il n'y a pas beaucoup de snipers dans l'armée ennemie, donc c'est probablement un soldat ordinaire. Vous
sortez la tête de la tranchée, pour essayer de mieux voir autour de vous.Bam ! Une balle effleure votre casque
et vous retombez dans le trou.
Bien, vous pensez. Je sais que les snipers sont rares, mais ce type m'a touché à 400
mètres.Il y a toujours une bonne chance que ce soit un soldat ordinaire, mais la probabilité que ce soit un sniper est déjà
plus élevée, puisqu'il m'a touché à une si longue distance.Après quelques minutes, vous
osez regarder à nouveau et lever la tête au-dessus du trou.Bam ! Une deuxième balle
effleure ton casque ! Vous retombez. Oh, merde, tu penses. C'est définitivement un sniper. Aussi rares soient-ils,
cependant, le soldat moyen ne peut pas frapper deux fois de suite à cette distance
. C'est définitivement
un sniper. Je ferais mieux d'appeler des renforts. Si c'est une approximation de ce que vous penseriez dans unesituation similaire à
, alors félicitations ! Tu penses déjà comme un bayésien, du moins
parfois."
(Auteur non spécifié).

 
Yuri Evseenkov:


-Calculer les coefficients a et b de la régression linéaire y=ax+b par la méthode des moindres carrés.

-Obtenir les coefficients de a et b, pour lesquels la probabilité par le théorème de Bayes est maximale lorsqu'on applique une distribution normale avec une espérance égale à ax+b.


Ils seront égaux, très proches. La question est de savoir s'il est judicieux d'essayer de définir une distribution a priori pour les coefficients lorsqu'ils sont appliqués aux marchés financiers.

J'ai souvent vu la régularisation appliquée dans la régression (L1, L2). Ça pourrait fonctionner mieux que la régression linéaire ordinale.

 
Alexey Burnakov:

Ils seront égaux, très proches. La question est de savoir s'il est judicieux d'essayer de fixer une distribution a priori pour les coefficients appliqués aux marchés financiers.

J'ai souvent vu la régularisation appliquée dans la régression (L1, L2). Peut fonctionner mieux que la régression linéaire ordinale.

Je comprends que les coefficients a et b doivent être énumérés pour trouver la combinaison qui donne la probabilité maximale selon la formule de Bayes P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y) ; (1) Les probabilités P(a) et P(b) seront égales aux étapes des cycles de dépassement et seront une valeur constante. Leur répartition sera uniforme.

P.S. J'adhère à l'opinion selon laquelle la nature des marchés financiers réels et celle du forex diffèrent considérablement. Le Forex est plutôt un jeu d'argent. Un type de simulation en ligne multijoueur sur ordinateur. Ainsi, pour le Forex, il est possible d'appliquer les lois qui sont pertinentes dans ces domaines. La loi de la distribution normale, par exemple.

Raison: