Prédire le cours d'une action grâce à la Data Science
Sélectionnez un chapitre
Dans ce projet Machine Learning final réalisé après sa session des Fondamentaux en Data Science, Nisrine met en place un algorithme de Machine Learning supervisé pour prédire le prix d’une action sur un marché public. Un avant goût des larges possibilités qu’offre la Data Science dans le secteur financier !
La problématique
Prédire le rendement du marché boursier est l’une des choses les plus difficiles à faire.
Il y a tellement de facteurs impliqués dans la prédiction, les facteurs physiques, le comportement, rationnel et irrationnel des agents économiques.
Tous ces aspects se combinent pour rendre les cours des actions volatils et très difficiles à prévoir de manière précise.
Au cours de mes expériences personnelles, les banques d’investissement spécialisées en large cap ont souvent eu le souci que l’abondance d’informations entraîne des difficultés de traitement des données.
D’autant plus que ces informations sont publiques et donc accessibles à tout type d’agent économique, institutions financières et entreprises concurrentes. La compréhension de l’activité d’une entreprise est d’autant plus complexe qu’il faut jongler avec différentes industries et donc acquérir les clés de lectures de divers marchés financiers et les particularités de chaque secteur.
L’objectif de ce projet est dans une vision à long terme en adéquation avec mes études. Ce projet a pour but d’être amélioré et revu sous différentes problématiques au fils des prochaines sessions d’apprentissage de Machine Learning et se verra présenté au jury du Grand Oral de Sciences Po, en guise de soutenance de fin d’étude. Combiné à mes expériences professionnelles et mes enseignements en finance,
l’objectif de ce projet est d’évoluer progressivement vers une lecture simple et robuste des marchés par secteur.
Cependant, au fil des améliorations, le sujet pourra être orienté autour d’une problématique plus affinée répondant davantage à une problématique de mémoire. La mise en place d’un outil de Machine Learning viendra ainsi appuyer un corpus de lecture visant à répondre à la problématique posée.
Comment : Les preuves que votre problème existe, acteurs et clients
A titre d’illustration, le 21 février 2019, lors d’un match de NBA, la chaussure Nike du sportif Zion Williamson a éclaté en match, provoquant machinalement une perte de 1.42% de la valeur de ses actions. Bien qu’anecdotique, les faits divers sont aussi une variable à prendre en compte, à tel point que certains modèles intègrent le contenu des tweets au sein de leurs modèles.
Le traitement de l’information comme dans de nombreux secteurs est donc une problématique duale :
il faut à la fois traiter un flux permanent d’informations tout en vérifiant la vélocité de ces dernières de manière à refléter la juste valeur des actifs traités.
À l’aide d’informations à la fois quantitatives (états financiers, cours de bourses, résultats trimestriels), et qualitatives (annonces d’opération de croissance externe, tweets et news concernant l’entreprise, et annonces officielles sur les marchés), les instruments de Machine Learning (et de Deep Learning, non traité à ce jour) ont le potentiel de mettre au jour des tendances afin de faire des prédictions de plus en plus précises.
Un travail de Machine Learning autour des marchés financiers peut répondre à de nombreuses questions rencontrées fréquemment au sein de diverses divisions de banques. Qu’il s’agisse d’un desk de trading, de gestion de portefeuille ou d’opération de croissance externe, les interrogations concernant les perspectives du cours d’actions sont un sujet central. La volatilité et la mesure du risque sont à tous les niveaux de la banque d’affaires un sujet de fond qui conditionne des stratégies décisives.
Un second axe qui sera développé ultérieurement sera de réfléchir à une manière de différencier son modèle. En effet, les banques se sont très tôt emparées de ces modèles pour eux même concevoir leurs propres stratégies. Si d’une part, la finance de marché s’est amplement accaparé ses technologies de pointe,
j’ai pu constater par ma propre expérience que ces outils restent encore très limités dans les banques d’investissement qui souffrent d’une archaïsation des processus de travail.
Implémentation : Comment est-ce que vous résolvez le problème ? Quelles sont les technologies que vous allez utiliser
Protocole expérimental : intuitions, démarches suivies
Inspiration pour le modèle de « Rolling Linear Regression »
Le dataset étant composé de séries temporelles, c’est au cours d’une recherche sur les méthodes de traitement qu’un article Medium mettait en lumière l’utilisation de la Régression Linéaire pour répondre à cette problématique.
– Dans une série temporelle, chaque valeur est affectée par les valeurs qui la précèdent. Par exemple, s’il y a beaucoup de trafic à 16h55 à une intersection, il y a de fortes chances qu’il y ait aussi du trafic à 16h57. C’est ce qu’on appelle l’autocorrélation.
– Dans une Régression Linéaire classique, on ne considérerait que x(t) alors qu’en raison de l’autocorrélation, x(t-1), x(t-2), … affecteront également le résultat. Nous pouvons donc considérer les prévisions des séries chronologiques comme une régression qui tient également compte de l’autocorrélation.
L’idée avec la Rolling Linear Regression est de prédire X(t+1), prochaine valeur d’une série temporelle. On ne donne pas seulement X(t), mais X(t-1), X(t-2), etc. au modèle.
Ainsi, la visualisation des sorties de régression telles que la corrélation, le carré R et l’erreur type dans le temps peut être utile dans l’analyse du risque pour les actions, les portefeuilles et les facteurs.
Présentation des grandes parties du code
Data Cleaning
La base de données étant composée principalement de données numériques, la principale action du cleaning consiste au traitement des dates, c’est à dire redéfinir la colonne data en type datetime. Ensuite, nous allons supprimer les valeurs manquantes sur le dataset : nous n’utiliserons pas de remplacement par la moyenne et la médiane étant donné le volume important des données. La sélection de la « target company » consiste simplement à redéfinir la database en fonction de l’entreprise à étudier (ici Apple, sous le ticker symbol AAPL)
Data Visualisation
Dans une deuxième partie du code, nous entamons des exercices de visualisations afin d’avoir une vue générale sur notre base de données et donc réfléchir à de premières intuitions. Le graphique ci-dessous nous donne un exemple de la forte volatilité du titre entre 2010(année 0) et mi-décembre 2016.L’intérêt d’une telle visualisation sera de comparer comment l’action APPLE se comportera sur nos prédictions.
Linear Regression
La Rolling Linear régression reprend les principes d’une régression multiple à quelques variantes près. Il faut au préalable définir un nombre de jours à prendre en compte pour réaliser la prédiction (dans notre cas 30 jours) et ainsi décaler l’ensemble des valeurs au closing de 30 jours : cette opération a été effectuée dans une nouvelle colonne nommée ‘label’.
Ainsi on définit X comme étant les valeurs open/close high/low et on opère un scaling des valeurs.
De même on définit Y comme étant cette fois ci les valeurs de ‘labels’ c’est à dire les 30 jours de projections. La.La régression linéaire est donc réalisée en découpant les échantillons en train et test puis on y applique le package de sklearn afin d’appliquer à notre training set le modèle de Machine Learning. On peut ainsi utiliser l’outils score pour afficher notre adjusted R^2 :
Une fois que notre score nous semble satisfaisant, nous pouvons passer à la prédiction avec la fonction Predict.
Dans un format brut et sans visualisation nous obtenons les résultats suivants, qui de prime abord semblent très proches des cours observés sur la période.
Visualiser les prédictions
Enfin nous finissons notre premier exercice de prédiction en affichant les cours pour la période fin décembre 2016.
Pistes d'amélioration : critiques et amélioration à apporter
– Vérifier si d’autres caractéristiques peuvent être extraites de l’ensemble de données existant (comme le volume échangé).
– Obtenir des données sur la société apparentée au Ticker symbol : via des tweets concernant l’entreprise– Récupérer des articles de nouvelles pour la compagnie, pondérer les valorisations des titres par le sentiment de l’article
– Utiliser d’autres instruments de Machine Learning : une technique apportant une justesse accrue serait de mettre en œuvre une combinaison d’algorithmes en commençant par des algorithmes simples comme le calcul de la moving average et la Rolling Linear Regression, puis en passant aux techniques plus avancées.
– D’autres aspects à ajouter au modèle : volatilité du titre, risque de marché
– Possibilité de créer des indices de marché en fonction des industries
Conclusion : résultats, évaluation du modèle
Comme le montre le graphique ci-dessus (la visualisation des prédictions), pour le mois de décembre 2016, il y a eu une baisse du cours de l’action. Le modèle a prévu cependant une remontée début 2017. Une technique de régression linéaire peut donner ce genre de résultat en l’état, mais ne prend pas en compte les effets de saisonnalité : il s’agit par exemple pour Apple d’une période de l’année forte en raison des ventes accrues pendant les fêtes.
Vous souhaitez réaliser votre reconversion dans le domaine de la data et de l'IA ? Choisissez la parmi les meilleures formation en Machine Learning, et n'hésitez pas à contacter notre équipe admissions pour réaliser votre inscription au sein de notre bootcamp.