EEGLAB系列教程5:数据预处理2(ICA去伪迹)

这篇具有很好参考价值的文章主要介绍了EEGLAB系列教程5:数据预处理2(ICA去伪迹)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

今天介绍EEG数据处理系列教程5,在前面的几期中,已经介绍了数据基本处理过程,可以参见以下链接:

EEGLAB系列教程1:安装和启动 EEGLAB

EEGLAB系列教程2:在 EEGLAB 中管理数据集

EEGLAB系列教程3:在 EEGLAB 中建立location

EEGLAB系列教程4:在 EEGLAB 中预处理数据1

在很久之前,我也利用analyzer软件进行了ICA去噪的教程分享,可以参考链接:

独立成分分析(ICA)

在运行ICA之前,通过前面的系列教程可以剔除了不好的通道和肉眼可见的不好数据段。然后在来运行ICA是更好的。

运行 ICA

对连续 EEGLAB 数据集进行ICA,选择Tools → Decompose data by ICA。将调用函数pop_runica。如使用默认选项运行 ICA,只需按OK即可。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

如使用高导联(128导及以上),可以将选择的commandline option参数进行修改,选取其中的一部分数据进行PCA提取成分。

正常运行过程:

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

ICA 算法

EEGLAB 允许尝试不同的 ICA 算法。Infomax ICA 使用runica、 Jader 算法使用jamer.m和 SOBI 算法使用sobi.m这些都是EEGLAB 默认算法。通过下拉选择即可选择算法。

另外需要使用 FastICA 算法,必须安装FastICA 工具箱并将其添加到MATLAB 路径中。

查看 ICA 成分

runica.m给出的成分顺序是按每个成分计算的 EEG 方差的降序排列。

IC成分激活(时间进程)

依时间进程查看IC成分,选择Plot → component activiations(scroll)。滚动浏览 ICA 激活,可以很容易地发现占特征伪影的成分。例如,在下面的展示中,成分 3 可能是眨眼成分。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

绘制2-D成分头皮图

绘制 2-D 头皮成分图,选择Plot → Component maps → In 2-D。然后由函数pop_topoplot生成交互式窗口(如下) 。只需按确定即可绘制所有成分。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

出现以下图片,显示所选成分头皮显示图。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

优化 ICA 分解的质量

ICA是利用机器学习的算法,对EEG数据进行成分分解。它是将所有训练数据都考虑在内,当训练数据中留下太多类型的噪声—复杂的运动伪影、电极坏道等,这些坏数据特征将对ICA分解会产生影响。因此,向 ICA 提供尽可能多的干净 EEG 数据才是最佳的。(剔除较大的明显的伪迹数据)

在 ICA 之前与自动伪迹剔除相关的问题

ICA 之前的自动伪迹剔除可能会删除部分数据(如:较大的眨眼等),当然这也可以通过 ICA方法进行校正。但是,降低自动伪迹剔除的阈值可能会保留太多 ICA 无法删除的伪迹。在这种情况下,推荐以下操作步骤:

  1. 从已最少清除伪迹(或仅删除坏通道)的数据集开始
  2. 在这个数据集上运行 ICA
  3. 识别不良 ICA 成分并从数据中删除
  4. 使用更严格的阈值或剔除伪迹方法再次清理ICA后的数据集,以删除数据的剩余伪迹部分
将 ICA 应用于分段数据而不是连续数据

一般来说,建议对连续数据使用 ICA,而不是已提取的分段数据。首先,分段数据已经减少了样本数量,当存在更多数据时,ICA 成分的质量会更高些。其次,删除分段数据的基线会对ICA 产生重大影响,因为它会在每个通道中引入随机偏移,这是 ICA 无法建模或补偿的。虽然可以提取分段时不删除基线,但是在运行 ICA 之后,基线可能会被删除。

将 ICA 应用于分段数据也是可能的。ICA 期望数据是平稳的,即相同的统计模型正在生成所有数据样本。如果您在 分段之后有足够的数据,那么分段数据可能更可取,因为它会更加稳定。但是,在对不同事件进行分段以生成不同数据集时,我们建议对所有条件使用相同的 ICA 分解。实际上,这可能意味着在运行 ICA 之前创建一个包含所有分段类型的数据集。假设所有数据在统计上相似,更多的数据通常会提供更好的 ICA 分解。更长的时期更可取,因为它们为 ICA 产生更多数据(假设平稳性成立。)

自动检测伪迹ICA成分

