2011-12-08 40 views
15

Acabo de comenzar a jugar con la clase ts para analizar algunos datos de series temporales que tengo.Analizando datos diarios/semanales usando ts en R

Tengo la sensación de que la clase ts no es adecuada para el análisis de datos diarios o semanales. Casi todos los ejemplos que veo en la web o en "Series de tiempo introductorio con R" de Cowpertwait y Metcalfe usan datos mensuales o anuales.

Me gustaría usar ts para analizar datos semanales, ¿no es aconsejable?

Respuesta

9

La clase ts es adecuada para cualquier tipo de datos que tengan intervalos estrictamente metronómicos entre observaciones. Si ese intervalo es años, meses, días o minutos, no hace ninguna diferencia. Esto lo hace muy adecuado para muchos datos científicos, p. observaciones del clima

Sin embargo, una gran clase de datos relacionados con el tiempo tiene lagunas. Tomemos como ejemplo los precios de cierre de acciones que no existen para los días de fin de semana. Para este tipo de datos, sería mejor utilizar los paquetes xts (series de tiempo extensibles) o zoo (observaciones ordenadas de Z, donde Z es la inicial de uno de los autores del paquete).

Enlaces a CRAN:

+0

Estoy de acuerdo en que ts no es una gran opción para situaciones donde el intervalo entre observaciones varía Sin embargo, el ejemplo de los precios de cierre diarios es (en mi opinión) relativamente pobre. El comercio no ocurre los fines de semana y Por lo general, nunca es necesario modelar en estos días. Es completamente estándar dentro de la industria financiera considerar los datos de stock diarios como si no hubiera días intermedios (ausentes). Para situaciones como esta, ts es generalmente una buena opción. – pmcs

3

La unidad de tiempo no entra en juego; solo el número de puntos de datos por unidad (la frecuencia) lo hace. En cuanto a ts y sus funciones se preocupan, un día es un año es una década es lo que sea. En ningún momento le dices que el tiempo hasta el que se trata es de una semana o un día. ¡No importa!

1

Supongo que el problema con los datos diarios/semanales es que ambos tienen unidades de salto. Cada cuarto año tiene un adicional de 366 días y cada cuarto año tiene 53 semanas. O lo ha tenido desde 1900. Entonces la "frecuencia" no es constante o una fracción. De lo contrario, ts debería funcionar bien.

La forma más fácil de pasar semanas es utilizar la fecha del comienzo de la semana. En sistemas unix, también puede usar semanas ISO, y también hay un paquete que los implementa. Por supuesto, si sus datos ya están en semanas, solo necesita estos para etiquetar los gráficos, etc.

10

El problema principal es que la mayoría de las personas que desean analizar datos diarios o semanales desean hacer algo como usar una frecuencia de 365 días por año o 52 semanas por año, pero el número de días o semanas en un año no es 365 o 52 o incluso constante. Si cae un día en años bisiestos en el caso de datos diarios, por ejemplo, o usa 7 días para cada semana del año, excepto uno que tiene 8 o 9 días en el caso de datos semanales, por ejemplo, puede fudgearlo. Una variedad infinita de esquemas es posible.

Lea a través de this thread para ver un ejemplo.

5

Zoo funciona bien con datos diarios. Por ejemplo, si tiene una serie diaria de flujos de flujo en un vector Q y con las marcas de fecha correspondientes D (creadas usando as.Date(), por ejemplo).

Q.z < - zoo (Q, order.by = D)

va a crear un objeto que va a trazar muy bien y se puede utilizar funciones como ventana() para extraer año individuales, por ejemplo,ventana

(Qz, start = as.Date ('2000-01-01'), final = as.Date ('2000-31-12')

Compruebe el paquete zoológico para obtener más información.

Cuestiones relacionadas