Resolución de problemas de autocorrelación en un modelo lineal general en una aplicación del mundo real |  de Rodrigo da Motta |  diciembre de 2023

Profundizando en una de las pesadillas más comunes para los científicos de datos

Introducción

Uno de los mayores problemas de la regresión lineal son los residuos autocorrelacionados. En este contexto, este artículo revisa la regresión lineal, profundiza en el procedimiento Cochrane-Orcutt como una forma de resolver este problema y explora una aplicación del mundo real en el análisis de la activación cerebral por resonancia magnética funcional.

Foto por Jon Tyson en desempaquetar.

La regresión lineal es probablemente una de las herramientas más importantes para cualquier científico de datos. Sin embargo, es común ver que se cometen muchos conceptos erróneos, especialmente en el contexto de las series temporales. Por lo tanto, dediquemos algo de tiempo a revisar el concepto. El objetivo principal de un GLM en el análisis de series temporales es modelar la relación entre variables en una secuencia de puntos temporales. Dónde Y son los datos de destino, X son los datos de la característica, B y A los coeficientes a estimar y Ɛ es el error gaussiano.

Formulación matricial del GLM. Imagen del autor.

El índice hace referencia a la evolución temporal de los datos. Escribiendo en una forma más compacta:

Formulación matricial del GLM. Imagen del autor.

por el autor.

La estimación de parámetros se realiza mediante mínimos cuadrados ordinarios (MCO), lo que supone que los errores, o derechos residuales de autorentre los valores observados y los valores predichos por el modelo, son independientes y están idénticamente distribuidos (iid).

Esto significa que los residuos no deben estar autocorrelacionados para garantizar la estimación correcta de los coeficientes, la validez del modelo y la precisión de las predicciones.

La autocorrelación se refiere a la correlación entre observaciones dentro de una serie de tiempo. Podemos entenderlo como cómo cada punto de datos se relaciona con puntos de datos rezagados en una secuencia.

Las funciones de autocorrelación (ACF) se utilizan para detectar la autocorrelación. Estos métodos miden la correlación entre un punto de datos y sus valores rezagados (t = 1,2,…,40), que revela si los puntos de datos están relacionados con los valores anteriores o siguientes. Los gráficos ACF (Figura 1) muestran coeficientes de correlación en diferentes retrasos, lo que indica la fuerza de la autocorrelación y la significancia estadística sobre la región de sombra.

Figura 1. Gráfico ACF. Imagen del autor.

Si los coeficientes de ciertos rezagos difieren significativamente de cero, sugiere la presencia de autocorrelación.

La autocorrelación en los residuos sugiere que existe una relación o dependencia entre los errores actuales y pasados ​​en la serie temporal. Este patrón de correlación indica que los errores no son aleatorios y pueden verse influenciados por factores no tenidos en cuenta en el modelo. Por ejemplo, la autocorrelación puede conducir a estimaciones de parámetros sesgadas, especialmente en la varianza, afectando la comprensión de las relaciones entre variables. Esto resulta en inferencias inválidas extraídas del modelo, lo que lleva a conclusiones engañosas sobre las relaciones entre variables. Es más, resulta en predicciones ineficienteslo que significa que el modelo no captura la información correcta.

El procedimiento Cochrane-Orcutt es un método famoso en econometría y en diversas áreas para abordar cuestiones de autocorrelación en una serie de tiempo a través de un modelo lineal de correlación serial en el término de error. [1,2]. Ya sabemos que esto viola uno de los supuestos de la regresión de mínimos cuadrados ordinarios (MCO), que supone que los errores (residuales) no están correlacionados. [1]. Más adelante en el artículo, utilizaremos el procedimiento para eliminar la autocorrelación y comprobar qué tan sesgados están los coeficientes.

El procedimiento Cochrane-Orcutt es el siguiente:

  • 1. Regresión MCO inicial: Comience con un análisis de regresión inicial utilizando mínimos cuadrados ordinarios (OLS) para estimar los parámetros del modelo.
