Prédiction du marché basée sur des indicateurs macroéconomiques - page 51

 
Vladimir:
Je suis d'accord, j'ai même écrit une telle chose moi-même quelque part ici. Choisir un prédicteur sur l'ensemble de l'histoire et utiliser ensuite un test prospectif à partir de la même histoire est une auto-illusion que tout le monde, des traders aux scientifiques, pratique. De nombreux articles consacrés à la prévision économique commencent par une liste de prédicteurs sélectionnés, puis font état de "bons" résultats. Les traders choisissent des stratégies basées par exemple sur le rebond ou le breakout parce que "cela a fonctionné dans le passé" et espèrent que cela fonctionnera dans le futur et montrent des tests avancés du passé sans se rendre compte que leur choix de la stratégie elle-même était basé sur leur étude de TOUT l'historique, y compris l'historique pour les tests avancés. Pour moi, le test avancé de mon modèle de PIB et de marché sera l'avenir. J'ai donc ouvert ce fil de discussion - poster des prédictions, voir comment elles se sont réalisées en temps réel. Le travail n'est pas terminé. Il y a beaucoup d'idées pour la transformation non linéaire des données. Par exemple, certains prédicteurs comme HOUST affectent la croissance du PIB via une certaine fonction de seuil.

La non-linéarité, oui.

Mais comment trouver une fonction non linéaire ? En essayant différentes variantes ? Ou simplement utiliser des réseaux neuronaux?

 
Дмитрий:

La non-linéarité, oui.

Mais comment trouver une fonction non linéaire ? En essayant différentes variantes ? Ou simplement utiliser des réseaux neuronaux ?

Vous pouvez également essayer Random Forest, qui est plus facile à utiliser et simule également les non-linéarités.

Exemple : https://www.quora.com/How-does-random-forest-work-for-regression-1

L'apparence de la fonction résultante peut également être évaluée à l'aide des outils intégrés.

How does random forest work for regression? - Quora
  • www.quora.com
I think the first step would be to understand how decision trees work in a regression problem. You might be aware of CART - Classification and Regression Trees. When dealing with regression problem you try to predict real valued numbers at the leaf nodes which would look something like this for singular scale feature: Now the question comes how...
 
Alexey Burnakov:

Vous pouvez également essayer Random Forest, il est plus facile à utiliser et simule également les non-linéarités.

Exemple : https://www.quora.com/How-does-random-forest-work-for-regression-1

L'apparence de la fonction résultante peut également être évaluée à l'aide des outils intégrés.

Merci, la forêt aléatoire m'est familière.
 
Дмитрий:

La non-linéarité, oui.

Mais comment trouver une fonction non linéaire ? En essayant différentes variantes ? Ou simplement utiliser des réseaux neuronaux ?

Alors, réfléchissons ensemble. Je voulais choisir une fonction simple et progressive :

out = -1 si entrée < seuil, +1 si entrée > seuil

Où threshold est notre seuil inconnu, différent pour les différents prédicteurs. Par exemple, pour les incréments du S&P500 et du PIB, le seuil = 0, c'est-à-dire que ce sont les chutes de ces indicateurs eux-mêmes qui sont importantes, et non le seuil. Pour d'autres indicateurs économiques, ce n'est pas aussi simple. Le seuil doit être ajusté. La modélisation pourrait ressembler à ceci :

1. déterminer le type de données : en hausse (S&P500, PIB,...) ou en baisse (taux de chômage, taux fédéraux,...) en comparant les valeurs au début et à la fin de l'histoire - vous devez penser à une méthode automatique robuste pour déterminer les données.

2. Si les données sont croissantes, remplacez-les par des incréments de x[i] - x[i-1]. S'il s'agit d'une gamme, alors ne changez pas.

3. Choisissez une sortie simulée telle que les augmentations du PIB (croissance) et appliquez une fonction de pas avec un seuil de zéro, c'est-à-dire que la croissance du PIB est remplacée par une série binaire +/-1.

