Risoluzione dei problemi di autocorrelazione nel modello lineare generale su un’applicazione del mondo reale |  di Rodrigo da Motta |  Dicembre 2023

 | Intelligenza-Artificiale

Approfondire uno degli incubi più comuni per i data scientist

introduzione

Uno dei maggiori problemi nella regressione lineare sono i residui autocorrelati. In questo contesto, questo articolo rivisita la regressione lineare, approfondisce la procedura Cochrane-Orcutt come un modo per risolvere questo problema ed esplora un’applicazione nel mondo reale nell’analisi dell’attivazione cerebrale fMRI.

fotografato da Jon Tyson SU Unsplash.

La regressione lineare è probabilmente uno degli strumenti più importanti per qualsiasi data scientist. Tuttavia, è comune vedere molti malintesi, soprattutto nel contesto delle serie temporali. Pertanto, investiamo un po’ di tempo rivisitando il concetto. L’obiettivo principale di un GLM nell’analisi delle serie temporali è modellare la relazione tra variabili su una sequenza di punti temporali. Dove Y sono i dati di destinazione, X sono i dati delle caratteristiche, B E UN i coefficienti da stimare e E è l’errore gaussiano.

Formulazione matriciale del GLM. Immagine dell’autore.

L’indice si riferisce all’evoluzione temporale dei dati. Scrivendo in una forma più compatta:

Formulazione matriciale del GLM. Immagine dell’autore.

dall’autore.

La stima dei parametri viene effettuata tramite i minimi quadrati ordinari (OLS), che presuppone che gli errori, o residuitra i valori osservati e i valori previsti dal modello, sono indipendenti e identicamente distribuiti (iid).

Ciò significa che i residui devono essere non autocorrelati per garantire la corretta stima dei coefficienti, la validità del modello e l’accuratezza delle previsioni.

L’autocorrelazione si riferisce alla correlazione tra le osservazioni all’interno di una serie temporale. Possiamo intenderlo come il modo in cui ciascun punto dati è correlato ai punti dati ritardati in una sequenza.

Le funzioni di autocorrelazione (ACF) vengono utilizzate per rilevare l’autocorrelazione. Questi metodi misurano la correlazione tra un punto dati e i suoi valori ritardati (t = 1,2,…,40), rivelando se i punti dati sono correlati ai valori precedenti o successivi. I grafici ACF (Figura 1) mostrano coefficienti di correlazione a diversi ritardi, indicando la forza dell’autocorrelazione e la significatività statistica sulla regione d’ombra.

Figura 1. Grafico ACF. Immagine dell’autore.

Se i coefficienti per determinati ritardi differiscono significativamente da zero, ciò suggerisce la presenza di autocorrelazione.

L’autocorrelazione nei residui suggerisce che esiste una relazione o dipendenza tra gli errori attuali e quelli passati nelle serie temporali. Questo modello di correlazione indica che gli errori non sono casuali e possono essere influenzati da fattori non presi in considerazione nel modello. Ad esempio, l’autocorrelazione può portare a stime distorte dei parametrisoprattutto nella varianza, influenzando la comprensione delle relazioni tra le variabili. Questo risulta in inferenze non valide tratte dal modelloportando a conclusioni fuorvianti sulle relazioni tra le variabili. Inoltre, risulta previsioni inefficientiil che significa che il modello non sta catturando le informazioni corrette.

La procedura Cochrane-Orcutt è un metodo famoso in econometria e in una varietà di aree per affrontare problemi di autocorrelazione in una serie temporale attraverso un modello lineare per la correlazione seriale nel termine di errore (1,2). Sappiamo già che ciò viola uno dei presupposti della regressione dei minimi quadrati ordinari (OLS), che presuppone che gli errori (residui) non siano correlati (1). Più avanti nell’articolo utilizzeremo la procedura per rimuovere l’autocorrelazione e verificare quanto sono distorti i coefficienti.

La procedura Cochrane-Orcutt è la seguente:

  • 1. Regressione OLS iniziale: Inizia con un’analisi di regressione iniziale utilizzando i minimi quadrati ordinari (OLS) per stimare i parametri del modello.
Equazione di regressione iniziale. Immagine dell’autore.
  • 2. Calcolo del residuo: Calcolare i residui della regressione iniziale.
  • 3. Test per l’autocorrelazione: Esaminare i residui per verificare la presenza di autocorrelazione utilizzando grafici ACF o test come il test di Durbin-Watson. Se l’autocorrelazione non è significativa non è necessario seguire la procedura.
  • 4. Trasformazione: Il modello stimato viene trasformato differenziando le variabili dipendenti e indipendenti per rimuovere l’autocorrelazione. L’idea qui è di rendere i residui più vicini all’essere non correlati.
Formula di Cochrane-Orcutt per il termine autoregressivo AR(1). Immagine dell’autore.
  • 5. Regredire il modello trasformato: Eseguire una nuova analisi di regressione con il modello trasformato e calcolare nuovi residui.
  • 6. Verifica l’autocorrelazione: Testare nuovamente l’autocorrelazione dei nuovi residui. Se l’autocorrelazione persiste, tornare al passaggio 4 e trasformare ulteriormente il modello finché i residui non mostrano alcuna autocorrelazione significativa.

Stima del modello finale: Una volta che i residui non mostrano alcuna autocorrelazione significativa, utilizzare il modello finale e i coefficienti derivati ​​dalla procedura di Cochrane-Orcutt per fare inferenze e trarre conclusioni!

Una breve introduzione alla fMRI

