Quelqu'un a-t-il tenté de prédire des séries chronologiques en utilisant la régression des vecteurs de support?
Je comprends les machines à vecteurs de support et je comprends partiellement la régression des vecteurs de support, mais je ne comprends pas comment elles peuvent être utilisées pour modéliser des séries chronologiques, en particulier des séries temporelles multivariées.
J'ai essayé de lire quelques articles, mais ils sont trop élevés. Quelqu'un peut-il expliquer en termes simples comment ils fonctionneraient, en particulier en ce qui concerne les séries chronologiques multivariées?
EDIT: Pour élaborer un peu, permettez-moi d'essayer d'expliquer avec un exemple de prix des actions.
Disons que nous avons des cours boursiers pour N jours. Ensuite, pour chaque jour, nous pourrions construire un vecteur de caractéristiques, qui, dans un cas simple, pourrait être le prix du jour précédent et le prix du jour actuel. La réponse pour chaque vecteur d'entités serait le prix du lendemain. Ainsi, étant donné le prix d'hier et le prix d'aujourd'hui, l'objectif serait de prédire le prix du lendemain. Ce que je ne comprends pas, c'est que nous avons des données d'entraînement de six mois, comment mettriez-vous davantage l'accent sur les vecteurs de caractéristiques les plus récents?
la source
Réponses:
Dans le contexte de la régression des vecteurs de support, le fait que vos données soient une série chronologique est principalement pertinent d'un point de vue méthodologique - par exemple, vous ne pouvez pas effectuer une validation croisée k-fold, et vous devez prendre des précautions lors de l'exécution de backtests / simulations.
Fondamentalement, la régression des vecteurs de support est une technique de régression discriminante un peu comme toute autre technique de régression discriminante. Vous lui donnez un ensemble de vecteurs d'entrée et de réponses associées, et il s'adapte à un modèle pour essayer de prédire la réponse en fonction d'un nouveau vecteur d'entrée. Le noyau SVR, d'autre part, applique l'une des nombreuses transformations à votre ensemble de données avant l'étape d'apprentissage. Cela lui permet de détecter des tendances non linéaires dans l'ensemble de données, contrairement par exemple à la régression linéaire. Un bon noyau pour commencer serait probablement le RBF gaussien - il aura un hyperparamètre que vous pouvez régler, alors essayez quelques valeurs. Et puis, lorsque vous aurez une idée de ce qui se passe, vous pourrez essayer d'autres noyaux.
Avec une série chronologique, une étape d'importation détermine ce que sera votre "vecteur d'entités" ; chaque x i est appelé une "caractéristique" et peut être calculé à partir de données présentes ou passées, et chaque y i , la réponse, sera le changement futur sur une certaine période de temps de tout ce que vous essayez de prédire. Prenez un stock par exemple. Vous avez des prix au fil du temps. Peut-être que vos caractéristiques sont a.) L'écart de 200MA-30MA et b.) La volatilité sur 20 jours, de sorte que vous calculez chaque x t à chaque instant, avec y tX Xje yje Xt yt , le (disons) retour de la semaine suivante sur ce stock. Ainsi, votre SVR apprend à prédire le retour de la semaine suivante en se basant sur le spread MA actuel et le vol de 20 jours. (Cette stratégie ne fonctionnera pas, alors ne vous excitez pas trop;)).
Si les articles que vous lisez étaient trop difficiles, vous ne voudrez probablement pas essayer d'implémenter un SVM vous-même, car cela peut être compliqué. IIRC il y a un paquet "kernlab" pour R qui a une implémentation SVM du noyau avec un certain nombre de noyaux inclus, ce qui fournirait un moyen rapide de se mettre en route.
la source
Ma réponse personnelle à la question posée est "oui". Vous pouvez le considérer comme un pro ou un con qu'il existe un nombre infini de choix de fonctionnalités pour décrire le passé. Essayez de choisir des fonctionnalités qui correspondent à la façon dont vous pourriez décrire de manière concise à quelqu'un ce que le marché vient de faire [par exemple "le prix est à 1,4 "ne vous dit rien s'il n'est pas lié à un autre nombre]. Quant à la cible du SVM, les plus simples sont la différence de prix et le ratio de prix pour deux jours consécutifs. Comme ceux-ci correspondent directement au sort d'un métier hypothétique, ils semblent de bons choix.
Je dois être en désaccord pédant avec la première déclaration de Jason: vous pouvez faire une validation croisée k-fold dans des situations comme celle décrite par raconteur et c'est utile (à condition que j'explique). La raison pour laquelle elle est statistiquement valable est que les instances de la cible dans ce cas n'ont pas de relation intrinsèque: ce sont des différences ou des rapports disjoints. Si vous choisissez à la place d'utiliser des données à une résolution supérieure à l'échelle de la cible, il y aurait lieu de craindre que des instances corrélées puissent apparaître dans l'ensemble d'apprentissage et l'ensemble de validation, ce qui compromettrait la validation croisée (en revanche, lors de l'application de la SVM, vous n'aurez aucune instance disponible dont les cibles chevauchent celle qui vous intéresse).
Ce qui réduit l'efficacité de la validation croisée, c'est si le comportement du marché évolue avec le temps. Il y a deux façons possibles de gérer cela. La première consiste à incorporer le temps en tant que fonctionnalité (je n'ai pas trouvé cela très utile, peut-être parce que les valeurs de cette fonctionnalité à l'avenir sont toutes nouvelles). Une alternative bien motivée consiste à utiliser la validation directe (ce qui signifie tester votre méthodologie sur une fenêtre de temps glissante et la tester sur la période juste après cette fenêtre. Si le comportement change avec le temps, le dicton attribué à Niels Bohr " La prévision est très difficile, en particulier pour l'avenir "est particulièrement approprié. Il existe des preuves dans la littérature que le comportement des marchés financiers change avec le temps, devenant généralement plus efficace,
Bonne chance!
la source
Il y a un exemple sur Quantum Financier pour utiliser un SVM pour prévoir des séries financières. Il pourrait facilement être converti d'un système de classification (long / court) en un système de régression.
la source