Ecuación de regresión inicial. Imagen del autor.
  • 2. Cálculo residual: Calcule los residuos de la regresión inicial.
  • 3. Prueba de autocorrelación: Examine los residuos para detectar la presencia de autocorrelación utilizando gráficos ACF o pruebas como la prueba de Durbin-Watson. Si la autocorrelación no es significativa, no es necesario seguir el procedimiento.
  • 4. Transformación: El modelo estimado se transforma diferenciando las variables dependientes e independientes para eliminar la autocorrelación. La idea aquí es hacer que los residuos estén más cerca de no estar correlacionados.
Fórmula Cochrane-Orcutt para el término autorregresivo AR(1). Imagen del autor.
  • 5. Regresión del modelo transformado: Realice un nuevo análisis de regresión con el modelo transformado y calcule nuevos residuos.
  • 6. Verifique la autocorrelación: Pruebe nuevamente la autocorrelación de los nuevos residuos. Si la autocorrelación persiste, regrese al paso 4 y transforme aún más el modelo hasta que los residuos no muestren una autocorrelación significativa.

Estimación final del modelo: Una vez que los residuos no muestren una autocorrelación significativa, utilice el modelo final y los coeficientes derivados del procedimiento Cochrane-Orcutt para hacer inferencias y sacar conclusiones.

Una breve introducción a la resonancia magnética funcional

La resonancia magnética funcional (fMRI) es una técnica de neuroimagen que mide y mapea la actividad cerebral detectando cambios en el flujo sanguíneo. Se basa en el principio de que la actividad neuronal está asociada con un mayor flujo sanguíneo y oxigenación. En la resonancia magnética funcional, cuando una región del cerebro se activa, desencadena una respuesta hemodinámica que provoca cambios en las señales dependientes del nivel de oxígeno en sangre (BOLD). Los datos de la resonancia magnética funcional generalmente consisten en imágenes en 3D que representan la activación del cerebro en diferentes puntos temporales; por lo tanto, cada volumen (vóxel) del cerebro tiene su propia serie temporal (Figura 2).

Figura 2. Representación de la serie temporal (señal BOLD) a partir de un vóxel. Imagen del autor.

El modelo lineal general (GLM)

El GLM supone que la señal medida por fMRI es una combinación lineal de diferentes factores (características), como la información de la tarea mezclada con la respuesta esperada de la actividad neuronal conocida como función de respuesta hemodinámica (HRF). Para simplificar, ignoraremos la naturaleza del HRF y simplemente asumiremos que es una característica importante.

Comprender el impacto de las tareas en la señal BOLD resultante. y (variable dependiente), vamos a utilizar un GLM. Esto se traduce en comprobar el efecto a través de coeficientes estadísticamente significativos asociados con la información de la tarea. Por eso, X1 y X2 (variables independientes) son información sobre la tarea que fue ejecutada por el participante a través de la recolección de datos convolucionada con el HRF (Figura 3).

Formulación matricial del GLM. Imagen del autor.

Aplicación sobre datos reales

Para comprobar esta aplicación del Mundo Real, utilizaremos datos recopilados por el Prof. João Sato de la Universidad Federal de ABC, que está disponible en GitHub. La variable independiente datos_fmri contiene datos de un vóxel (una única serie temporal), pero podríamos hacerlo para cada vóxel del cerebro. Las variables dependientes que contienen la información de la tarea son cong y incong. Las explicaciones de estas variables están fuera del alcance de este artículo.

#Reading data
fmri_img = nib.load('/Users/rodrigo/Medium/GLM_Orcutt/Stroop.nii')
cong = np.loadtxt('/Users/rodrigo/Medium/GLM_Orcutt/congruent.txt')
incong = np.loadtxt('/Users/rodrigo/Medium/GLM_Orcutt/incongruent.txt')

#Get the series from each voxel
fmri_data = fmri_img.get_fdata()

#HRF function
HRF = glover(.5)

#Convolution of task data with HRF
conv_cong = np.convolve(cong.ravel(), HRF.ravel(), mode='same')
conv_incong = np.convolve(incong.ravel(), HRF.ravel(), mode='same')

Visualización de las variables de información de la tarea (características).

Figura 3. Información de la tarea mezclada con la función de respuesta hemodinámica (características). Imagen del autor.

Montaje de GLM

