Pregunta:
Análisis de series de tiempo en Python
excray
2012-02-11 14:12:51 UTC
view on stackexchange narkive permalink

Soy un principiante en el análisis de series de tiempo. Tengo el modelo a continuación; y es las ventas del producto y x es la tasa de tweets:

$ y_t = ay_ {t-1} + by_ {t-2} + ... + cy_ {tm} + dx_t + ex_ {t -1} + ... + fx_ {tn} $

  1. ¿Cómo se llama este modelo? Supongo que se llama modelo AR, pero no estoy seguro, ya que la variable dependiente y también está en R.H.S.
  2. ¿Cómo soluciono el período de retraso, $ m $ y $ n $? ¿Pueden $ x $ y $ y $ tener retrasos diferentes?
  3. ¿Cómo puedo usar Python para construir este modelo y también predecir las ventas de $ t + 1 \ ldots t + n $? Cualquier solución para esto sin usar rpy.
Cambié su segundo término de RHS a $ by_ {t-2} $, ¿es correcto?
@Vivek: Si realmente se toma en serio la estimación de ese modelo (y me parece un modelo AR (m)), tendrá más posibilidades de usar R que Python. Especialmente porque el procedimiento de estimación para un modelo AR es bastante complejo y está integrado en R.
Cuatro respuestas:
Graeme Walsh
2013-05-24 05:07:20 UTC
view on stackexchange narkive permalink
  1. El modelo que tiene allí se llama Modelo Autoregresivo Distribuido Retraso (ARDL). Para ser específico, \ begin {ecuación} y_t = ay_ {t-1} + by_ {t-2} + ... + cy_ {tm} + dx_t + ex_ {t-1} + ... + fx_ {tn } \ end {ecuación} se puede llamar un modelo ARDL (m, n) y podemos escribir el modelo en una forma un poco más compacta como: \ begin {ecuación} y_ {t} = \ delta + \ sum_ {i = 1} ^ {m} \ alpha_ {i} y_ {ti} + \ sum_ {j = 0} ^ {n} \ beta_ {j} x_ {tj} + u_ {t} \ end {ecuación} donde $ u_ {t} \ sim IID (o, \ sigma ^ {2}) ~ \ forall ~ t $ y en este caso $ \ delta = 0 $.

  2. Los valores de my n no tiene que ser el mismo. Es decir, la longitud de retraso del término autorregresivo no tiene que ser igual a la longitud de retraso del término de retraso distribuido. Tenga en cuenta también que es posible incluir un segundo (o más) términos de retraso distribuidos (por ejemplo, $ z_ {tk} $). Hay diferentes formas de elegir las longitudes de retraso y para un tratamiento de este problema, lo remito a Capítulo 17 de Damodar Gujarati and Dawn Porter's Basic Econometrics (5th ed).

  3. Para construir un modelo como este en Python, podría valer la pena revisar statsmodels.tsa así como los otros paquetes mencionados en las otras respuestas.

+1. Algunos términos relacionados que puede valer la pena buscar en el OP son "Modelos de función de transferencia" y "Modelos de regresión de series de tiempo".
Josh Hemann
2012-03-13 20:13:29 UTC
view on stackexchange narkive permalink

Esta respuesta probablemente debería ser un comentario porque no voy a abordar las dos primeras preguntas, pero es demasiado larga ...

Puede hacer mucho trabajo estadístico en Python en estos días y con proyectos como statsmodels y pandas, es cada vez mejor. Para el análisis de series de tiempo, creo que la mejor opción actualmente es usar el paquete PyIMSL, que contiene una buena selección de funciones escritas en C para mayor velocidad (y gratis para uso no comercial). La documentación se puede encontrar aquí. (Revelación completa, solía trabajar para Rogue Wave Software).

Ahora bien, aunque uso Python para la mayor parte de mi trabajo analítico, para el modelado de series de tiempo he recurrido al excelente paquete de pronóstico en R de Rob Hyndman. Es difícil de superar, especialmente para trabajos de exploración.

El paquete Forecast en R parece estar destinado al análisis de series de tiempo univariadas.Por lo tanto, tengo dudas de que se pueda usar para ARDL.
Kirthi Raman
2012-03-13 20:01:42 UTC
view on stackexchange narkive permalink

También hay Análisis de mareas en Sourceforge.net. Compruebe esto también. A veces hay una cosa en una aplicación gratuita y se pierden algunas cosas que realmente desea.

http://sourceforge.net/projects/tappy/?source=directory

Matteo De Felice
2012-02-12 16:13:46 UTC
view on stackexchange narkive permalink

Bueno, al principio le sugiero que busque en Google un paquete de Python para manipular series de tiempo, como este http://statsmodels.sourceforge.net/. Por otro lado, si DEBE usar python (en lugar de R, por ejemplo) puede probar un enfoque de optimización para encontrar los mejores parámetros del modelo usando como función objetiva el error de predicción (MSE o RMSE).



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...