Comment fusionner des données mensuelles, quotidiennes et hebdomadaires?

11

Google Trends renvoie des données hebdomadaires, je dois donc trouver un moyen de les fusionner avec mes données quotidiennes / mensuelles.

Ce que j'ai fait jusqu'à présent, c'est de décomposer chaque série en données quotidiennes, par exemple:

de:

2013-03-03 - 2013-03-09 37

à:

2013-03-03 37 2013-03-04 37 2013-03-05 37 2013-03-06 37 2013-03-07 37 2013-03-08 37 2013-03-09 37

Mais cela ajoute beaucoup de complexité à mon problème. J'essayais de prédire les recherches google à partir des valeurs des 6 derniers mois, ou 6 valeurs dans les données mensuelles. Les données quotidiennes impliqueraient un travail sur 180 valeurs passées. (J'ai 10 ans de données donc 120 points en données mensuelles / 500+ en données hebdomadaires / 3500+ en données quotidiennes)

L'autre approche consisterait à «fusionner» les données quotidiennes avec les données hebdomadaires / mensuelles. Mais certaines questions découlent de ce processus. Certaines données peuvent être moyennées car leur somme représente quelque chose. Précipitations par exemple, la quantité de pluie dans une semaine donnée sera la somme des quantités pour chaque jour composant les semaines.

Dans mon cas, je traite des prix, des taux financiers et d'autres choses. Pour les prix, il est courant dans mon domaine de prendre en compte le volume échangé, donc les données hebdomadaires seraient une moyenne pondérée. Pour les taux financiers, c'est un peu plus complexe car certaines formules sont impliquées pour construire des taux hebdomadaires à partir des taux journaliers. Pour les autres choses, je ne connais pas les propriétés sous-jacentes. Je pense que ces propriétés sont importantes pour éviter des indicateurs dénués de sens (une moyenne des taux fianciers serait un non-sens par exemple).

Donc trois questions:

Pour les propriétés connues et inconnues, comment dois-je procéder pour passer des données quotidiennes aux données hebdomadaires / mensuelles?

J'ai l'impression que la décomposition des données hebdomadaires / mensuelles en données quotidiennes comme je l'ai fait est quelque peu erronée car j'introduis des quantités qui n'ont aucun sens dans la vraie vie. Donc presque la même question:

Pour les propriétés connues et inconnues, comment dois-je procéder pour passer des données hebdomadaires / mensuelles aux données quotidiennes?

Dernier point mais non des moindres: lorsque l'on donne deux séries chronologiques avec des pas de temps différents, quoi de mieux: utiliser le pas de temps le plus bas ou le plus grand? Je pense que c'est un compromis entre le nombre de données et la complexité du modèle, mais je ne vois aucun argument solide pour choisir entre ces options.

Edit: si vous connaissez un outil (en R Python voire Excel) pour le faire facilement ce serait très apprécié.

lcrmorin
la source
pour python, l'outil standard est les pandas. Il a été spécialement conçu pour gérer les séries chronologiques de données financières. pandas timeseries
seanv507
Voulez-vous développer un peu ce que vous entendez par «propriété inconnue»?
TheGrimmScientist

Réponses:

8

quand on donne deux séries chronologiques avec des pas de temps différents, quoi de mieux: utiliser le pas de temps le plus bas ou le plus grand?

Pour votre analyse de la série temporelle, vous devez faire les deux: atteindre la granularité la plus élevée possible avec l'ensemble de données quotidien et répéter également l'analyse avec l'ensemble de données mensuel. Avec l'ensemble de données mensuel, vous disposez de 120 points de données, ce qui est suffisant pour obtenir un modèle de série temporelle même avec la saisonnalité de vos données.

Pour les propriétés connues et inconnues, comment dois-je procéder pour passer des données quotidiennes aux données hebdomadaires / mensuelles?

Pour obtenir, par exemple, des données hebdomadaires ou mensuelles à partir de données quotidiennes, vous pouvez utiliser des fonctions de lissage. Pour les données financières, vous pouvez utiliser le lissage à moyenne mobile ou exponentielle, mais si celles-ci ne fonctionnent pas pour vos données, vous pouvez utiliser la fonction de lissage de spline "smooth.spline" dans R: https://stat.ethz.ch/R -manual / R-patched / library / stats / html / smooth.spline.html

