¿Cómo fusionar datos mensuales, diarios y semanales?


11

Google Trends devuelve datos semanales, así que tengo que encontrar una manera de combinarlos con mis datos diarios / mensuales.

Lo que he hecho hasta ahora es dividir cada serie en datos diarios, por ejemplo:

desde:

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

a:

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

Pero esto está agregando mucha complejidad a mi problema. Estaba tratando de predecir búsquedas en Google a partir de los valores de los últimos 6 meses, o 6 valores en datos mensuales. Los datos diarios implicarían un trabajo en 180 valores pasados. (Tengo 10 años de datos, así que 120 puntos en datos mensuales / 500+ en datos semanales / 3500+ en datos diarios)

El otro enfoque sería "fusionar" datos diarios en datos semanales / mensuales. Pero surgen algunas preguntas de este proceso. Algunos datos pueden promediarse porque su suma representa algo. Lluvia, por ejemplo, la cantidad de lluvia en una semana dada será la suma de las cantidades de cada día que compone las semanas.

En mi caso, estoy tratando con precios, tasas financieras y otras cosas. Para los precios, es común en mi campo tener en cuenta el volumen intercambiado, por lo que los datos semanales serían un promedio ponderado. Para las tasas financieras es un poco más complejo ya que algunas fórmulas están involucradas para construir tasas semanales a partir de las tasas diarias. Por lo demás, no sé las propiedades subyacentes. Creo que esas propiedades son importantes para evitar indicadores sin sentido (un promedio de tasas fiables sería una falta de sentido, por ejemplo).

Entonces tres preguntas:

Para propiedades conocidas y desconocidas, ¿cómo debo proceder para pasar de datos diarios a semanales / mensuales?

Siento que dividir datos semanales / mensuales en datos diarios como lo he hecho es algo incorrecto porque estoy introduciendo cantidades que no tienen sentido en la vida real. Entonces, casi la misma pregunta:

Para propiedades conocidas y desconocidas, ¿cómo debo proceder para pasar de datos semanales / mensuales a diarios?

Por último, pero no menos importante: cuando se dan dos series de tiempo con diferentes pasos de tiempo, ¿qué es mejor: usar el paso de tiempo más bajo o el más grande? Creo que esto es un compromiso entre la cantidad de datos y la complejidad del modelo, pero no veo ningún argumento sólido para elegir entre esas opciones.

Editar: si conoce una herramienta (en R Python incluso Excel) para hacerlo fácilmente, sería muy apreciada.


para python, la herramienta estándar es pandas. Fue diseñado específicamente para lidiar con series de datos financieros. pandas
timeseries

¿Le gustaría ampliar un poco lo que quiere decir con "propiedad desconocida"?
TheGrimmScientist

Respuestas:


8

cuando se dan dos series de tiempo con diferentes pasos de tiempo, ¿qué es mejor: usar el paso de tiempo más bajo o el más grande?

Para su análisis de series de tiempo, debe hacer ambas cosas: llegar a la mayor granularidad posible con el conjunto de datos diario y también repetir el análisis con el conjunto de datos mensual. Con el conjunto de datos mensual, tiene 120 puntos de datos, lo que es suficiente para obtener un modelo de serie temporal incluso con la estacionalidad en sus datos.

Para propiedades conocidas y desconocidas, ¿cómo debo proceder para pasar de datos diarios a semanales / mensuales?

Para obtener datos semanales o mensuales de los datos diarios, puede usar las funciones de suavizado. Para los datos financieros, puede usar el suavizado de promedio móvil o exponencial, pero si no funcionan para sus datos, puede usar la función de suavizado de splines "smooth.spline" en R: https://stat.ethz.ch/R -manual / R-patched / library / stats / html / smooth.spline.html

El modelo devuelto tendrá menos ruido que el conjunto de datos diario original, y puede obtener valores para los puntos de tiempo deseados. Finalmente, estos puntos de datos se pueden usar en su análisis de series de tiempo.

Para propiedades conocidas y desconocidas, ¿cómo debo proceder para pasar de datos semanales / mensuales a diarios?

Para obtener datos diarios cuando tiene datos mensuales o semanales, puede usar la interpolación. Primero, debe encontrar una ecuación para describir los datos. Para hacer esto, debe trazar los datos (por ejemplo, el precio a lo largo del tiempo). Cuando conoces factores, esta ecuación debe estar influenciada por esos factores. Cuando se desconocen los factores, puede usar una ecuación de mejor ajuste. La más simple sería una función lineal o una función lineal por partes, pero para los datos financieros esto no funcionará bien. En ese caso, debe considerar la interpolación spline cúbica por partes. Este enlace entra en más detalles sobre posibles funciones de interpolación: http://people.math.gatech.edu/~meyer/MA6635/chap2.pdf .

En R, hay un método para hacer la interpolación de datos de series de tiempo. Aquí crearía un vector con dichos valores semanales y NA en los espacios para los valores diarios, y luego usaría la función "interpNA" para obtener los valores interpolados para los NA. Sin embargo, esta función utiliza la función "aprox" para obtener los valores interpolados, que aplica una interpolación lineal o constante. Para realizar la interpolación spline cúbica en R, debe utilizar la función "splinefun" en su lugar.