目前,Luca Pion-Tonachini的ICLabel插件是 EEGLAB 默认安装的 EEGLAB 插件,它提供了对每个独立成分(大脑、眼动、肌肉、线路噪声等)类型的估计。ICLabel 的目标是开发一种足够可靠和准确的脑电图 IC 分类器,可用于大规模研究。当前的分类器实现是在数千个手动标记的 IC 和数十万个未标记的 IC 上进行训练的。更多信息可以在ICLabel 参考文章中找到。

运行 ICA 后,选择菜单项Tools → Classify components using ICLabel → Label components。只需选择默认值,然后按 OK。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

将弹出以下窗口并要求绘制成分。只需按确定。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

单击一个成分将弹出一个窗口,包含其成分属性以及属于每种类型的估计概率。IC 成分将与它们最可能属于的类别以及属于该类别的可能性一起绘制。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

然后可以选择菜单项Tools → Classify components using ICLabel → Flag components as artifacts。默认设置是标记那些有超过 90% 的概率属于肌肉或眼动伪迹(眨眼和眼球运动)类别的成分。使用此功能标记成分时,手动拒绝成分的界面中的按钮将显示为红色(Tools→Reject componengts by map),可以编辑哪些成分将其标记为伪迹。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

剔除 ICA 成分

删除成分,使用菜单栏Tools → Remove components from data。

结果窗口(下图)中默认包含的前面标记的伪迹成分编号。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

可以点击"Yes"或"Manual reject"按钮来手动编辑成分列表,如下所示。

输入需要剔除的成分编号,然后点击Ok。会弹出对话框窗口,询问是否要比较剔除成分前后的数据,如下图。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

单击Plot single trials按钮。显示(下图)在(黑色)和之后(红色)分量剔除之前的数据。我们可以清楚地看到 ICA 去除眨眼伪迹的效果如何。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

如果是在分段数据时期中删除 ICA 成分,可以单击Plot ERPs按钮,获得类似的下图,绘制通道 ERP 之前(蓝色)和之后(红色)剔除后的数据结果。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

一旦对结果感到满意,点击接受按钮。将弹出另一个窗口,询问是否要重命名新数据集。输入新名字,保存数据集,然后再次按Ok

最后附上网络上总结的经典成分识别:

眨眼成分

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

成分判断: 眨眼成分

判断依据:

  1. 在头皮地形图的前端分布;
  2. ERP图像中有小方块;
  3. 随机分布;
  4. 功率谱图中,低频能量高;
  5. 成分排序较为靠前,像这个示例中,为IC3

颜色的深浅有意义,但是红还是蓝无所谓,大红大蓝都可以的。

眼动成分

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

成分判断: 眼动成分

判断依据:

  1. 在头皮地形图的前端两侧分布,红蓝相对;
  2. 在ERP图像中,长条状,红蓝相间;
  3. 随机分布;
  4. 在功率谱图中低频能量高
  5. 分量排序靠前,但一般在眨眼后面,在该示例中为IC5.

头动成分

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

成分判断: 头动成分

判断依据:

  1. 在头皮地形图中分布在周围;
  2. 在ERP图像中呈现长条状;
  3. 随机分布;
  4. 在单个trial里有非常明显(非常长)的飘移。

成分判断:心电成分

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

成分判断:心电成分

判断依据:

1.在ERP图像中呈雨点般散落状。

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

成分判断:工频干扰

判断依据:

  1. 头皮地形图显示分布在地线周围;
  2. 在ERP图像中单个trail上的分布非常规律;
  3. 在功率谱图中,50Hz左右能量最高(有剧烈的峰值)。

ICA判断网站,若是对ICA成分不熟悉,可以看看这个网站的介绍

网址:https://labeling.ucsd.edu/tutorial/labels

参考网址:

https://github.com/sccn/ICLabel

https://labeling.ucsd.edu/tutorial/format

Groppe, D. M., Makeig, S., & Kutas, M. (2009). Identifying reliable independent components via split-half comparisons. NeuroImage, 45(4), 1199–1211. https://doi.org/10.1016/j.neuroimage.2008.12.038

Luca Pion-Tonachini, Ken Kreutz-Delgado, Scott Makeig,ICLabel: An automated electroencephalographic independent component classifier, dataset, and website,NeuroImage,Volume 198,2019,Pages 181-197,ISSN 1053-8119,https://doi.org/10.1016/j.neuroimage.2019.05.026.

谢谢大家观看,如有帮助,来个喜欢或者关注吧!
本文作者:陈锐

本文仅供学习参考,有任何疑问及侵权,可添加微信交流:braintechnology

更多学习内容,仅在知识星球发布:

