Решение проблем автокорреляции в общей линейной модели на реальном применении

Устранение проблемы автокорреляции в общей линейной модели реальные примеры применения

Разбираемся с одной из самых распространенных кошмаров для специалистов по обработке данных

Введение

Один из самых больших проблем линейной регрессии – автокоррелированные остатки. В этой статье мы вновь рассмотрим линейную регрессию, изучим процедуру Кокрейна-Орката как способ решения этой проблемы и рассмотрим применение в реальном мире в анализе активации мозга методом анализа fMRI.

Фото Jon Tyson на Unsplash.

Пересмотр обобщенной линейной модели (GLM)

Линейная регрессия, вероятно, является одним из самых важных инструментов для любого специалиста по обработке данных. Однако часто можно заметить много неправильных представлений, особенно в контексте временных рядов. Поэтому давайте потратим немного времени на пересмотр этой концепции. Основная цель GLM в анализе временных рядов – это моделирование взаимосвязи между переменными на протяжении последовательности временных точек. Где Y – это целевые данные, X – данные признаков, B и A – коэффициенты для оценки, и Ɛ – это ошибка Гаусса.

Матричное представление GLM. Изображение автор.

Индекс указывает на временную эволюцию данных. Записывается в более компактной форме:

Матричное представление GLM. Изображение автор.

автор.

Оценка параметров производится с помощью обычных наименьших квадратов (OLS), которые предполагают, что ошибки, или остатки, между наблюдаемыми значениями и значениями, предсказанными моделью, независимы и идентично распределены (i.i.d).

Это означает, что остатки должны быть неавтокоррелированными, чтобы обеспечить правильную оценку коэффициентов, действительность модели и точность прогнозов.

Автокорреляция

Автокорреляция относится к корреляции между наблюдениями в рамках временного ряда. Мы можем понять это как связь каждой точки данных со значениями лага в последовательности.

Для выявления автокорреляции используются автокорреляционные функции (ACF). Эти методы измеряют корреляцию между точкой данных и ее отставшими значениями (t = 1,2,…,40), показывая, связаны ли точки данных с предшествующими или последующими значениями. Графики ACF (Рисунок 1) отображают коэффициенты корреляции при разных лагах, указывая силу автокорреляции и статистическую значимость в области тени.

Рисунок 1. График ACF. Изображение автора.

Если коэффициенты для определенных лагов значительно отличаются от нуля, это указывает на наличие автокорреляции.

Автокорреляция в остатках

Автокорреляция в остатках указывает на наличие связи или зависимости между текущими и прошлыми ошибками во временном ряду. Этот корреляционный шаблон указывает на то, что ошибки не являются случайными и могут быть подвержены влиянию факторов, не учтенных в модели. Например, автокорреляция может привести к предвзятым оценкам параметров, особенно в дисперсии, влияя на понимание взаимосвязей между переменными. Это приводит к недействительным выводам из модели, вносящим в заблуждение заключения о взаимосвязи между переменными. Кроме того, это приводит к неэффективным прогнозам, что означает, что модель не улавливает правильную информацию.

Процедура Кохрана-Оркутта

Процедура Кохрана-Оркутта – это метод, известный в эконометрике и в различных областях, предназначенный для решения проблем автокорреляции во временном ряде с помощью линейной модели для последовательной корреляции в остатках [1,2]. Мы уже знаем, что это нарушает одно из предположений обычной наименьших квадратов (OLS) регрессии, которая предполагает, что ошибки (остатки) не коррелированы [1]. Позже в статье мы воспользуемся этой процедурой, чтобы устранить автокорреляцию и проверить, насколько смещены коэффициенты.

Процедура Кохрана-Оркутта выглядит так:

  • 1. Начальная OLS регрессия: Начните с анализа регрессии с помощью обычных наименьших квадратов (OLS) для оценки параметров модели.