La risonanza magnetica funzionale (fMRI) è una tecnica di neuroimaging che misura e mappa l’attività cerebrale rilevando i cambiamenti nel flusso sanguigno. Si basa sul principio che l’attività neurale è associata ad un aumento del flusso sanguigno e dell’ossigenazione. Nella fMRI, quando una regione del cervello diventa attiva, innesca una risposta emodinamica, portando a cambiamenti nei segnali dipendenti dal livello di ossigeno nel sangue (BOLD). I dati fMRI consistono tipicamente in immagini 3D che rappresentano l’attivazione cerebrale in diversi momenti, pertanto ogni volume (voxel) del cervello ha la propria serie temporale (Figura 2).

Figura 2. Rappresentazione della serie temporale (segnale BOLD) da un voxel. Immagine dell’autore.

Il modello lineare generale (GLM)

Il GLM presuppone che il segnale fMRI misurato sia una combinazione lineare di diversi fattori (caratteristiche), come le informazioni sull’attività mescolate con la risposta attesa dell’attività neurale nota come funzione di risposta emodinamica (HRF). Per semplicità, ignoreremo la natura dell’HRF e supporremo semplicemente che sia una caratteristica importante.

Comprendere l’impatto delle attività sul segnale BOLD risultante y (variabile dipendente)useremo un GLM. Ciò si traduce nel controllare l’effetto attraverso coefficienti statisticamente significativi associati alle informazioni sull’attività. Quindi, X1 E X2 (variabili indipendenti) sono informazioni sull’attività eseguita dal partecipante attraverso la raccolta dati conversata con l’HRF (Figura 3).

Formulazione matriciale del GLM. Immagine dell’autore.

Applicazione su dati reali

Per verificare questa applicazione del mondo reale, utilizzeremo i dati raccolti dal Prof. João Sato presso l’Università Federale di ABC, disponibili su GitHub. La variabile indipendente fmri_data contiene dati da un voxel (una singola serie temporale), ma potremmo farlo per ogni voxel nel cervello. Le variabili dipendenti che contengono le informazioni sull’attività sono cong E incong. Le spiegazioni di queste variabili non rientrano nell’ambito di questo articolo.

#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')

Visualizzazione delle variabili delle informazioni sull’attività (funzionalità).

Figura 3. Informazioni sull’attività combinate con la funzione di risposta emodinamica (caratteristiche). Immagine dell’autore.

Montaggio GLM

Utilizzando i minimi quadrati ordinari per adattare il modello e stimare i parametri del modello, arriviamo 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

Segnale BOLD e regressione. Immagine dell’autore.
Coefficienti GLM. Immagine dell’autore.

È possibile vedere quel coefficiente X1 è statisticamente significativo, una volta P > |t| è inferiore a 0,05. Ciò potrebbe significare che l’attività ha effettivamente un impatto sul segnale BOLD. Ma prima di utilizzare questi parametri per fare inferenza, è essenziale verificare se i residui, ovvero meno predizione, non sono autocorrelati in alcun ritardo. Altrimenti la nostra stima è distorta.

Controllo dell’autocorrelazione dei residui

Come già discusso, il grafico ACF è un buon modo per verificare l’autocorrelazione nella serie.

Trama dell’ACF. Immagine dell’autore.

Osservando il grafico ACF è possibile rilevare un’elevata autocorrelazione al ritardo 1. Pertanto, questo modello lineare è distorto ed è importante risolvere questo problema.

Cochrane-Orcutt per risolvere l’autocorrelazione nei residui

La procedura Cochrane-Orcutt è ampiamente utilizzata nell’analisi dei dati fMRI per risolvere questo tipo di problemi (2). In questo caso specifico, l’autocorrelazione del ritardo 1 nei residui è significativa, pertanto possiamo utilizzare la formula di Cochrane–Orcutt per il termine autoregressivo AR(1).

Formula di Cochrane-Orcutt per il termine autoregressivo AR(1). Immagine dell’autore.
# 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:)

Adattamento del modello trasformato

Adattamento nuovo del modello ma dopo la correzione 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

Segnale BOLD e GLM trasformato. Immagine dell’autore.
Coefficienti GLM. Immagine dell’autore.

Ora il coefficiente X1 non è più statisticamente significativo, scartando l’ipotesi che il compito incida sul segnale BOLD. La stima dell’errore standard dei parametri è cambiata in modo significativo, il che indica l’elevato impatto dell’autocorrelazione nei residui della stima

Controllo di nuovo dell’autocorrelazione

Ciò ha senso poiché è possibile dimostrare che la varianza è sempre distorta quando c’è autocorrelazione (1).

Trama ACF. Immagine dell’autore.

Ora l’autocorrelazione dei residui è stata rimossa e la stima non è più distorta. Se avessimo ignorato l’autocorrelazione nei residui, potremmo considerare il coefficiente significativo. Tuttavia, dopo aver rimosso l’autocorrelazione, risulta che il parametro non è significativo, evitando una deduzione spuria che il compito sia effettivamente correlato al segnale.

L’autocorrelazione nei residui di un modello lineare generale può portare a stime distorte, previsioni inefficienti e inferenze non valide. L’applicazione della procedura Cochrane-Orcutt ai dati fMRI del mondo reale dimostra la sua efficacia nel rimuovere l’autocorrelazione dai residui ed evitare false conclusioni, garantendo l’affidabilità dei parametri del modello e l’accuratezza delle inferenze tratte dall’analisi.

Osservazioni

Cochrane-Orcutt è solo un metodo per risolvere l’autocorrelazione nei residui. Tuttavia, ce ne sono altri per affrontare questo problema come la Procedura Hildreth-Lu e la Procedura delle Prime Differenze (1).

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *