Métodos para transformación de series se- cuenciales de R-Rs en series temporales.
Mario Estévez Báez
1Andrés Machado García
2José M. Estévez Carrera
3Material publicado originalmente en formato html en:
Html contributors. librosabietos:transformaci_on_de_secuencias_ordinales_en_temporales. InfoWiki. March 22, 2008, 08:50 CST. Available at:
http://infomed20.sld.cu/wiki/doku.php?id=librosabiertos:transformaci_on_de_secuencias_ordinales_en_temporales&rev=120 6193847. Accessed March 22, 2008.
Introducción
Uno de los aspectos que debe ser tomado en cuenta al efectuar el procesamiento de una secuencia de cardiointervalos R-R consecutivos, es el hecho de que la se- rie en cuestión es una secuencia ordinal y no temporal, como fue advertido por el Grupo de Trabajo de Normalización sobre estudios de la VRC (Task Force 1996).
Cuando nos enfrentamos con esta situación pueden tomarse diferentes partidos:
1. Dejar la serie como una secuencia ordinal y procesarla así mismo.
2. Dividir cada valor por la media aritmética de la serie total a procesar.
3. Aplicar algoritmos específicos que permitan efectuar la transformación a una serie temporal.
La primera opción fue muy empleada cuando no se conocían a fondo los inconve- nientes que este proceder puede traer. En el segundo caso, se resuelve el conflic- to si lo que deseamos es comparar situaciones de series de cardiointervalos con- secutivos tomados de un mismo individuo. Si se intenta aplicar para obtener valo- res relativos a un grupo de individuos pueden presentarse inconsecuencias para la aplicación de algunas técnicas de análisis matemático-estadístico. La tercera op- ción es la recomendada, variando los algoritmos de acuerdo con los criterios de diferentes autores. Cada variante posee sus ventajas y limitaciones. En este acá- pite, presentaremos tres de los algoritmos más empleados y se presentarán de modo que se comprenda a fondo el proceso aplicado en cada caso. No será nece- sario tener conocimientos avanzados de Matemáticas para ello.
1
Doctor en Medicina, Especialista de Fisiología de Segundo Grado, Investigador Titular, Profesor Consultante, Doctor en Ciencias Médicas, Académico Titular AIA, Instituto de Endocrinología y Enfermedades Metabólicas MINSAP.
2
Licenciado en Cibernética-Matemática, Profesor Auxiliar, Maestro en Ciencias de la Computación Facultad de Biología, Universidad de La Habana, MES.
3
Licenciado en Informática, Instituto Superior de Medicina Militar “Dr. Luis Díaz Soto”
Algoritmo de Nidekker
Posiblemente, uno de los primeros procedimientos publicados en la literatura mé- dica especializada, para hacer frente a la inconsecuencia de emplear las series ordinales de cardiointervalos R-R en cálculos de indicadores en el dominio de la frecuencia, fue el de una investigadora del Instituto de Problemas Médico Biológi- cos de la antigua URSS, Irina Guiorguievna Nidekker (Nidekker, 1981). A este procedimiento le denominaremos en lo adelante algoritmo de Nidekker. La autora sugirió modificar los valores observados en una secuencia ordinal de cardiointer- valos de la manera que se muestra en la Tabla 1, como mostraremos más adelan- te.
Tabla 1 .Secuencia ordinal original Orden R-R en
ms.
1 730
2 725
3 735
4 740
5 715
6 710
7 725
8 735
9 740
10 735
11 730
12 725
13 720
14 730
15 735
16 740
Se seleccionará un período de muestreo fijo con un valor determinado, por ejem-
plo 1000 ms., y se calculará entonces el número de ciclos cardíacos, o fracción del
mismo, que corresponderían a cada valor nuevo seleccionado. En este caso, en el
valor en tiempo de la serie correspondiente a 1000 ms, habría 730/730 ciclos car-
díacos, correspondientes al primer cardiointervalo R-R y además 270/725 ciclos
cardíacos correspondientes al segundo cardiointervalo R-R. Por tanto, para el va-
lor 1000 ms de la serie de cardiointervalos R-R, se podría considerar que la fre-
cuencia correspondiente del corazón sería de 1.372413793 ciclos cardíacos por la
unidad de tiempo seleccionada (en este caso 1000 ms, o sea, 1 segundo).
Se continuaría el cálculo de igual modo, para los períodos ulteriores, 2000, 3000, 4000, ... , hasta que concluya la serie de cardiointervalos. Las frecuencias cardía- cas así calculadas, podrían sustituir a los valores ordinales de la serie, habiéndose de hecho efectuado una transformación de la secuencia ordinal de valores de los cardiointervalos R-R, por una secuencia temporal.
Los valores así calculados podrían entonces someterse a procedimientos de aná- lisis espectral o de autocorrelación, sin introducir los inconvenientes que genera el uso de los valores ordinales.
Una ventaja adicional de la aplicación del algoritmo de Nidekker es la de producir un "suavizado" de la serie que se procesa, que reduce el efecto del "aliasing" para las frecuencias de la banda de alta frecuencia (150 - 400 mHz).
Muestra de aplicación del algoritmo de Nidekker
Pongamos por caso el ejemplo que se utilizó de la secuencia de 16 cardiointerva- los R-R del acápite anterior:
La duración de la secuencia de cardiointervalos R-R de esta serie es de 11670 ms; por lo tanto, si utilizamos como período de análisis el valor 1000 ms., podre- mos calcular solamente 11 valores, que corresponderían a los diferentes períodos de análisis (1000, 2000, ... , 11000 ms.). Los cálculos se muestran el la siguiente tabla. Veamos los cálculos:
Tabla 2 Cálculos para aplicar algoritmo de Nidekker
T (ms) Cálculos Resultados
(CC/1000ms) 1000 ms 730/730 + 270/725 1.3724138 2000 ms 455/725 + 545/735 1.3690828 3000 ms 190/735 + 740/740 + 70/715 1.3564055 4000 ms 645/715 + 355/710 1.4020979 5000 ms 355/710 + 645/725 1.3896552 6000 ms 80/725 + 735/735 + 185/740 1.3603448 7000 ms 555/740 + 445/735 1.3554422 8000 ms 290/735 + 710/730 1.3671606 9000 ms 20/730 + 725/725 + 255/720 1.3815639 10000 ms 465/720 + 535/730 1.3787100 11000 ms 195/730 + 735/735 + 70/740 1.3617179 Nota: CC_ ciclos cardiacos.
Los resultados se expresan con magnitud de frecuencia (ciclos cardíacos por uni- dad de período seleccionado cc/p). Este procedimiento se puede modificar para transformar los valores en períodos equivalentes. A esta posibilidad, la denomina- remos algoritmo de Nidekker modificado. Para ello, tomando en cuenta que
T= 1/ F ,
donde T _periodo y F _frecuencia, se aplica la siguiente transformación:
Valor (ms) = 1 / Valor calculado (en cc/p)
Por ejemplo:
Valor = 1 / 1.3724138 = 0.728643 s = 728.643 ms.
Algoritmo de Berger
En el año 1986, un importante colectivo de autores (Berger et al 1986), publicó un trabajo en respuesta a un artículo de R.W. DeBoer y colaboradores (1984). Estos autores llamaron la atención sobre el hecho de que DeBoer et al. 1984, afirmaban que conocían el algoritmo utilizado por Berger et al, y éstos, para precisar que no era así, presentaron en detalles su algoritmo y lo compararon con otros, discutien- do de manera muy esclarecedora diferentes conceptos de gran significación teóri- ca y práctica.
El algoritmo de Berger et al (1986) se aplica a una secuencia de cardiointervalos, definiendo de antemano una frecuencia de discretización de la frecuencia cardia- ca. Esta frecuencia, ellos la fijan generalmente en 4 Hz, debido a que esto les permite obtener estimados confiables de la densidad espectral entre DC y 1 Hz.
Para cada punto de la frecuencia de discretización seleccionada, se crea una ven- tana local, centrada en ese punto, y que tiene una duración igual al doble del pe- ríodo de muestreo. Si la frecuencia escogida es de 4 Hz, la ventana tiene una du- ración total de 500 ms: 250 ms antes del punto donde se va a calcular la nueva frecuencia de la secuencia y 250 ms a partir de dicho punto.
El valor de la frecuencia cardiaca para cada punto será el número de ciclos car- diacos (o fracción) dentro de la ventana local centrada para ese punto, calculán- dose la frecuencia cardiaca para cada punto según la expresión:
f
s= f
m* n
i/ 2 ;
donde f
s_ frecuencia correspondiente para la nueva secuencia en el punto anali- zado; f
m:_ frecuencia de muestreo decidida de antemano para la nueva secuen- cia; y n
i:_ número de cardiointervalos o fracción comprendidas en la ventana.
El algoritmo en cuestión, como señalan sus autores, no puede ser aplicado en tiempo real, ya que se requiere que para cada punto haya información anterior e información por ocurrir. Por ello, sería necesario introducir un retardo para el cál- culo. No obstante, este inconveniente no existe para procedimientos "off-line", o sea, los que se realizan con posterioridad al registro de la señal ECG original. La señal de frecuencia cardiaca que se produce como resultado de la aplicación del algoritmo, puede ser considerada como muestras de una señal escalonada de la señal de la frecuencia cardiaca, convolucionada con una ventana rectangular ("boxcar"). La convolución de la señal de frecuencia cardiaca tiene el efecto en el espectro de potencia de una multiplicación por un filtro pasa-bajo, cuya forma es:
donde V(f) :_Forma del filtro aplicado por la ventana; f :_ frecuencias discretas y fm :_al igual que antes se definió, frecuencia de muestreo de la nueva secuencia.
Este filtro deja pasar muy poca energía más allá de la frecuencia de Nyquist, ge- neralmente llamada Fc (Ver “Resolución y aliasing” en otra parte de esta obra), pero introduce significativos artefactos en las frecuencias espectrales entre ( 1/2 Fc ) y la Fc , donde Fc :_frecuencia de Nyquist. Esta distorsión se reduce dividien- do los valores de cada frecuencia discreta del espectro de salida de la FFT por V(f) .
Resulta conveniente no tomar en consideración los valores de frecuencias por en- cima de 1/2Fc . Cuando la frecuencia de muestreo utilizada para la aplicación del algoritmo de Berger et al es de 4 Hz, la Fc será de 2Hz, por lo cual, como el es- pectro útil se encuentra entre DC y 0.4 Hz, no se reflejarán estas distorsiones en los resultados. En general, para frecuencias de muestreo de 1.5 a 2 Hz no se ob- servarán efectos sobre los cálculos realizados.
Uno de nuestros colaboradores, para su trabajo de Diploma para la obtención del Título de Ingeniero Nuclear, estudió e implementó un algoritmo para el cálculo del procedimiento de Berger en lenguaje Pascal Objeto, que hemos optimizado para su aplicación con leguaje Delphi. (Sánchez, 1995). En el próximo acápite se mues- tra un ejemplo de cálculo del algoritmo, para facilitar la comprensión.
Muestra de aplicación
Escogiendo una frecuencia de muestreo para la nueva secuencia de cardiointerva- los de 4 Hz, tendríamos una ventana local de 500 ms. para cada punto en la se- cuencia original. En la Tabla solo se muestran los primeros puntos de la nueva serie. Los resultados se expresan con magnitud de frecuencia (ciclos cardíacos por uni- dad de período seleccionado cc/p). Al igual que se analizó con el algoritmo de Nidekker también es posible utilizar el algoritmo para calcular los periodos equivalentes..
A esta posibilidad la denominamos como algoritmo de Berger modificado. Para ello, tomando en cuenta que T = 1 / F, donde T_periodo y F_frecuencia, se aplica la siguiente transformación:
Valor (ms) = 1 / Valor calculado (en cc/p)
Por ejemplo:
Valor = 1 / 1.36986 = 0.7299999... s = 729.99 ms.
Punto en la
secuencia Cálculos Resultado en
CC/ 250ms 250 ms 4*((250/730+250/730)/2) 1.36986...
500 ms. 4*(((230/730+20/725)+(250/725))/2) 1.37496...
750 ms. 4*((250/725+(205/725+45/735))/2) 1.37762...
1000 ms. 4*((250/735+250/735))/2) 1.36054...
1250 ms 4*(((190/735+60/740)+(250/740))/2) 1.35484...
1500 ms 4*(((250/740+(180/740+70/715))/2) 1.35796...
1750 ms 4*((250/715+250/715)/2 1.39860...
2000 ms 4*(((145/715+105/710)+(250/710))/2 1.40559...
2250 ms 4*((250/710)+(105/710+145/725)/2) 1.40000...
Algoritmo de interpolación
La interpolación es un método matemático que se inserta en la problemática de la aproximación de las funciones. En general, en el análisis numérico, existe una gran aplicación de tres tipos fundamentales de funciones aproximantes:
1. Funciones que tienen la forma 1,x,...,x
n, cuyas combinaciones lineales con- forman toda la clase de los polinomios de grado no superior a n.
2. Funciones trigonométricas del tipo sen ( a
ix ) y cos( a
ix ), que generan las series de Fourier y la integral de Fourier.
3. Funciones exponenciales del tipo e
ai
x.
Vamos a concentrarnos en la aproximación vinculada a los polinomios. Tomemos el caso para ello, de una función aproximante que sea un polinomio dado de un grado " n ". La función se suele representar como Pn(x) . Ésta posee la forma:
El criterio de aceptación consiste en la determinación de la "distancia" entre las funciones a aproximar y la aproximante, debiéndose buscar el tipo de función aproximante que logre una mínima "distancia" entre ambas.
Entre los criterios más difundidos de aceptación se encuentra el criterio de Ché- bishev. Este criterio está fundado en la concepción de "distancia" como magnitud máxima de desviación de la función φ respecto a la función f en los nodos x
i:
El caso que presenta mayor interés, está dado, cuando para la función aproximan- te la distancia ρ
1= 0 . Ello quiere decir, que para una función debidamente tabula- da y = f (x) , que esté representada por sus valores: y
i= f
i= f(x
i) ,
se requiera construir la función aproximante φ(x) , tal que φ(x
i) = y
i.
Es precisamente este método de aproximación, basado en el criterio de coinciden- cia de f y φ en los nodos x
ial que se le llama interpolación.
Método de iteración-interpolación
En la interpolación vamos a enfrentar, generalmente, dos situaciones. La primera
es la que corresponde a series de valores que aparecen en nodos uniformemente
espaciados. Es este, de manera frecuente, el caso de las tablas. Por ejemplo,
pongamos el caso de valores de la función y = sen(x) que se encuentren entre
46 y 52 grados angulares:
x 46º 47º 48º 49º 50º 51º 52º y 0.7198 0.7314 0.7431 0.7547 0.7660 0.7771 0.7880
Como podemos observar, los valores de la función son presentados para interva- los espaciados de modo uniforme; en este caso: cada un grado.
La otra situación sería la de valores que se tienen, pero que han sido obtenidos en puntos de la función con intervalos irregulares. Veamos el caso con otro ejemplo, usando valores de la función logarítmica y = ln x :
x 2 3 5
y 0.6931 1.0986 1.6094
Aquí podemos ver que los valores que tenemos a nuestra disposición se encuen- tran para intervalos que no están uniformemente distribuidos. Para cada caso, los métodos a emplear son diferentes.
Cuando se necesita determinar el valor de una función, digamos f(x) , en cierto punto x
*distinto de los nodos de interpolación, es conveniente la utilización del método de iteración-interpolación de Aitken. El método es, propiamente hablando, un método de interpolación lineal sucesiva. El proceso para el cálculo de f(x
*) ra- dica en lo siguiente. Se numeran los nodos de interpolación, por ejemplo, en el orden en que los mismos se alejan de x
*, y se construye la siguiente tabla:
.
x
4P
04P
12,4x
2P
02P
20,2,4P
10,2P
30,1,2,4x
0P
00P
20,1,2...
P
11,0P
30,1,2,3x
1P
01P
20,1,3P
11,3x
3P
03.
Aquí:
es un polinomio interpolador de grado no superior al primero, construido sobre los nodos x
iy
y
j:
Este otro es un polinomio interpolador de grado no superior al segundo, construido sobre los nodos x
i,
x
j,
x
k.
Continuándose este proceso, se llega al polinomio que se muestra seguidamente, que constituye la base de aplicación del método:
Calculando sucesivamente, con la ayuda de la anterior fórmula, todos los valores
P
n0,1,...,n(x
*) ,
son tomados por las sucesivas aproximaciones de f(x
*) .
El proceso de cálculo se concluye cuando el valor absoluto de la diferencia de dos
aproximaciones sucesivas llega a ser suficientemente pequeño. En el próximo
acápite se muestra un ejemplo, aplicado a una serie de cardiointervalos R-R.
Muestra de Aplicación
Tengamos una serie de cardiointervalos R-R constituida por 16 cardiointervalos y cuyos valores se muestran en la próxima Tabla:
# ms
1 970
2 980
3 970
4 945
5 965
6 980
7 970
8 930
9 935
10 950
11 960
12 935
13 935
14 955
15 970
16 970
Al parecer, los valores que tenemos de la serie, se encuentran en nodos que se encuentran igualmente espaciados: "1, 2 ,..., 16" . No obstante, inmediatamente nos damos cuenta que estos nodos son solamente la indicación del orden de apa- rición de los valores de duración de los períodos cardíacos. Ello no constituye una dimensión válida. Cuando representamos en forma de histograma secuencial es- tos valores, captamos la misma información, pero de modo gráfico, como se muestra en el anterior diagrama secuencial.
Otro tipo de representación gráfica puede sernos más útil. Veamos a continuación un diagrama, en el que se muestra en el eje de las abscisas la escala del tiempo, en tanto en las ordenadas, dejamos el valor de la duración de los cardiointervalos R-R de la serie.
Aquí resulta evidente, que a los efectos del tiempo, los nodos, que estarían dados por los valores de duración de los cardiointervalos no están uniformemente espa- ciados y por tanto, si fuésemos a aplicar un método de interpolación para calcular el valor que podríamos haber obtenido en un momento diferente a los observados, sería necesario utilizar un método perteneciente a la segunda situación descrita en el acápite anterior. En el caso de SDSPlus, el método empleado es el de iteración- interpolación de Aitken, que fue descrito también en el acápite anterior. Este tipo de representación gráfica ha sido denominada "Serie de eventos discretos"
("Standards of Heart Rate Variability...1996"), o sea, la representación de la dura-
ción del cardiointervalo R-R
i-1en el momento de ocurrencia del cardiointervalo R-
R
i.
Vamos ahora a mostrar un ejemplo del cálculo, tomando en cuenta que solo con- sideraremos adecuado el valor de interpolación, cuando las diferencias divididas encontradas no superen a un milisegundo. En la tabla que se muestra a continua- ción, se muestran ahora la duración de los cardiointervalos y el valor de tiempo transcurrido desde el inicio de la serie para cada ocurrencia de un período cardía- co:
x
970 1950 2920 3865 4830 5810 6780 7710 8645y
970 980 970 945 965 980 970 930 935x 9595 10555 11490 12425 13380 14350 15320
y 950 960 935 935 955 970 970