Начальное уравнение регрессии. Изображение автора.
  • 2. Расчет остатков: Рассчитайте остатки от начальной регрессии.
  • 3. Тест на автокорреляцию: Изучите остатки на наличие автокорреляции с помощью графиков ACF или тестов, таких как тест Дарбина-Уотсона. Если автокорреляция незначительна, нет необходимости продолжать процедуру.
  • 4. Преобразование: Оцененная модель преобразуется путем разности зависимых и независимых переменных для устранения автокорреляции. Идея заключается в том, чтобы сделать остатки более некоррелированными.
Формула Кохрана-Оркутта для авторегрессионного члена AR(1). Изображение автора.
  • 5. Регрессия в преобразованной модели: Выполните новый анализ регрессии с преобразованной моделью и рассчитайте новые остатки.
  • 6. Проверка на автокорреляцию: Проверьте новые остатки на наличие автокорреляции снова. Если автокорреляция сохраняется, вернитесь к шагу 4 и продолжайте преобразовывать модель, пока остатки не будут показывать незначительную автокорреляцию.

Оценка конечной модели: Когда остатки не показывают значительной автокорреляции, используйте окончательную модель и коэффициенты, полученные с помощью процедуры Кохрана-Оркутта, для выводов и заключений!

Прикладное использование: анализ функционального магнитно-резонансного изображения (fMRI)

Краткое введение в fMRI

Функциональное магнитно-резонансное изображение (fMRI) – это нейроимиджинговая техника, которая измеряет и отображает активность мозга путем обнаружения изменений кровотока. Она опирается на принцип того, что нейронная активность связана с увеличенным кровотоком и оксигенацией. В fMRI, когда область мозга активизируется, происходит гемодинамическая реакция, приводящая к изменениям в сигналах крови, зависящих от уровня кислорода (BOLD-сигнала) [2]. Данные fMRI обычно представляют собой 3D-изображения, которые отображают активацию мозга в разные моменты времени, поэтому каждый объем (воксель) мозга имеет свой собственный временной ряд (Рисунок 2).

Рисунок 2. Представление временного ряда (BOLD-сигнала) из вокселя. Изображение автора.

Общая линейная модель (GLM)

GLM предполагает, что измеренный сигнал fMRI является линейной комбинацией различных факторов (признаков), таких как информация о задаче, смешанная с ожидаемым откликом нейронной активности, который называется функцией гемодинамического отклика (HRF). Для простоты, мы проигнорируем природу HRF и просто предположим, что это важная особенность.

Чтобы понять влияние задач на результатирующий BOLD-сигнал y (зависимая переменная), мы собираемся использовать ГЛМ. Это означает проверку влияния через статистически значимые коэффициенты, связанные с информацией о задаче. Таким образом, X1 и X2 (независимые переменные) представляют собой информацию о задаче, выполненной участником сбора данных, свернутую с HRF (Рисунок 3).

Матричная формулировка ГЛМ. Изображение автора.

Применение на реальных данных

Для проверки этого применения в реальных условиях мы будем использовать данные, собранные профессором Жоао Сато в Федеральном университете ABC, которые доступны на GitHub. Независимая переменная fmri_data содержит данные из одного вокселя (одну временную последовательность), но мы можем провести это для каждого вокселя в мозге. Зависимые переменные, содержащие информацию о задаче, – это cong и incong. Объяснения этих переменных выходят за рамки данной статьи.

#Чтение данных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')#Получение временных последовательностей для каждого вокселяfmri_data = fmri_img.get_fdata()#Функция HRFHRF = glover(.5)#Свертка данных о задаче с HRFconv_cong = np.convolve(cong.ravel(), HRF.ravel(), mode='same')conv_incong = np.convolve(incong.ravel(), HRF.ravel(), mode='same')

Визуализация переменных информации о задаче (функций).

Рисунок 3. Информация о задаче, смешанная с гемодинамической функцией ответа (функции). Изображение автора.

Подгонка ГЛМ

Используя обычную наименьших квадратов для подгонки модели и оценки параметров модели, мы получаем

import statsmodels.api as sm#Выбор одного вокселя (временная последовательность)y = fmri_data[20,30,30]x = np.array([conv_incong, conv_cong]).T#Добавление константы в предикторыx = sm.add_constant(x)#Подгонка линейной регрессионной моделиmodel = sm.OLS(y,x).fit()#Просмотр сводки моделиprint(model.summary())params = model.params
BOLD-сигнал и регрессия. Изображение автора.
Коэффициенты ГЛМ. Изображение автора.