EEGLAB系列教程5:数据预处理2(ICA去伪迹)文章来源地址https://www.toymoban.com/news/detail-419318.html

到了这里,关于EEGLAB系列教程5:数据预处理2(ICA去伪迹)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#基础教程20 预处理器指令

    预处理指令是在编译代码之前进行的一种处理,可以让程序员在编译前根据需要对代码进行一些修改、调整或者控制。C#语言中的预处理指令以#开头,它们不是C#语言的一部分,而是由C#编译器进行处理的。本文将详细介绍C#中的预处理指令。 C#中的预处理指令以#开头,格式如

    2024年02月14日
    浏览(45)
  • 数据采集与预处理01: 项目1 数据采集与预处理准备

    数据采集:足够的数据量是企业大数据战略建设的基础,因此数据采集成为大数据分析的前站。数据采集是大数据价值挖掘中重要的一环,其后的分析挖掘都建立在数据采集的基础上。大数据技术的意义确实不在于掌握规模庞大的数据信息,而在于对这些数据进行智能处理,

    2024年01月25日
    浏览(65)
  • 数据预处理matlab matlab数据的获取、预处理、统计、可视化、降维

    1.1 从Excel中获取 使用readtable() 例1: 使用 spreadsheetImportOptions(Name,Value) 初步确定导入信息, 再用 opts.Name=Value 的格式添加。 例2: 先初始化 spreadsheetImportOptions 对象, 再用 opts.Name=Value 的格式逐个添加。 例3: 将导入信息存到变量里, 再使用 spreadsheetImportOptions(Name,Value)

    2024年02月15日
    浏览(56)
  • 大数据采集技术与预处理学习一:大数据概念、数据预处理、网络数据采集

    目录 大数据概念: 1.数据采集过程中会采集哪些类型的数据? 2.非结构化数据采集的特点是什么? 3.请阐述传统的数据采集与大数据采集的区别? ​​​​​​​ ​​​​​​​4.大数据采集的数据源有哪些?针对不同的数据源,我们可以采用哪些不同的方法和工具? 数据

    2024年01月25日
    浏览(54)
  • C# 图解教程 第5版 —— 第24章 预处理指令

    ​ C# 中没有实际的预处理程序,“预处理”指令由编译器处理,但这个术语被保留了下来。 预处理指令必须和 C# 代码在不同的行。 预处理指令不需要以分号结尾。 包含预处理指令的每一行必须以“#”字符开始。 “#”字符前可以有空格。 在“#”字符和指令之间可以有空格

    2024年01月17日
    浏览(34)
  • 数据预处理之数据规约

    目录 一、前言 二、PCA的主要参数: 三、数据归约任务1 四、数据规约任务2 PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构

    2024年02月12日
    浏览(47)
  • 数据分析--数据预处理

    本文主要是个人的学习笔记总结,数据预处理的基本思路和方法,包括一些方法的使用示例和参数解释,具体的数据预处理案例case详见其他文章。如有错误之处还请指正! 目录 数据的质量评定 数据处理步骤 缺失值的处理 标记缺失值 删除 缺失值 填充 缺失值 重复值处理 异

    2024年02月04日
    浏览(58)
  • python数据预处理

    输出结果如下: 观察可知,【销量】存在一个缺失值,本例将缺失值所在行进行删除处理 输出结果如下: 输出结果如下: 观察可知,箱线图上下边缘存在异常值,本例通过四分位法对异常值进行处理,即:超出上边缘的异常值让其落在上边缘,低于下边缘的异常值让其落在

    2024年02月13日
    浏览(43)
  • 数据预处理matlab

    1.1 从Excel中获取 使用readtable() 例1: 使用 spreadsheetImportOptions(Name,Value) 初步确定导入信息, 再用 opts.Name=Value 的格式添加。 例2: 先初始化 spreadsheetImportOptions 对象, 再用 opts.Name=Value 的格式逐个添加。 例3: 将导入信息存到变量里, 再使用 spreadsheetImportOptions(Name,Value)

    2024年02月07日
    浏览(55)
  • 数据清洗和预处理

    预计更新 一、 爬虫技术概述 1.1 什么是爬虫技术 1.2 爬虫技术的应用领域 1.3 爬虫技术的工作原理 二、 网络协议和HTTP协议 2.1 网络协议概述 2.2 HTTP协议介绍 2.3 HTTP请求和响应 三、 Python基础 3.1 Python语言概述 3.2 Python的基本数据类型 3.3 Python的流程控制语句 3.4 Python的函数和模

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包