Le modèle renvoyé aura moins de bruit que l'ensemble de données quotidien d'origine, et vous pouvez obtenir des valeurs pour les points temporels souhaités. Enfin, ces points de données peuvent être utilisés dans votre analyse de la série temporelle.

Pour les propriétés connues et inconnues, comment dois-je procéder pour passer des données hebdomadaires / mensuelles aux données quotidiennes?

Pour obtenir des données quotidiennes lorsque vous disposez de données mensuelles ou hebdomadaires, vous pouvez utiliser l'interpolation. Tout d'abord, vous devriez trouver une équation pour décrire les données. Pour ce faire, vous devez tracer les données (par exemple, le prix au fil du temps). Lorsque vous connaissez des facteurs, cette équation doit être influencée par ces facteurs. Lorsque les facteurs sont inconnus, vous pouvez utiliser une équation de meilleur ajustement. La plus simple serait une fonction linéaire ou une fonction linéaire par morceaux, mais pour les données financières, cela ne fonctionnera pas bien. Dans ce cas, vous devriez envisager une interpolation de spline cubique par morceaux. Ce lien donne plus de détails sur les fonctions d'interpolation possibles: http://people.math.gatech.edu/~meyer/MA6635/chap2.pdf .

Dans R, il existe une méthode pour effectuer l'interpolation des données de série temporelle. Ici, vous créez un vecteur avec, par exemple, des valeurs hebdomadaires et des NA dans les intervalles pour les valeurs quotidiennes, puis utilisez la fonction "interpNA" pour obtenir les valeurs interpolées pour les NA. Cependant, cette fonction utilise la fonction "approx" pour obtenir les valeurs interpolées, qui applique une interpolation linéaire ou constante. Pour effectuer une interpolation de spline cubique dans R, vous devez utiliser la fonction "splinefun" à la place.

Il faut savoir que les modèles de séries temporelles effectuent généralement une sorte de moyenne pour prévoir les valeurs futures, que vous examiniez entre autres les méthodes de lissage exponentiel ou de moyenne mobile intégrée auto-régressive (ARIMA). Ainsi, un modèle de série temporelle pour prévoir les valeurs quotidiennes n'est peut-être pas le meilleur choix, mais les modèles hebdomadaires ou mensuels peuvent être meilleurs.

gchaks
la source
Semble être une réponse pratique. Je ne sais pas si cela s'applique aux séries temporelles financières en raison de l'arbitrage.
lcrmorin
Je pense que les réponses à vos questions sont toujours valables. Pour le modèle de série temporelle, vous voudrez peut-être regarder les modèles ARCH (AutoRegressive Conditional Heteroskedasticity).
gchaks
lorsque vous interpolez en utilisant par exemple une spline cubique, dans des séries temporelles financières, n'introduisez-vous pas un biais prospectif? je pense que cela pourrait être particulièrement important si la mise en œuvre d'un modèle d'apprentissage automatique?
tsando
5

Je ne suis pas un expert dans ce domaine, mais je pense que votre question concerne l' agrégation et la désagrégation des séries chronologiques . Si tel est le cas, voici quelques ressources, espérons-le, pertinentes, qui pourraient être utiles pour résoudre votre problème (les cinq premiers éléments sont principaux, mais représentatifs, et les deux derniers sont supplémentaires):

Aleksandr Blekh
la source
2

Ce ne sera pas une réponse très satisfaisante, mais voici mon point de vue ...

Pour les propriétés connues et inconnues, comment dois-je procéder pour passer des données quotidiennes aux données hebdomadaires / mensuelles?

Pour les propriétés connues et inconnues, comment dois-je procéder pour passer des données hebdomadaires / mensuelles aux données quotidiennes?

Même réponse pour les deux: vous ne pouvez pas faire cela pour les propriétés inconnues, et pour les propriétés connues, cela dépendra de la façon dont les valeurs ont été calculées.

