使用EEGLAB分析脑电数据,情绪图片的ERP成分分析

Posted 猫猫头丁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用EEGLAB分析脑电数据,情绪图片的ERP成分分析相关的知识,希望对你有一定的参考价值。

使用EEGLAB分析脑电数据,情绪图片的ERP成分分析,超级详细,从头到尾,ERP分析看这一篇就够了(小菜狗的絮絮叨叨)

  • 一共分为6组图片,每张图片出现2s后有0.5s的间隔,每组图片中有20s间隔。在图片出现2s后,出现打分标记。其中201代表用户输入1,表示讨厌;202代表用户输入2,表示中性;203代表用户输入3,表示喜欢。
  • 获取数据后,对数据进行电极定位、设置重参考、滤波等预处理,进行ICA独立成分分析,之后叠加平均,分别分析枕叶、顶叶和颞叶部位的脑电成分,选取O1、O2、T7、T8、P3、P4电极进行分析。
  • 分析基本情绪和偏侧性之间相互作用,分别选取图片出现、100ms和200ms的时刻,画出脑地图,进行分析。

数据预处理

首先导入原始数据,我的原始数据是.cnt格式的。选择File -> Import data -> Using EEGLAB functions and plugins -> From Neuroscan.CNT file
在这里插入图片描述首先来看一下这次的数据
在这里插入图片描述此时实验中使用的数据共有67个通道,数据的总长度为2216486采样点,当前数据的段数为1,共有1320个事件,数据的采样率为1000Hz。数据从0s开始,到2216.485s结束。此时还没有设置参考点(unknown),也没有对通道进行定位(No),也没有对数据进行ICA独立成分分析(No),数据大小为612.6MB。这就是原始数据的一些基本信息。

接下来,进行电极定位
点击Edit -> Channel locations
在这里插入图片描述我使用自带的模型去定位电极,选择“use MNI coordinate file for BEM dipfit model”,点击OK
在这里插入图片描述通过Plot -> Channel locations -> By name 来看一下定位后的电极位置情况,如下:
在这里插入图片描述接下来,设置重参考
点击Tools -> Re-reference the data
在这里插入图片描述
一般情况下,选择平均参考或是双侧乳突电极作为参考

  • 平均参考使用所有电极的平均值,因此被认为对任何电极位置均无偏差。假设是在任何给定的时间点,容积导体的表面电位为零。

  • 双侧乳突参考核心假定是在双侧乳突的电极部位没有或较少有神经电生理活动。考虑到双侧乳突与颞枕区相邻,这些区域中与任务有关的电活动将不可避免的混入到双侧乳突参考的计算中。将会导致双侧颞枕区的电信号减弱,而远离双侧乳突部位(即中央额区)的信号被错误地增强。
    这个就看个人的选择,不过对于我们的实验应该影响不大(我猜的),
    如果想用平均参考就选择“Compute average reference”
    在这里插入图片描述如果想用双侧乳突参考就选择“Re-reference data to channel(s)”然后点击右边的三个点,浏览,选择M1和M2电极作为参考。
    在这里插入图片描述接下来开始滤波,看教程说高通滤波和低通滤波一起容易出错,所以最好一步一步来。
    首先我们高通滤波,点击Tool -> Filter the data -> Basic FIR filter(new,default)
    在这里插入图片描述高通滤波选择0.4,只有高于0.4Hz的波幅才会通过
    在这里插入图片描述
    低通滤波选择40,只有低于40Hz的波幅才会通过
    在这里插入图片描述接下来我们就可以开始runica啦!
    点击Tools -> Decompose data by ICA

在这里插入图片描述选择runica,点击OK
在这里插入图片描述
接下来会出来一个提示框,如下,千万不要点,这个是interrupt,也就是停止runica的意思。
在这里插入图片描述runica的时间非常长,我的数据612MB,大概两个多小时才跑完,在跑ICA的时候,大家可以吃个饭,睡个觉。
接下来跑完ICA之后的数据,最好先保存一下,以防忘记保存。
我这里就直接加载报完ICA的数据集,来看一下,此时Reference 后面变成了average,Channel location 后面变成了Yes,ICA weight后面变成了Yes,数据集也变大了。
在这里插入图片描述我们把全部67个点击通道的独立成分的脑地图画出来
点击Tools -> Inspect/label components by map
在这里插入图片描述点击OK
在这里插入图片描述画出的图像如下所示
在这里插入图片描述在这里插入图片描述这样大致看起来都还挺正常的(假装一本正经的说出来),但是1和3号电极是全蓝的,感觉应该多少有点异常(直觉觉得它俩指定有点问题),于是我们分别点击它俩,把它俩reject掉,如下:
在这里插入图片描述点最下面的“ACCEPT”,就会变成红色的“REJECT”
在这里插入图片描述这样,它俩都被我们reject掉了。
在这里插入图片描述