Usando mínimos cuadrados ordinarios para ajustar el modelo y estimar los parámetros del modelo, llegamos a

import statsmodels.api as sm

#Selecting one voxel (time series)
y = fmri_data[20,30,30]
x = np.array([conv_incong, conv_cong]).T

#add constant to predictor variables
x = sm.add_constant(x)

#fit linear regression model
model = sm.OLS(y,x).fit()

#view model summary
print(model.summary())
params = model.params

Señal BOLD y regresión. Imagen del autor.
Coeficientes GLM. Imagen del autor.

Es posible ver ese coeficiente X1. es estadísticamente significativo, una vez P > |t| es menor que 0,05. Eso podría significar que la tarea efectivamente afecta la señal BOLD. Pero antes de utilizar estos parámetros para hacer inferencias, es esencial comprobar si los residuos, lo que significa y menos predicción, no están autocorrelacionados en ningún retraso. De lo contrario, nuestra estimación está sesgada.

Comprobación de la autocorrelación de residuos

Como ya se ha comentado, el gráfico ACF es una buena forma de comprobar la autocorrelación en la serie.

Trama ACF. Imagen del autor.

Al observar el gráfico ACF es posible detectar una autocorrelación alta en el retardo 1. Por lo tanto, este modelo lineal está sesgado y es importante solucionar este problema.

Cochrane-Orcutt para resolver la autocorrelación en residuos

El procedimiento Cochrane-Orcutt se utiliza ampliamente en el análisis de datos de resonancia magnética funcional para resolver este tipo de problemas. [2]. En este caso específico, la autocorrelación de rezago 1 en los residuos es significativa, por lo que podemos utilizar la fórmula Cochrane-Orcutt para el término autorregresivo AR(1).

Fórmula Cochrane-Orcutt para el término autorregresivo AR(1). Imagen del autor.
# LAG 0
yt = y[2:180]
# LAG 1
yt1 = y[1:179]

# calculate correlation coef. for lag 1
rho= np.corrcoef(yt,yt1)[0,1]

# Cochrane-Orcutt equation
Y2= yt - rho*yt1
X2 = x[2:180,1:] - rho*x[1:179,1:]

Ajuste del modelo transformado

Ajustando nuevamente el modelo pero después de la corrección de Cochrane-Orcutt.

import statsmodels.api as sm

#add constant to predictor variables
X2 = sm.add_constant(X2)

#fit linear regression model
model = sm.OLS(Y2,X2).fit()

#view model summary
print(model.summary())
params = model.params

Señal BOLD y GLM transformado. Imagen del autor.
Coeficientes GLM. Imagen del autor.

Ahora el coeficiente X1 ya no es estadísticamente significativo, descartando la hipótesis de que la tarea impacte la señal BOLD. Los parámetros de estimación del error estándar cambiaron significativamente, lo que indica el alto impacto de la autocorrelación en los residuos de la estimación.

Comprobando la autocorrelación nuevamente

Esto tiene sentido ya que es posible demostrar que la varianza siempre está sesgada cuando hay autocorrelación. [1].

Trama ACF. Imagen del autor.

Ahora se eliminó la autocorrelación de los residuos y la estimación ya no está sesgada. Si hubiéramos ignorado la autocorrelación en los residuos, podríamos considerar el coeficiente significativo. Sin embargo, después de eliminar la autocorrelación, resulta que el parámetro no es significativo, evitando una inferencia espuria de que la tarea sí está relacionada con la señal.

La autocorrelación en los residuos de un modelo lineal general puede generar estimaciones sesgadas, predicciones ineficientes e inferencias no válidas. La aplicación del procedimiento Cochrane-Orcutt a datos de resonancia magnética funcional del mundo real demuestra su eficacia para eliminar la autocorrelación de los residuos y evitar conclusiones falsas, lo que garantiza la confiabilidad de los parámetros del modelo y la precisión de las inferencias extraídas del análisis.

Observaciones

Cochrane-Orcutt es sólo un método para resolver la autocorrelación en los residuos. Sin embargo, existen otros para abordar este problema como el Procedimiento Hildreth-Lu y el Procedimiento de Primeras Diferencias. [1].