Algo a tener en cuenta es que los modelos de series de tiempo generalmente hacen algún tipo de promedio para pronosticar valores futuros, ya sea que esté buscando métodos de suavizado exponencial o de media móvil integrada autorregresiva (ARIMA), entre otros. Por lo tanto, un modelo de serie temporal para pronosticar valores diarios puede no ser la mejor opción, pero los modelos semanales o mensuales pueden ser mejores.


Parece ser una respuesta práctica. No estoy seguro de si esto es aplicable a series de tiempo financieras debido al arbitraje.
lcrmorin

Creo que las respuestas a sus preguntas siguen siendo válidas. Para el modelo de series de tiempo, es posible que desee ver los modelos ARCH (Heteroscedasticidad condicional autorregresiva).
gchaks

cuando interpola utilizando, por ejemplo, spline cúbico, en series de tiempo financieras, ¿no estaría introduciendo un sesgo a futuro? ¿Creo que esto podría ser particularmente importante si se implementa para un modelo de aprendizaje automático?
tsando

5

No soy un experto en esta área, pero creo que su pregunta se refiere a la agregación y desagregación de series temporales . Si ese es el caso, aquí hay algunos recursos con suerte relevantes, que podrían ser útiles para resolver su problema (los primeros cinco elementos son principales, pero representativos, y los dos últimos son complementarios):


2

Esta no será una respuesta muy satisfactoria, pero aquí está mi opinión ...

Para propiedades conocidas y desconocidas, ¿cómo debo proceder para pasar de datos diarios a semanales / mensuales?

Para propiedades conocidas y desconocidas, ¿cómo debo proceder para pasar de datos semanales / mensuales a diarios?

La misma respuesta para ambos: no puede hacer esto para propiedades desconocidas, y para propiedades conocidas dependerá de cómo se calcularon los valores.

Como aludiste a:

(un promedio de tasas fiables sería una falta de sentido, por ejemplo)

No existe una transformación única que sea apropiada en todos los casos, ya sea que las propiedades / valores sean conocidos o desconocidos. Incluso con propiedades conocidas, es probable que necesite una transformación única para cada tipo: media, mediana, modo, mínimo, máximo, booleano, etc.

cuando se dan dos series de tiempo con diferentes pasos de tiempo, ¿qué es mejor: usar el paso de tiempo más bajo o el más grande?

Siempre que sea posible, intente preservar la granularidad completa del paso más pequeño posible. Suponiendo que sabe cómo transformar los valores, siempre puede acumular los pasos (por ejemplo, día a mes, mes a año) ... pero no necesariamente podrá reconstruir los pasos más pequeños de los más grandes después de una conversión con pérdidas .


2

Para propiedades conocidas y desconocidas, ¿cómo debo proceder para pasar de datos diarios a semanales / mensuales?

Agregación.

Por ejemplo, tiene el número de veces que las personas buscaron 'widgets' todos los días. Sume los totales diarios durante un mes para obtener los totales mensuales. Necesitaría ver más detalles sobre los datos reales recopilados en cada granularidad para darle una versión más completa.

Para propiedades conocidas y desconocidas, ¿cómo debo proceder para pasar de datos semanales / mensuales a diarios?

No puedes

En física, una idea comparable es la frecuencia de Nyquist . La idea general es que no puede agregar más información de la que ya tiene presente en sus datos sin traer más datos. Dado solo el día que alguien realizó una consulta, ¿cómo puede saber a qué hora del día se ejecutó esa consulta? Es posible que pueda hacer algunas inferencias, pero la única forma de responder a la pregunta es traer directa o indirectamente más información al sistema. Hay cosas que puede hacer para hacer suposiciones informadas sobre el estado diario de las variables mensuales (como se mencionó en Gchaks, interpolación), pero sus datos siguen siendo fundamentalmente datos mensuales estirados para que se vean diariamente.

Cuando se dan dos series de tiempo con diferentes pasos de tiempo, ¿qué es mejor: usar el paso de tiempo más bajo o el más grande?

Eso depende totalmente de lo que intentes responder.

La granularidad más pequeña será más sensible al ruido y otras anomalías. La granularidad lager podrá responder preguntas con mayor confianza, pero perderá algo de su utilidad. Por ejemplo, si está tratando de ver cuándo las personas comienzan a buscar lugares para los fines de semana para saber cuándo lanzar campañas de marketing para un nuevo club nocturno, querrá ver los datos diarios, si no más pequeños. Si está viendo la tendencia general de los clubes nocturnos para descubrir en quién quiere invertir, entonces probablemente sea mejor cada mes.


2

Poder agregar datos basados ​​en segmentos de fecha es muy sencillo con el software Tableau. Simplemente conectaría sus datos a la herramienta, y luego puede arrastrar y soltar las dimensiones métricas y de fecha en un espacio del cuerpo del informe. Tableau creará instantáneamente visualizaciones agregadas y / o tablas de datos detallados, sobre la marcha. Puede agrupar / sumar por año, trimestre, mes, semana, día, hora, etc. (funcionalidad estándar, integrada, lista para usar que ofrece la herramienta)

Además, si desea incorporar datos adicionales más adelante (lo que supongo es lo que quiere decir con 'propiedades desconocidas'), puede importar otro conjunto de datos y agregarlo fácilmente al primero, siempre que también ofrezca fechas.

Recomendaría revisar la versión gratuita, que creo que se llama Tableau Public.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.