Comme vous l'avez mentionné:

(une moyenne des taux fianciers serait un non-sens par exemple)

Il n'y a pas de transformation unique qui conviendra dans tous les cas, que les propriétés / valeurs soient connues ou inconnues. Même avec des propriétés connues, vous aurez probablement besoin d'une transformation unique pour chaque type: moyenne, médiane, mode, min, max, booléen, etc.

quand on donne deux séries chronologiques avec des pas de temps différents, quoi de mieux: utiliser le pas de temps le plus bas ou le plus grand?

Dans la mesure du possible, essayez de conserver la granularité complète de la plus petite étape possible. En supposant que vous savez comment transformer les valeurs, vous pouvez toujours cumuler les étapes (par exemple, de jour en mois, de mois en année) ... mais vous ne serez pas nécessairement en mesure de reconstruire des étapes plus petites à partir de plus grandes après une conversion avec perte .

Charlie Greenbacker
la source
2

Pour les propriétés connues et inconnues, comment dois-je procéder pour passer des données quotidiennes aux données hebdomadaires / mensuelles?

Agrégation.

Par exemple, vous avez le nombre de fois que les gens recherchent des «widgets» chaque jour. Additionnez les totaux quotidiens pour un mois pour obtenir des totaux mensuels. J'aurais besoin de voir plus de détails sur les données réelles collectées à chaque granularité pour vous donner une version plus complète.

Pour les propriétés connues et inconnues, comment dois-je procéder pour passer des données hebdomadaires / mensuelles aux données quotidiennes?

Tu ne peux pas.

En physique, une idée comparable est la fréquence de Nyquist . L'idée générale est que vous ne pouvez pas ajouter plus d'informations que ce que vous avez déjà dans vos données sans apporter plus de données. Étant donné uniquement le jour où une personne a exécuté une requête, comment pouvez-vous savoir à quelle heure de la journée cette requête a été exécutée? Vous pourrez peut-être faire des inférences, mais la seule façon de répondre à la question est d'apporter directement ou indirectement plus d'informations au système. Il y a des choses que vous pouvez faire pour faire des suppositions éclairées sur l'état quotidien des variables mensuelles (comme mentionné par gchaks, interpolation), mais vos données sont toujours fondamentalement des données mensuelles étirées pour être regardées quotidiennement.

Lorsque l'on donne deux séries chronologiques avec des pas de temps différents, quoi de mieux: utiliser le pas de temps le plus bas ou le plus grand?

Cela dépend totalement de ce que vous essayez de répondre.

La granularité plus petite sera plus sensible au bruit et à d'autres anomalies. La granularité de la bière blonde pourra répondre aux questions avec plus de confiance, mais perdra une partie de son utilité. Par exemple, si vous essayez de voir quand les gens commencent à rechercher des lieux pour planifier le week-end afin de savoir quand lancer des campagnes marketing pour une nouvelle boîte de nuit, vous voudrez peut-être consulter les données quotidiennes, sinon plus petites. Si vous regardez la tendance générale des boîtes de nuit pour savoir dans qui vous voulez investir, alors le mensuel serait probablement mieux.

TheGrimmScientist
la source
2

Être en mesure d'agréger des données en fonction de segments de date est un jeu d'enfant à l'aide du logiciel Tableau. Vous branchez simplement vos données dans l'outil, puis vous pouvez faire glisser et déposer les dimensions de mesure et de date sur un espace de corps de rapport. Tableau crée instantanément des visualisations agrégées et / ou des tableaux de données détaillés, à la volée. Vous pouvez regrouper / additionner par année, trimestre, mois, semaine, jour, heure, etc. (fonctionnalité standard, intégrée, prête à l'emploi offerte par l'outil)

De plus, si vous souhaitez incorporer des données supplémentaires ultérieurement (ce que je suppose être ce que vous entendiez par `` propriétés inconnues ''), vous pouvez importer un autre ensemble de données et l'ajouter facilement au premier, tant qu'il propose également des dates.

Je recommanderais de vérifier la version gratuite, qui je crois s'appelle Tableau Public.

Deepraj Kunnath
la source