Можно увидеть, что коэффициент X1 является статистически значимым, так как P > |t| меньше 0,05. Это может означать, что задача действительно влияет на BOLD-сигнал. Но перед использованием этих параметров для выводов, необходимо проверить, не автокоррелированы ли остатки, то есть y минус прогноз.

Проверка автокорреляции остатков

Как уже обсуждалось, график ACF – это хороший способ проверить автокорреляцию во временной последовательности.

<!–Диаграмма автокорреляции. Изображение автора.

Рассмотрев диаграмму автокорреляции, можно обнаружить высокую автокорреляцию на основании лага 1. Поэтому эту линейную модель следует откорректировать, так как она содержит смещение.

Процедура Кохрана-Оркутта для устранения автокорреляции в остатках

Процедура Кохрана-Оркутта широко используется при анализе данных ФМРТ для решения подобных проблем [2]. В этом конкретном случае, автокорреляция на основании лага 1 в остатках статистически значима, поэтому мы можем использовать формулу Кохрана-Оркутта для авторегрессионного члена AR(1).

Формула Кохрана-Оркутта для авторегрессионного члена AR(1). Изображение автора.
# ЛАГ 0yt = y[2:180]# ЛАГ 1yt1 = y[1:179]# вычислить коэффициент корреляции для лага 1rho= np.corrcoef(yt,yt1)[0,1]# Уравнение Кохрана-ОркуттаY2= yt - rho*yt1X2 = x[2:180,1:] - rho*x[1:179,1:]

Подгонка преобразованной модели

Подгонка модели снова, но после коррекции по методу Кохрана-Оркутта.

import statsmodels.api as sm#добавить константу к предикторным переменнымX2 = sm.add_constant(X2)#подгонка линейной регрессионной моделиmodel = sm.OLS(Y2,X2).fit()#просмотреть сводку моделиprint(model.summary())params = model.params
Сигнал BOLD и преобразованная модель GLM. Изображение автора.
Коэффициенты GLM. Изображение автора.

Теперь коэффициент X1 уже не является статистически значимым, что отвергает гипотезу о влиянии задачи на сигнал BOLD. Стандартная ошибка оценки параметров значительно изменилась, что указывает на высокую влиятельность автокорреляции в остатках на оценку

Проверка наличия автокорреляции снова

Это имеет смысл, так как можно показать, что дисперсия всегда смещена при наличии автокорреляции [1].

Диаграмма автокорреляции. Изображение автора.

Теперь автокорреляция остатков была устранена и оценка не является смещенной. Если мы проигнорируем автокорреляцию в остатках, мы могли бы считать коэффициент значимым. Однако после удаления автокорреляции, оказывается, что параметр не является значимым, что предотвращает ложное умозаключение о связи задачи с сигналом.

Заключение

Автокорреляция в остатках общей линейной модели может привести к смещенным оценкам, неэффективным прогнозам и недействительным умозаключениям. Применение процедуры Кохрана-Оркутта к данным реальной ФМРТ демонстрирует ее эффективность в устранении автокорреляции из остатков и предотвращении ложных умозаключений, обеспечивая надежность параметров модели и точность выводов, сделанных в анализе.

Замечания

Cochrane-Orcutt – только один метод решения автокорреляции в остатках. Однако, существуют и другие способы решения этой проблемы, такие как процедура Hildreth-Lu и процедура первых разностей [1].

Благодарность

Этот проект вдохновлен Проф. Жоао Рикарду Сато.

Блокнот для этой статьи доступен здесь.

Ссылки

[1] Applied Regression Modeling, Iain Pardoe. Wileyl. 2023. https://online.stat.psu.edu/stat462/node/189/

[2] Sato JR, Takahashi DY, Cardoso EF, Martin Mda G, Amaro Júnior E, Morettin PA. Модели интервенций в идентификации функциональной связности, примененные к ФМРТ. Int J Biomed Imaging. 2006;2006:27483. doi:10.1155/IJBI/2006/27483