.. _td2atimeseriesrst: ========================== 2A.ml - Séries temporelles ========================== .. only:: html **Links:** :download:`notebook `, :downloadlink:`html `, :download:`python `, :downloadlink:`slides `, :githublink:`GitHub|_doc/notebooks/td2a_ml/td2a_timeseries.ipynb|*` Prédictions sur des séries temporelles et autres opérations classiques. .. code:: ipython3 from jyquickhelper import add_notebook_menu add_notebook_menu() .. contents:: :local: .. code:: ipython3 %matplotlib inline Une série temporelle -------------------- On récupère le nombre de sessions d’un site web : `xavierdupre_sessions.csv `__. .. code:: ipython3 import pyensae.datasource as ds ds.download_data('xavierdupre_sessions.csv', url='https://raw.githubusercontent.com/sdpython/ensae_teaching_cs/master/_doc/notebooks/td2a_ml/') .. parsed-literal:: 'xavierdupre_sessions.csv' .. code:: ipython3 import pandas data = pandas.read_csv("xavierdupre_sessions.csv", sep="\t") data.set_index("Date", inplace=True) data.plot(figsize=(12,4)) .. parsed-literal:: .. image:: td2a_timeseries_5_1.png .. code:: ipython3 data[-365:].plot(figsize=(12,4)) .. parsed-literal:: .. image:: td2a_timeseries_6_1.png Exercice 1 : tendance --------------------- Fonction `detrend `__. Enlever la tendance. .. code:: ipython3 from statsmodels.tsa.tsatools import detrend Exercice 2 : enlever la saisonnalité ------------------------------------ Avec deux fonctions `seasonal_decompose `__ ou `fit_seasons `__ .. code:: ipython3 from statsmodels.tsa.seasonal import seasonal_decompose from seasonal import fit_seasons Exercice 3 : Auto-corrélograme, périodogramme --------------------------------------------- On s’inspire de l’exemple : `Autoregressive Moving Average (ARMA): Sunspots data `__. .. code:: ipython3 import matplotlib.pyplot as plt from statsmodels.graphics.tsaplots import plot_acf, plot_pacf .. parsed-literal:: c:\python36_x64\lib\site-packages\statsmodels\compat\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead. from pandas.core import datetools Exercice 4 : caler un modèle à changement de régime --------------------------------------------------- Voir `MarkovAutoregression `__ ou `Gaussian HMM of stock data `__. Exercice 5 : calculer la série décalée -------------------------------------- Voir méthode `shift `__. Exercice 6 : calculer la performance de prédiction de la veille pour le lendemain --------------------------------------------------------------------------------- C’est la prédiction la plus simple mais toute performance en deça du chiffre obtenue veut tout simplement dire que le modèle prédictif évalué ne prédit pas mieux que la valeur de la veille. Exercice 7 : caler une régression linéaire ------------------------------------------ On note :math:`Z_t = X_t - X_{t-1}`. Estimer un modèle :math:`Z_t = \sum_{i=1}^7 \alpha_i Z_{t-i}`. Garder les quatre derniers mois comme base de test. Exercice 8 : remplacer la random forest par un arbre de décision ---------------------------------------------------------------- Quel est le meilleur modèle ?