4. Nous commençons à énumérer tous les prédicteurs et leurs versions retardées pour la capacité prédictive de cette manière. Nous prenons un prédicteur ou ses incréments en fonction du point 2, mesurons sa plage sur l'ensemble de l'historique, divisons cette plage par 10 par exemple et obtenons 9 seuils. En utilisant chacun des 9 seuils, remplacer le prédicteur par une série binaire de +/-1, et compter le nombre de +1 et -1 de notre prédicteur qui coïncident avec +1 et -1 de notre série simulée (PIB), obtenant M coïncidences avec N barres complètes dans l'historique. Nous calculons une fonction de M/N pour chacun des 9 prédicteurs et laissons le seuil qui donne la plus haute fréquence de coïncidence. Et répétez ceci pour chaque prédicteur. Ce calcul devrait être rapide.

Si quelqu'un veut aider, prenez les données que j'ai postées ici il y a quelques pages et essayez-les. Je veux terminer le modèle linéaire pour l'instant et passer ensuite au modèle non linéaire.

PS : Comme il y a beaucoup plus de valeurs positives (+1) que négatives (-1) dans les séries d'incréments du S&P500 et du PIB, vous pouvez modifier la méthode décrite ci-dessus pour pondérer plus fortement la coïncidence des valeurs négatives, soulignant ainsi les baisses plutôt que les hausses de ces indicateurs. Par exemple, l'indicateur de qualité de l'ajustement pourrait ressembler à ceci :

J = M(+1)/N + W*M(-1)/N

où W est une pondération >1 reflétant combien moins de valeurs négatives sont présentes dans la croissance du PIB que de valeurs positives.

Un gros problème se pose si l'on veut trouver un modèle avec 2 prédicteurs ou plus. Nous devons réfléchir à la manière de relier ces prédicteurs : avec des fonctions AND, OR ou XOR. Une fois connectés, les seuils devront être optimisés à nouveau.

 
Vladimir:

Un gros problème se posera si nous voulons trouver un modèle avec 2 prédicteurs ou plus. Ici, nous devons réfléchir à la manière de connecter ces prédicteurs : avec des fonctions ET, OU ou XOR. Une fois connectés, les seuils devront être optimisés à nouveau.

Si vous alimentez la grille en données, elle trouvera les seuils "automatiquement", et en une seule fois pour tous les prédicteurs qui ont été inclus dans le vecteur d'entrée.
 
Vladimir:

Si quelqu'un veut aider, prenez les données que j'ai postées ici il y a quelques pages et essayez-les.

Les mêmes données peuvent-elles être converties en csv ?
 
Stanislav Korotky:
Les mêmes données peuvent-elles être converties en csv ?
Attaché. La première colonne indique les dates au format Matlab, du 1er trimestre 1959 au 4e trimestre 2015. Les colonnes restantes sont des chiffres économiques et financiers non convertis. Le PIB se trouve dans la 1168e colonne.
Dossiers :
Data.zip  1037 kb
 

Fini les prédictions linéaires du PIB. Voici les deux trimestres à venir :


Il y a 4 prédicteurs dans le modèle, bien que 3 soient suffisants. Après 3-4 prédicteurs, le reste ressemble à du bruit. Prédire le S&P500 avec la même méthode que le PIB fonctionne très mal. Je ne le montre même pas ici. J'ai également essayé rapidement des transformations non linéaires avec une fonction d'étape comme je l'ai décrit précédemment. Ça marche moins bien que la régression linéaire.

Nous attendons la publication de la nouvelle valeur du PIB à la fin du mois d'avril. Je me repose pour l'instant.

 
Vladimir:
Attaché. La première colonne indique les dates au format Matlab, du 1er trimestre 1959 au 4e trimestre 2015. Les colonnes restantes sont des chiffres économiques et financiers non convertis. Le PIB est dans la colonne 1168.
Merci. Cependant, il serait souhaitable d'avoir les noms de toutes les colonnes. De plus, d'après ce que j'ai compris, les dates n'ont pas été copiées tout à fait correctement (avec une perte de précision des chiffres), de sorte que les entrées vont par groupes de 11 avec la même date.
 
Vladimir:

Fini les prédictions linéaires du PIB. Voici deux trimestres à venir :

L'image est belle, mais ne pourrait-on pas plutôt calculer à chaque étape le produit du changement prédit par le changement réel, faire la somme sur toute la période et diviser par le même produit, mais dans lequel les changements prédits et réels sont pris en modulo ?