数据分析

数据预处理基本上就这样了,不过其实还可以做许多比如去除伪迹啊之类的,实在是本菜狗不知道怎么去做(大哭)。
那接下来我们就跳过那些预处理,进入到数据分析阶段,我在这个阶段,发现EEGLAB有个特别好用的插件ERPLAB,强烈推荐给你们,那我们就先安装ERPLAB。
点击File -> Manage EEGLAB extensions,这里是安装各种插件的地方
在这里插入图片描述选中ERPLAB,点击install
在这里插入图片描述很快就安装好啦。
接下来我们为我们的数据集创建事件清单Eventlist
点击我们刚刚安装好的ERPLAB -> EventList ->Create EEG EVENTLIST
在这里插入图片描述在我们想要保存的目录下保存,取名为event_list.txt,点击CREATE
在这里插入图片描述我们可以点开我们ERPLAB为我们写好的事件清单看一下,前面item就是给事件event的编号,ecode是标记,我们只需要看201 、 202 、 203就好。
在这里插入图片描述接下来我们写一个bin.txt文件也就是,等会儿给我们事件分类的一个箱子。
新建一个TXT文件,在里面写下如下。
第一行就是Bin x,注意,这里的x必须是从小到大,从1开始,就相当于给bin的一个编号。第二行,是我们人工的一个标注,标记这个bin里是什么样的数据,比如第一个是讨厌,就标记为“notlike”(其实可以使用hate,突然想起讨厌的英语是hate)。第三行是哪些标记的数据放进去,比如第一个是讨厌,它对应的编码是201,所以我们就在括号里面写201 。
我感觉这个格式还是挺好控制的。

在这里插入图片描述写好bin.txt文件,我们开始为事件event分配bin,每次做这一步,就会想起垃圾分类,你是什么垃圾,你是bin1,好,你就是bin1垃圾。
点击ERPLAB -> Assign bins(BINLISTER)
在这里插入图片描述

上面的Load Bin Descriptor File from选择我们刚刚写好的bin.txt文件,下面的Writing resulting eventlist to 选择“text file”
在这里插入图片描述在选择event_list.txt时,会出现如下提示框,点击“是”,替换掉刚刚的event_list.txt文件,也就是重写掉它。
在这里插入图片描述我们点开重写的event_list.txt,看看有哪些改变,可以看到上面有我们的三个分类,分别对应的事件个数和标签,而且下面201、 202、 203后面都有对应的bin标签
在这里插入图片描述
接下来我们就可以将event_list加入到数据集中来。
点击ERPLAB -> EventList -> Import EEG EVENTLIST from text file
在这里插入图片描述然后选择刚刚写好的event_list.txt,就可以啦!
接下来,我们开始分段
点击ERPLAB -> Extract bin-based epochs
在这里插入图片描述因为这次实验的事件标记是出现在图片出现的2s,我想研究从图片出现前100ms到图片消失(图片从出现到消失共2s)100ms之间的ERP成分,所以这里的时间段选择-2100 100,大家可以根据自己的需要分段,点击RUN。
在这里插入图片描述接下来我们开始叠加平均,
点击ERPLAB -> Compute averaged ERPs
在这里插入图片描述点击RUN
在这里插入图片描述
为了方便分析,我们最后再引入两个差异波。
点击ERPLAB -> ERP Operations -> ERP Bin Operations
在这里插入图片描述加入两个差异波,分别是bin2-bin1,bin3-bin1,就是波幅相减
在这里插入图片描述
OK!大功告成!画个图看看!
在这里插入图片描述左上可以选择想画的bin,左上二是时间,右上是选择电极

在这里插入图片描述在这里插入图片描述

真真正正的数据分析(小菜狗的嘴遁时间)

因为其实我对ERP还没有那么了解,只能说误打误撞,磕磕碰碰的琢磨了一些东西。给大家提供一个参考吧

P1成分

P1成分是第一个主要的视觉成分,通常起始于刺激后60-90ms,并于100-300ms达到峰值。P1成分与注意的早期视觉加工有关,并反映编码过程。不愉快的情绪图片比愉快情绪的图片在枕部诱发更大的P1振幅。
因为P1的最大幅值位于侧向枕叶电极,因此选择左枕(O1)和右枕(O2)通道在三种情绪下的振幅进行作图,并做出差异波的振幅图,如下:

