2A.ml - Séries temporelles

Prédictions sur des séries temporelles et autres opérations classiques.

In [1]:
from jyquickhelper import add_notebook_menu
add_notebook_menu()
Out[1]:
run previous cell, wait for 2 seconds
In [2]:
%matplotlib inline

Une série temporelle

On récupère le nombre de sessions d'un site web : xavierdupre_sessions.csv.

In [3]:
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/')
Out[3]:
'xavierdupre_sessions.csv'
In [4]:
import pandas
data = pandas.read_csv("xavierdupre_sessions.csv", sep="\t")
data.set_index("Date", inplace=True)
data.plot(figsize=(12,4))
Out[4]:
<matplotlib.axes._subplots.AxesSubplot at 0x2bb8d742128>
In [5]:
data[-365:].plot(figsize=(12,4))
Out[5]:
<matplotlib.axes._subplots.AxesSubplot at 0x2bb8dba3208>

Exercice 1 : tendance

Fonction detrend. Enlever la tendance.

In [6]:
from statsmodels.tsa.tsatools import detrend
In [7]:
 

Exercice 2 : enlever la saisonnalité

Avec deux fonctions seasonal_decompose ou fit_seasons

In [8]:
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.

In [9]:
import matplotlib.pyplot as plt
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
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
In [10]:
 

Exercice 4 : caler un modèle à changement de régime

Voir MarkovAutoregression ou Gaussian HMM of stock data.

In [11]:
 

Exercice 5 : calculer la série décalée

Voir méthode shift.

In [12]:
 

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.

In [13]:
 

Exercice 7 : caler une régression linéaire

On note $Z_t = X_t - X_{t-1}$. Estimer un modèle $Z_t = \sum_{i=1}^7 \alpha_i Z_{t-i}$. Garder les quatre derniers mois comme base de test.

In [14]:
 

Exercice 8 : remplacer la random forest par un arbre de décision

Quel est le meilleur modèle ?

In [15]: