View
123
Download
0
Category
Preview:
Citation preview
11
Time SeriesTime Series
Séries ChronologiquesSéries Chronologiques
Georges GARDARINGeorges GARDARIN
22
PLANPLAN
DéfinitionDéfinition ObjectifsObjectifs Opérations de baseOpérations de base Opérations avancéesOpérations avancées CodageCodage ApplicationApplication
33
Importance de la dimension temporelle
La périodicité de la série n’importe pas
1. Définition1. Définition
L’analyse des séries temporelles s’intéresse à L’analyse des séries temporelles s’intéresse à la « dynamique » d’une variablela « dynamique » d’une variable
La suite d’observations (yt, tLa suite d’observations (yt, tЄЄT) d’une variable T) d’une variable y à différentes dates t est appelée série y à différentes dates t est appelée série temporelle. Habituellement T est dénombrable, temporelle. Habituellement T est dénombrable, de sorte que t=1…T.de sorte que t=1…T.
44
D'après WikipediaD'après Wikipedia
Une Une série temporellesérie temporelle est une suite de est une suite de valeurs numériquesvaleurs numériques représentant l' représentant l'évolutionévolution d'une d'une quantitéquantité spécifique au cours du spécifique au cours du tempstemps. .
De telles suites de valeurs peuvent être exprimées De telles suites de valeurs peuvent être exprimées mathématiquementmathématiquement afin d'en analyser le afin d'en analyser le comportementcomportement, généralement pour comprendre son évolution , généralement pour comprendre son évolution passéepassée et pour en prévoir le comportement et pour en prévoir le comportement futurfutur. .
Une telle transposition mathématique utilise le plus Une telle transposition mathématique utilise le plus souvent des concepts de probabilités et de statistique .souvent des concepts de probabilités et de statistique .
55
ExemplesExemples
Une série temporelle est donc toute suite Une série temporelle est donc toute suite d’observations, à des instants plus ou moins d’observations, à des instants plus ou moins réguliers, correspondant à la même variable réguliers, correspondant à la même variable
ExemplesExemples Economie : ventes d’une entreprise, Nombres Economie : ventes d’une entreprise, Nombres
d’employés, Revenus d’un individud’employés, Revenus d’un individu Finance : cours d'une action, volume vendu, Finance : cours d'une action, volume vendu,
moyenne des ventes, optionsmoyenne des ventes, options Ecologie : Températures, pressions, pluviométrie, Ecologie : Températures, pressions, pluviométrie,
Heures de soleil, vitesse du ventHeures de soleil, vitesse du vent Automobiles : trajectoires, vitesses, angles, Automobiles : trajectoires, vitesses, angles,
capteurscapteurs
66
Une série simpleUne série simple
TempsTemps <t<tii> de i = 1 à N> de i = 1 à N
VariableVariable Y = f(t)Y = f(t)
Il est possible d'avoir des variables numériques bien sûr; mais Il est possible d'avoir des variables numériques bien sûr; mais aussi booléennes, textuelles, etc.aussi booléennes, textuelles, etc.
TEMPSTEMPS 11 22 33 44 55 66 77 88 99 1010
VARIABLEVARIABLE 1010 1111 1515 1212 1616 1313 99 88 99 66
77
Représentation graphiqueReprésentation graphique
88
2. Objectifs2. Objectifs
Prévoir les valeurs futures
Relier les variables
Déterminer la causalité
Étudier des anticipations des agents
Repérer les tendances et cycles
Corriger des variations saisonnières
Détecter les chocs structurels
Contrôler les processus
99
De manière plus préciseDe manière plus précise
Trouver des tendancesTrouver des tendances Linéaire : y = a*t + b [+ Linéaire : y = a*t + b [+ ]] Exponentielle : y = k*a**t [+ Exponentielle : y = k*a**t [+ ]] Logistique : y = k / (1+e**(b-at)) [+ Logistique : y = k / (1+e**(b-at)) [+ ]] Hyperbolique : y k/t [+ Hyperbolique : y k/t [+ ]] [+ [+ ] est l'écart (variation accidentelle)] est l'écart (variation accidentelle)
Comparer deux time seriesComparer deux time series Définir des distances significativesDéfinir des distances significatives Conserver les patternsConserver les patterns
1010
Les tâches du Data MiningLes tâches du Data Mining
Trouver des séries similairesTrouver des séries similaires Trouver en base la série la plus proche d'une série Trouver en base la série la plus proche d'une série
donnéedonnée Classer automatiquement en N groupes de séries Classer automatiquement en N groupes de séries
similairessimilaires Classer dans des classes prédéfinies par un expertClasser dans des classes prédéfinies par un expert
Résumer des séries de N points (N très grand) Résumer des séries de N points (N très grand) en n points (n<<N)en n points (n<<N)
Détecter des événements (saisons, accidents, Détecter des événements (saisons, accidents, nouvelles, etc.)nouvelles, etc.)
1111
3. Opérations de base3. Opérations de base
Changement d'unité de tempsChangement d'unité de temps rollup ($group_size, $map_function )rollup ($group_size, $map_function ) extend ($group_size)extend ($group_size)
Opérations arithmétiquesOpérations arithmétiques substract(TimeSeries $sub)substract(TimeSeries $sub) add(TimeSeries $sub)add(TimeSeries $sub) multiply(TimeSeries $sub)multiply(TimeSeries $sub) Map($map_function)Map($map_function)
Opérations scalairesOpérations scalaires Scale(float k)Scale(float k) Plus(float k)Plus(float k)
1212
Opérations relationnellesOpérations relationnelles
filter($comparator, $value) filter($comparator, $value) série de bits en résultat (bitmap)série de bits en résultat (bitmap)
map($fun) map($fun) Projection généraliséeProjection généralisée
union ($NTS), intersection, differenceunion ($NTS), intersection, difference De bitmaps ou de multi-sériesDe bitmaps ou de multi-séries
join ($NTS)join ($NTS) S'applique aux multi-sériesS'applique aux multi-séries
1313
Multi-sériesMulti-séries
Multi-sériesMulti-séries
1 10 20
2 20 45
3 17 55
4 16 32
5 15 30
6 11 19
7 10 15
Jointure de
1 10
2 20
3 17
4 16
5 15
6 11
7 10
1 20
2 45
3 55
4 32
5 30
6 19
7 15
1414
Séries imbriquéesSéries imbriquées
1 {10, 20, 50}
2 {}
3 {17, 18}
4 {16}
5 {}
6 {10, 11, 15, 11}
7 {10}
Similaires aux séquences …
1515
4. Opérations statistiques4. Opérations statistiques
moment($window)moment($window) Calcul de la série variation sur N jour d'une série en Calcul de la série variation sur N jour d'une série en
relatif % (Momentum)relatif % (Momentum) centrer() centrer()
Calcul de la série centrée autour de 0 à partir d'une Calcul de la série centrée autour de 0 à partir d'une sériesérie
reduire()reduire() Calcul de la série réduite par écart typeCalcul de la série réduite par écart type
normer() = centrer() + réduire()normer() = centrer() + réduire() Elimine le facteur d'échelle pour comparerElimine le facteur d'échelle pour comparer
1616
Moyennes mobiles – Moyennes mobiles – Maverage($window)Maverage($window)
Donne une tendance Donne une tendance Exemple : MM 30 en bourseExemple : MM 30 en bourse
Moyenne mobile exponentielleMoyenne mobile exponentielle Privilégie les dernières valeursPrivilégie les dernières valeurs En pondérant par (1-En pondérant par (1-)**n, n étant le n° jour précédent)**n, n étant le n° jour précédent
MM 1MM 1 1010 11,511,5 1313 13,513,5 1414 14,514,5 1111 8,58,5 8,58,5 7,57,5
MM 3MM 3 1010 10,510,5 1212 12,612,6 14,314,3 13.613.6 12,612,6 1010 8,68,6 8,168,16
TEMPSTEMPS 11 22 33 44 55 66 77 88 99 1010
VARIABLEVARIABLE 1010 1111 1515 1212 1616 1313 99 88 99 66
1717
Operation sur WindowsOperation sur Windows
Fenêtre de taille $WinFenêtre de taille $Win Exemples :Exemples : Relative Strength IndexRelative Strength Index
Rsi = hausse /(hausse+baisse)Rsi = hausse /(hausse+baisse)
MomentumMomentum Mom = delta[j] – delta[j-$win] / valeur[$j]Mom = delta[j] – delta[j-$win] / valeur[$j]
Tendance linéaireTendance linéaire Trend = pente droite moindres carrésTrend = pente droite moindres carrés
Moyenne Mobile ExponentielleMoyenne Mobile Exponentielle Xavg = moyenne avec poids (1-Xavg = moyenne avec poids (1-αα) **N pour jours (j-N)) **N pour jours (j-N)
1818
Time Series (Sequence) Time Series (Sequence) avec XQuery 1.1avec XQuery 1.1
TEMPSTEMPS 11 22 33 44 55 66 77 88 99 1010
VariableVariable22 44 66 88 1010 1212 1414 88 99 66
2, 4, 6Tumbling 8, 10, 12 14, 8, 9 10, ...
Sliding 2, 4, 6
4, 6, 8
8, 10, 12
6, 8, 10
…………….
1919
Exemple de TS en XMLExemple de TS en XML
<stock> <stock> <closing> <date>2008-01-01</date> <price>105</price> <closing> <date>2008-01-01</date> <price>105</price> </closing ></closing > <closing> <date>2008-01-02</date> <price>101</price><closing> <date>2008-01-02</date> <price>101</price> </closing></closing> <closing> <date>2008-01-03</date> <price>102</price><closing> <date>2008-01-03</date> <price>102</price> </closing></closing> <closing> <date>2008-01-04</date> <price>103</price><closing> <date>2008-01-04</date> <price>103</price> </closing></closing> <closing> <date>2008-01-05</date> <price>102</price><closing> <date>2008-01-05</date> <price>102</price> </closing> </closing> <closing> <date>2008-01-06</date> <price>104</price><closing> <date>2008-01-06</date> <price>104</price>
</closing> </stock></closing> </stock>
2020
Les variables de fenêtres Les variables de fenêtres [W3C][W3C]
Window-variable: Bound to the sequence of items from the binding sequence Window-variable: Bound to the sequence of items from the binding sequence that comprise the window. that comprise the window.
Start-item:Start-item: (Optional) Bound to the first item in the window. (Optional) Bound to the first item in the window. Start-item-position:Start-item-position: (Optional) Bound to the ordinal position of the first window (Optional) Bound to the ordinal position of the first window
item in the binding sequence. item in the binding sequence. Start-previous-item:Start-previous-item: (Optional) Bound to the item in the binding sequence that (Optional) Bound to the item in the binding sequence that
precedes the first item in the window (empty sequence if none).precedes the first item in the window (empty sequence if none). Start-next-item:Start-next-item: (Optional) Bound to the item in the binding sequence that (Optional) Bound to the item in the binding sequence that
follows the first item in the window (empty sequence if none).follows the first item in the window (empty sequence if none).
End-item:End-item: (Optional) Bound to the last item in the window. (Optional) Bound to the last item in the window. End-item-position:End-item-position: (Optional) Bound to the ordinal position of the last window (Optional) Bound to the ordinal position of the last window
item in the binding sequence. item in the binding sequence. End-previous-item:End-previous-item: (Optional) Bound to the item in the binding sequence that (Optional) Bound to the item in the binding sequence that
precedes the last item in the window (empty sequence if none).precedes the last item in the window (empty sequence if none). End-next-item:End-next-item: (Optional) Bound to the item in the binding sequence that follows (Optional) Bound to the item in the binding sequence that follows
the last item in the window (empty sequence if none).the last item in the window (empty sequence if none).
2121
Exemple de XQuery Exemple de XQuery tumbling Window [W3C]tumbling Window [W3C]
for tumbling window $w in //closing start $first for tumbling window $w in //closing start $first next $second when $first/price < $second/price next $second when $first/price < $second/price end $last next $beyond when $last/price > end $last next $beyond when $last/price > $beyond/price return <run-up> <start-$beyond/price return <run-up> <start-date>{fn:data($first/date)}</start-date> <start-date>{fn:data($first/date)}</start-date> <start-price>{fn:data($first/price)}</start-price> <end-price>{fn:data($first/price)}</start-price> <end-date>{fn:data($last/date)}</end-date> <end-date>{fn:data($last/date)}</end-date> <end-price>{fn:data($last/price)}</end-price> </run-price>{fn:data($last/price)}</end-price> </run-up> up>
2222
5. Modèles de Time Series5. Modèles de Time Series
Permettent des classifications et des recherches de Permettent des classifications et des recherches de patterns plus efficacespatterns plus efficaces
Sont munis d'une fonction de distance significative Sont munis d'une fonction de distance significative (borne min, préservation de similarité, structure, …)(borne min, préservation de similarité, structure, …)
Plusieurs techniques proposéesPlusieurs techniques proposées Discrete Fourier TransformDiscrete Fourier Transform Discrete Wavelet TransformDiscrete Wavelet Transform Picewise Linear ModelPicewise Linear Model Picewise Constant ModelPicewise Constant Model Symbolic RepresentationSymbolic Representation Autoregressive ModelAutoregressive Model
2323
Transformation de Fourier Transformation de Fourier discrète (DFT)discrète (DFT)
Transforme le domaine du Transforme le domaine du temps en fréquencetemps en fréquence
La série est vue comme une La série est vue comme une fonction discrétisée somme fonction discrétisée somme de sinusoïdede sinusoïde
Remplace la série de N points Remplace la série de N points par K coefficients avec K très par K coefficients avec K très inférieur à Ninférieur à N
Conserve de bonnes Conserve de bonnes propriétés de distance : propriétés de distance : transfo. linéaire de Ctransfo. linéaire de CNN =>C =>CNN
Algorithmes efficaces pour Algorithmes efficaces pour calculer la DFTcalculer la DFT
Amplitude et Phase des sinusoîdes
2424
Modèles auto-régressifs Modèles auto-régressifs d'ordre p - AR(p)d'ordre p - AR(p)
Représentation générale AR(p) : Représentation générale AR(p) :
εεtt est une source d'aléatoire appelé bruit blanc. est une source d'aléatoire appelé bruit blanc. Propriétés : Propriétés :
1. E(1. E(εεt) = 0t) = 0 2. E(2. E(εεtt22)) = )) = σσ22
3. E(3. E(εεt * t * εεt)) = 0t)) = 0 Cas particulier : modèle régression linéaireCas particulier : modèle régression linéaire
ii = 0 pour i>1 = 0 pour i>1
2525
Modèle à pas constants Modèle à pas constants (PAA)(PAA)
Approximation par découpage Approximation par découpage en périodes de temps fixeen périodes de temps fixe
Réduction de N points à w Réduction de N points à w par approximation linéairepar approximation linéaire
Possibilité de mapper les Possibilité de mapper les coefficients coefficients CiCi sur des lettres sur des lettres a, b, c, … en divisant la a, b, c, … en divisant la variable y centrée-réduite en variable y centrée-réduite en intervalles équi-probables intervalles équi-probables
(Lin et. al. = modèle SAX)(Lin et. al. = modèle SAX)
2626
Distance / Similarité entre Distance / Similarité entre TSTS
Vecteurs de dimensions élevéesVecteurs de dimensions élevées Réduire les dimensionsRéduire les dimensions
Techniques classiques (seuils, Latence, …)Techniques classiques (seuils, Latence, …) Fenêtres : réduire à des fenêtres "sautantes"Fenêtres : réduire à des fenêtres "sautantes" Utiliser un modèle (ex: premiers coefs de DFT)Utiliser un modèle (ex: premiers coefs de DFT) Comparer des symboles (ex: +, -, =)Comparer des symboles (ex: +, -, =)
Permet l'application des techniques classiquesPermet l'application des techniques classiques Classification supervisée ou nonClassification supervisée ou non
2727
6. Application Bourse6. Application Bourse
Aider l'investisseur à choisirAider l'investisseur à choisir Trouver des actions similaires ou différentesTrouver des actions similaires ou différentes Définir et valider des stratégiesDéfinir et valider des stratégies Calculer des indicateursCalculer des indicateurs Analyser les dépêchesAnalyser les dépêches
2828
Actions : information Actions : information fondamentalesfondamentales
NOMNOM varchar(20)varchar(20) DésignationDésignation
CODECODE char(5)char(5) Code caractèresCode caractères
COURSCOURS decimal(7,2)decimal(7,2) Dernier cours ajustéDernier cours ajusté
PERPER decimal(5,2)decimal(5,2) Price Earning RatioPrice Earning Ratio
BNABNA decimal(5,2)decimal(5,2) Bénéfice Net par ActionBénéfice Net par Action
BNA1BNA1 decimal(5,2)decimal(5,2) Bénéfice Net par Action année +1Bénéfice Net par Action année +1
RECORECO decimal(5,2)decimal(5,2) Recommandation des analystes de Recommandation des analystes de 0 à 50 à 5
RENDREND decimal(5,2)decimal(5,2) Rendement distribuéRendement distribué
DETTADETTA decimal(7,2)decimal(7,2) Dette par actionDette par action
FONPAFONPA decimal(7,2)decimal(7,2) Fonds propres par actionFonds propres par action
2929
Cours : données Cours : données journalièresjournalières
CODECODE char(8)char(8) Code de l’actionCode de l’action
DATEDATE datedate Date d’observationDate d’observation
OPENOPEN decimal(7,2)decimal(7,2) Cours d’ouvertureCours d’ouverture
HIGHHIGH decimal(7,2)decimal(7,2) Cours le plus hautCours le plus haut
LOWLOW decimal(7,2)decimal(7,2) Cours le plus basCours le plus bas
CLOSECLOSE decimal(7,2)decimal(7,2) Cours de fermeture (dernier)Cours de fermeture (dernier)
VOLVOL intint VolumeVolume
AJUSTEAJUSTE decimal(7,2)decimal(7,2) Cours ajusté (div.s)Cours ajusté (div.s)
3030
3131
Indicateurs : données Indicateurs : données techniquestechniques
CODECODE char(5)char(5) Code de l’actionCode de l’action
MOM5MOM5 intint Momentum 5 = Variation relative sur Momentum 5 = Variation relative sur 5 jours5 jours
MM20MM20 decimal(7,2)decimal(7,2) Moyenne mobile 20Moyenne mobile 20
MM50MM50 decimal(7,2)decimal(7,2) Moyenne mobile 50Moyenne mobile 50
MACDMACD decimal(7,2)decimal(7,2) Ecart entre moyennes mobilesEcart entre moyennes mobiles
RSI14RSI14 decimal(7,2)decimal(7,2) 100-(100/(1+RS)) avec RS = 100-(100/(1+RS)) avec RS = ΣΣgains gains hausse/hausse/ΣΣperte baisseperte baisse
ADV10ADV10 decimal(7,2)decimal(7,2) ΣΣ (Volume * % avancée – volume % (Volume * % avancée – volume % déclin)déclin)
ROC10ROC10 decimal(7,2)decimal(7,2) (Cour0– Cours10)/Cours10(Cour0– Cours10)/Cours10
3232
Calcul des variables de Calcul des variables de décisionsdécisions
Décision dans un espace à N dimensionsDécision dans un espace à N dimensions Données fondamentales (résultats)Données fondamentales (résultats) Données techniques (ambiance)Données techniques (ambiance)
Caractériser chaque dimension par une variableCaractériser chaque dimension par une variable Issue des données précédentesIssue des données précédentes
Centrer réduire chaque variable pour rendre comparable Centrer réduire chaque variable pour rendre comparable x’ = (x - AVG (x)) / STDDEV(x)x’ = (x - AVG (x)) / STDDEV(x)
Attribuer un score à chaque action par combinaison des variablesAttribuer un score à chaque action par combinaison des variables Exemples : Exemples :
combinaison linéaire Score = combinaison linéaire Score = ΣΣ pi * x’i pi * x’i Réseaux de neurones Score = Ñ (x’0 … x’n)Réseaux de neurones Score = Ñ (x’0 … x’n)
Réglage des pi ou neurones sur le passé …Réglage des pi ou neurones sur le passé …
3333
Exemples de variables de Exemples de variables de décisiondécision
CODE CHAR(5) PRIMARY KEY REFERENCES ACTIONS,CODE CHAR(5) PRIMARY KEY REFERENCES ACTIONS,
PER_NO NUMERIC(7,2) , PER_NO NUMERIC(7,2) , /* PER réduit normé */ /* PER réduit normé */ REND_NO NUMERIC(7,2) ,REND_NO NUMERIC(7,2) , /* Rendement N réduit normé */ /* Rendement N réduit normé */ ROI_NO NUMERIC(7,2) , ROI_NO NUMERIC(7,2) , /* Rendement/Cours réduit normé *//* Rendement/Cours réduit normé */ CROIS_NO NUMERIC(7,2) , /* Croissance rendement réduite normée */CROIS_NO NUMERIC(7,2) , /* Croissance rendement réduite normée */ DETFP_NO NUMERIC(7,2) , DETFP_NO NUMERIC(7,2) , /* Dette sur fonds propres normés *//* Dette sur fonds propres normés */ RECO_NO NUMERIC(7,2), /* Recommandation des analystes normée */RECO_NO NUMERIC(7,2), /* Recommandation des analystes normée */ DELTA_NO NUMERIC(7,2), /* Ecart cours à moyenne mobile normée */DELTA_NO NUMERIC(7,2), /* Ecart cours à moyenne mobile normée */ RSI_NO NUMERIC(7,2) RSI_NO NUMERIC(7,2) /* RSI réduit normé *//* RSI réduit normé */ MACD_NO MACD_NO /* MACD normé *//* MACD normé */ ADV10_NOADV10_NO /* ADV10 normé *//* ADV10 normé */ ROC10_NO ROC10_NO /* ROC10 normé *//* ROC10 normé */
3434
Operation sur WindowsOperation sur Windows
Fenêtre de taille $WinFenêtre de taille $Win Exemples :Exemples : Rsi = hausse Rsi = hausse
/(hausse+baisse)/(hausse+baisse) Mom = delta[j] – delta[j-Mom = delta[j] – delta[j-
$win] / valeur[$j]$win] / valeur[$j] Trend = pente droite Trend = pente droite
moindres carrésmoindres carrés Xavg = moyenne mobile Xavg = moyenne mobile
exponentielleexponentielle
Interface Interface TimeSeriesStatsTimeSeriesStats
3535
Pont avec la BD Pont avec la BD relationnellerelationnelle
Import()Import() TS simple ou multiple alculée par une requête SQL TS simple ou multiple alculée par une requête SQL
à 1 ou N attributsà 1 ou N attributs Support des agrégats intéressant : MIN, Max, AVG Support des agrégats intéressant : MIN, Max, AVG
……
Export()Export() Faire persister en base une Time SeriesFaire persister en base une Time Series
3636
7. Conclusion7. Conclusion
Une approche intéressante pour beaucoup de Une approche intéressante pour beaucoup de phénomènes naturels ou économiquesphénomènes naturels ou économiques
Solides fondations mathématiquesSolides fondations mathématiques ModélisationModélisation DistancesDistances
Extensions possiblesExtensions possibles Multi-sériesMulti-séries Séries imbriquéesSéries imbriquées Localisation temporelleLocalisation temporelle
Recommended