Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Encontrar periodicidad en una serie de tiempo categórico

Este ejemplo muestra cómo realizar un análisis espectral de datos de serie temporal con valores categóricos. El análisis espectral de series de tiempo con valores categóricos es útil cuando usted está interesado en el comportamiento cíclico de los datos cuyos valores no son inherentemente numéricos. Este ejemplo reproduce en parte el análisis reportado en Stoffer et al. (1988). Los datos se toman de Stoffer, Tyler y Wendt (2000).

Los datos provienen de un estudio de los Estados del sueño en los niños recién nacidos. Un neurólogo pediátrico anotó la grabación electroencefalográfica (EEG) de un bebé cada minuto durante aproximadamente dos horas. El neurólogo categorizó el estado de sueño del bebé en uno de los siguientes:

  • -Sueño tranquilo, traza alternanteqt

  • -Sueño tranquilo, alto voltajeqh

  • -Sueño transicionaltr

  • -Sueño activo, baja tensiónal

  • -Sueño activo, alto voltajeah

  • -Despiertaaw

Introduzca los datos. El bebé nunca estuvo despierto durante la grabación del EEG.

data = {'ah','ah','ah','ah','ah','ah','ah','ah','tr','ah','tr','ah', ...    'ah','qh','qt','qt','qt','qt','qt','tr','qt','qt','qt','qt','qt', ...    'qt','qt','qt','qt','qt','tr','al','al','al','al','al','tr','ah', ...    'al','al','al','al','al','ah','ah','ah','ah','ah','ah','ah','tr', ...    'tr','ah','ah','ah','ah','tr','tr','tr','qh','qh','qt','qt','qt', ...    'qt','qt','qt','qt','qt','qt','qt','qt','qt','qt','qt','qt','qt', ...    'qt','qt','tr','al','al','al','al','al','al','al','al','al','al', ...    'al','al','al','al','al','al','al','ah','ah','ah','ah','ah','ah', ...    'ah','ah','ah','tr'};  lend = length(data); t = 1:lend;

La forma más sencilla de analizar datos de series temporales con valores categóricos para patrones cíclicos implica asignar valores numéricos a las categorías. Hay al menos dos formas significativas de asignar valores a los Estados de sueño del bebé. En primer lugar, tenga en cuenta que puede ordenar los seis Estados de 1 a 6. Esta asignación tiene sentido a lo largo de la escala de menos activo a más activo.

Reemplace los seis Estados de suspensión por sus equivalentes numéricos y trace los datos.

states = ['qt';'qh';'tr';'al';'ah';'aw']; levelssix = [1 2 3 4 5 6];  for nn = 1:6     datasix(strcmp(data,states(nn,:))) = levelssix(nn); end  plot(t,datasix) axis([0 lend 0 6]) ax = gca; ax.YTick = [1 2 4 5]; grid xlabel('Minutes') ylabel('Sleep State')

Los datos exhiben un comportamiento cíclico cuando se centran en las transiciones entre los Estados más silenciosos (1 y 2) y los más activos (4 y 5). Para determinar el ciclo de ese comportamiento, utilice el análisis espectral. Recuerde que los Estados de sueño se asignan en intervalos de un minuto. El muestreo de los datos en intervalos de un minuto equivale a muestrear los datos 60 veces por hora.

Fs = 60; [Pxx,F] = periodogram(detrend(datasix,0),[],240,Fs);  plot(F,Pxx) grid xlabel('Cycles/Hour') title('Periodogram of Sleep States')

El análisis espectral muestra un pico claro que indica una oscilación dominante, o ciclo en los datos. Determine la frecuencia del pico.

[~,maxidx] = max(Pxx); Fsix = F(maxidx)
Fsix = 1.2500 

Los Estados de sueño del bebé exhiben comportamiento cíclico con una frecuencia de aproximadamente 1,25 ciclos/hora.

En lugar de asignar los Estados de sueño los valores 1 a 6, repita el análisis centrándose sólo en la distinción entre el sueño silencioso y activo. Asigne los Estados tranquilos y el valor 1.qtqh Asigne el estado de transición, el valor 2.tr Finalmente, asigne los dos Estados activos del sueño, y, el valor 3.alah Para completar, asigne el estado despierto,, el valor 4, aunque el estado no se produzca en los datos.aw

states = ['qt';'qh';'tr';'al';'ah';'aw']; levelsfou = [1 1 2 3 3 4];  for nn = 1:6     datafou(strcmp(data,states(nn,:))) = levelsfou(nn); end  plot(t,datafou) axis([0 lend 0 4]) ax = gca; ax.YTick = [1 2 3]; grid xlabel('Minutes') ylabel('Sleep State')

Con esta regla de asignación entre los Estados de suspensión y los valores 1 a 3, el comportamiento cíclico de los datos es más claro. Repita el análisis espectral con la nueva asignación.

[Pxx,F] = periodogram(detrend(datafou,0),[],240,Fs);  plot(F,Pxx) grid xlabel('Cycles/Hour') title('Periodogram of Sleep States')

 [maxval,maxidx] = max(Pxx); F(maxidx)
ans = 1.2500 

La nueva asignación no ha cambiado la conclusión. Los datos muestran una oscilación dominante a 1,25 ciclos/hora. Dado que la asignación entre los Estados de suspensión y los enteros que representan esos Estados era coherente, el análisis y las conclusiones no se vieron afectados. Sobre la base de un análisis espectral de estos datos categóricos, usted concluye que el estado de sueño del bebé ciclos entre el sueño silencioso y activo aproximadamente una vez cada hora.

References

Stoffer, David S., Mark S. Scher, Gale A. Richardson, Nancy L. Day, y Patricia A. Coble. "Un análisis de Walsh-Fourier de los efectos del consumo moderado de alcohol materno en el ciclo neonatal del sueño-estado." Vol. 83, 1988, PP. 954-963.Journal of the American Statistical Association.

Stoffer, David S., D. E. Tyler y d. e. Wendt. "El sobre espectral y sus aplicaciones." Vol. 15, 2000, PP. 224-253.Statistical Science.

Consulte también

|