在这里插入图片描述从左上和右上图可以看到,在图片刺激后60ms左右时间出现了一个正向的峰值即为p1成分,并在250ms也就是-1750ms左右达到峰值,也就是p2成分。可以看到在P1之后出现了一个负性的峰值,即为N1成分。
接下来结合差异波来看一下情绪对P1成分振幅的影响,下面两张图的横坐标刻度与上图相同。对应来看,很明显的看出,在P1达到峰值的时期,两个差异波都是负的,也就是说,讨厌所引起的振幅高于中性和喜欢,这和前人的研究结果吻合。不过,并未发现中性和喜欢之间有明显的的振幅差异。

EPN成分

EPN是出现在颞枕部位的一个负波,在视觉刺激呈现后250~350ms时达到峰值。EPN的振幅与情绪唤醒度相关,也与图片的情绪内容相关。愉快图片诱发的EPN明显大于不愉快图片诱发的EPN。
选择左颞(T7)和右颞(T8)通道在三种情绪下的振幅进行作图,并做出差异波的振幅图,如下:
在这里插入图片描述

从左上和右上图,可以很明显的看出在图片刺激出现后的200ms~400ms左右出现一个负波,并在250ms左右达到峰值,这就是EPN成分。
接下来,查看差异波找出情绪对EPN成分的影响。在EPN成分出现时,两种差异波都为正,也就是说喜欢和中性的图片刺激产生的振幅大于讨厌图片。由此,可以推断积极情绪产生的EPN振幅大于消极情绪。

LPP成分

LPP成分对视觉图像的情绪内容敏感,与中性情绪刺激相比,正性情绪和负性情绪刺激均能增大其振幅。LPP振幅的大小可以作为整个情绪图片呈现过程注意活动的客观指标,强调标识注意对动机激发性刺激的持续偏向和加工。LPP成分分布在中心-顶叶头皮,200ms就可以观测到,持续到1000ms。
分析顶叶位置电极,选择左顶(P3)和右顶(P4)通道在三种情绪下的振幅进行作图,并做出差异波的振幅图,如下:

在这里插入图片描述

从左上和右上图,可以很明显的看出在图片刺激出现后的200ms左右出现一个正波,并在350ms左右达到峰值,并持续大概400ms,到600ms(-1400ms)左右这就是LPP成分。
观察差异波发现,在LPP成分出现的时间,两种差异波都为负,也就是说讨厌所引起的振幅高于中性和喜欢,并且喜欢产生的振幅大于中性。然而,前人的研究显示,快乐的情绪产生的LPP波幅应该是大于恐惧和愤怒,在这次实验中,却恰恰相反。

情绪与偏侧性分析

下面分别是在图片出现(-2000ms)、图片出现100ms(-1900ms)和图片出现200ms(-1800ms)的脑地图。从上到下分别对应着讨厌、中性、喜欢、中性-讨厌和喜欢-讨厌。红色对应波幅正向,蓝色对应着波幅负向,越红越蓝对应着波幅越大。
首先看第1张图,在讨厌和喜欢图片出现的时刻,发现前-中脑部的振幅大于脑后部,并且在喜欢图片出现时刻发现一个右前部的偏侧性,脑右前部的振幅高于左前部。在中性图片出现时刻,发现中央电极位置振幅与前部和后部有明显的差异。
观察第2张图,可以发现在讨厌、中性和喜欢图片出现100ms之后,有一个很明显的右后偏侧性,中央位置都出现振幅低于周围的情况。在喜欢图片的脑地图中发现左前部的振幅相对较高。
第3张图是在图片出现200ms时的脑地图,在三种图片下,都能发现脑后部的电极振幅是明显大于脑前部的,这种差异在讨厌和喜欢图片条件下更为明显。
在这里插入图片描述就是这样啦,完整的报告我会上传到资源里面,大家也可以来私聊我,私发实验数据或是报告哦。

以上是关于使用EEGLAB分析脑电数据,情绪图片的ERP成分分析的主要内容,如果未能解决你的问题,请参考以下文章

延期通知脑影像机器学习专题培训班延期举办

2021年科大讯飞 基于脑电的情绪识别前三名队伍分享

一种基于脑电图情感识别的新型深度学习模型

论文泛读185考虑情绪成分过程模型的情绪识别

论文泛读185考虑情绪成分过程模型的情绪识别

R 数据可视化:PCA 主成分分析图