Prévision des séries chronologiques (éventuellement avec python)

  • quels algorithmes existent pour la prévision/régression des séries chronologiques ?
    • Qu'en est-il de l'utilisation des réseaux neuronaux ? (les meilleurs docs sur ce sujet ?)
    • y a-t-il des bibliothèques python/des extraits de code qui peuvent aider ?
24
demandé sur Nikana Reklawyks 2010-08-27 16:27:44

7 réponses

Les approches classiques des séries chronologiques de la régression sont:

  • modèles auto-régressifs (il y a toute la littérature à ce sujet)

  • Processus Gaussiens

  • décomposition de Fourier ou similaire pour extraire les composantes périodiques du signal (i.e., oscillations cachées dans les données)

autres approches moins communes que je connais

  • Ralentir La Fonctionnalité D'Analyse, un algorithme qui extrait les forces motrices d'une série temporelle, par exemple, le paramètres derrière un signal chaotique

  • les approches de réseau neuronal (NN), soit en utilisant des NN récurrents (c.-à-d. construits pour traiter des signaux temporels) ou des NN classiques d'avance qui reçoivent comme entrée une partie des données passées et tentent de prédire un point dans le futur; l'avantage de ce dernier est que les NN récurrents sont connus pour avoir un problème avec la prise en compte d'un passé lointain

à mon avis, pour l'analyse des données financières, il est important d'obtenir non seulement une meilleure extrapolation des séries chronologiques, mais aussi un intervalle de confiance fiable, car la stratégie d'investissement résultante pourrait être très différente en fonction de cela. Les méthodes probabilistes, comme les processus gaussiens, vous donnent que "GRATUITEMENT", comme ils renvoient une distribution de probabilité sur des valeurs futures possibles. Avec les méthodes statistiques classiques sur lesquelles vous devrez vous appuyer amorçage techniques.

il y a beaucoup de bibliothèques Python qui offrent des outils statistiques et D'apprentissage automatique, voici ceux que je connais le mieux:

  • NumPy et SciPy sont un must pour les scientifiques de la programmation en Python
  • il y a une interface Python à R, appelée RPy
  • statsmodel contient les techniques classiques de modélisation statistique, y compris les modèles autorégressifs, fonctionnent bien avec Pandas, un progiciel populaire d'analyse de données
  • scikits.apprendre, MDP, MLPy, Orange sont des collections d'algorithmes d'apprentissage automatique
  • PyMC un module python qui implémente des modèles statistiques bayésiens et des algorithmes d'ajustement, y compris la chaîne Markov Monte Carlo.
  • PyBrain contient (entre autres choses) des implémentations de réseaux neuronaux récurrents et avancés
  • Processus Gaussien site il y a une liste de logiciels GP, y compris deux implémentations Python
  • mloss est un répertoire de l'open source machine logiciel d'apprentissage
69
répondu pberkes 2014-10-13 03:30:10

Je n'ai aucune idée des bibliothèques python, mais il y a de bons algorithmes de prévision dans R qui sont open source. Voir le prévisions package pour le code et les références pour les séries chronologiques de prévision.

4
répondu Rob Hyndman 2010-08-28 02:28:11

en parlant seulement des algorithmes derrière eux, j'ai récemment utilisé le double lissage exponentiel dans un projet et il a bien fait en prévision de nouvelles valeurs quand il y a une tendance dans les données.

l'implémentation est assez triviale, mais peut-être que l'algorithme n'est pas suffisamment élaboré pour votre cas.

3
répondu GaretJax 2010-08-30 19:05:56

Avez-vous essayé Autocorrélation pour trouver des tendances périodiques dans les séries chronologiques ? Vous pouvez le faire avec numpy.corrélate fonction.

3
répondu Agnius Vasiliauskas 2010-09-02 18:11:46

Deux approches

  1. Modèle De Série Chronologique Dédié: l'algorithme d'apprentissage automatique incorpore directement ces séries chronologiques. Un tel modèle est comme une boîte noire, et il peut être difficile d'expliquer le comportement du modèle. Exemple sont des modèles autorégressifs.
  2. fondé sur les caractéristiques approche: ici, les séries chronologiques sont mappées à une autre représentation, peut-être de dimension inférieure. Cela signifie que l'algorithme d'extraction des caractéristiques calcule des caractéristiques telles que la valeur moyenne ou maximale de la série temporelle. Les caractéristiques sont ensuite transmises sous forme de matrice de caractéristiques à une machine d'apprentissage "normale" telle qu'un réseau neuronal, une forêt aléatoire ou une machine vectorielle de soutien. Cette approche présente l'avantage de permettre une meilleure explication des résultats. De plus, il nous permet d'utiliser un bien théorie développée de l'apprentissage machine supervisé.

tsfresh calcule un grand nombre de fonctionnalités

Le paquet python tsfresh calculez un grand nombre de ces caractéristiques à partir d'un pandas.DataFrame contenant la série chronologique. Vous pouvez trouver sa documentation à http://tsfresh.readthedocs.io.

enter image description here

3
répondu MaxBenChrist 2016-10-27 14:49:24

Groupe de la méthode de traitement des données est largement utilisé pour prévoir les données financières.

2
répondu BrutForce 2012-05-07 07:24:15

bien qu'il ne réponde pas directement à la question, après beaucoup de googling concernant les bibliothèques appropriées pour la prédiction de séries temporelles et l'exploration de données séquentielles, je suis tombé sur cette page d'atelier http://sequenceanalysis.github.io/ qui possède un code intéressant concernant le raccord de chaîne Markov. J'espère que cela aide quelqu'un d'autre aussi :)

1
répondu lacrima 2018-01-29 16:53:05