资讯详情

脑电分析系列[MNE-Python-21]| Python协方差矩阵处理脑电数据

今日主要介绍一下MNE脑电数据如何用协方差矩阵处理?

MNE许多方法,包括源估计和一些分类算法,都需要根据记录进行协方差估计。

在本教程中,我们将介绍传感器协方差计算的基本知识,并建立噪声协方差矩阵,可用于计算最小范数的逆解.

诸如MNE噪声估计需要从记录中进行。

本教程介绍了噪声协方差的基本知识,并在计算逆解时构建了噪声协方差矩阵。

我们将结合代码进行分析。

# 导入工具库 import os.path as op   import mne from mne.datasets import sample import matplotlib.pyplot as plt 

读取数据

# 构建数据地址 data_path = sample.data_path() raw_empty_room_fname = op.join(     data_path, 'MEG', 'sample', 'ernoise_raw.fif') raw_empty_room = mne.io.read_raw_fif(raw_empty_room_fname) raw_fname = op.join(data_path, 'MEG', 'sample', 'sample_audvis_raw.fif') #读取原始数据 raw = mne.io.read_raw_fif(raw_fname) #设置平均参考 raw.set_eeg_reference('average', projection=True) #增加不良通道 raw.info['bads']  = ['EEG 053']  # bads   1 more 

噪声的定义取决于范式。在MEG传感器噪声通常用空房测量来估计。但是,如果要处理诱发的反应,可能还需要考虑将静息的大脑活动视为噪音。首先,我们用空房间记录来计算噪音。请注意,您也可以只记录部分和tmin和tmax一起使用参数。假如你把静息状态作为噪声基线,那就很有用了。在这里,我们使用整个空间记录来计算噪声协方差。

请记住,在操作过程中,空间数据集应与实际情况相结合MEG匹配数据。如果使用,确保过滤器相同ICA,将其等效地应用于空间和主题数据。在这种情况下,我们不过滤数据或使用数据ICA。但是,我们在MEG数据中确实有错误的通道和投影,所以我们必须确保它们存储在协方差对象中。

raw_empty_room.info['bads'] = [     bb for bb in raw.info['bads'] if 'EEG' not in bb] raw_empty_room.add_proj(     [pp.copy() for pp in raw.info['projs'] if 'EEG' not in pp['desc']]) # 计算协方差 noise_cov = mne.compute_raw_covariance(     raw_empty_room, tmin=0, tmax=None) 
3 projection items deactivated Using up to 550 segments Number of samples used : 66000 [done]

现在,已经在了MNE-Python协方差矩阵可用于对象mne.write_cov()将其保存到文件中。

以后,可以使用mne.read_cov()将其读回。

也可以用刺激前的基线来估计噪声协方差。

首先,我们必须建造它epoch。

计算协方差时,应构建epochs使用基线校正。否则,协方差矩阵将不准确。

在MNE默认情况下,此操作将完成,但为了确定,我们在此手动定义。

#在原始数据中找到events events = mne.find_events(raw) # 构建epoch epochs = mne.Epochs(raw, events, event_id=1, tmin=-0.2, tmax=0.5,                     baseline=(-0.2, 0.0), decim=3,  # we'll decimate for speed                     verbose='error')  # and ignore the warning about aliasing 
320 events found Event IDs: [ 1  2  3  4  5 32]
""" 对epochs协方差估计数据 """ noise_cov_baseline = mne.compute_covariance(epochs, tmax=0) 

尝试将proj设置为False查看效果。请注意,epochs中间的投影仪已经应用,所以proj参数无效。

noise_cov.plot(raw_empty_room.info,proj=True)   plt.show() 

noise_cov_baseline.plot(epochs.info, proj=True) plt.show() 

在估计的源振幅和可用样本数之间,估计的协方差可能不稳定。

因此,MNE建议将噪声协方差矩阵规范化(请参考噪声协方差矩阵规范化),特别是在只能使用少量样本的情况下。

但是,说样本的有效数量并不容易,所以要选择合适的正则化。

在MNE-Python使用[1]中提到的高级正则化方法来完成正则化。因此,可以使用auto使用此选项,交叉验证将用于学习最佳正则化:

noise_cov_reg = mne.compute_covariance(epochs, tmax=0., method='auto',                                        rank=None) 

在这个过程中,使用看不见数据的负对数来量化噪声协方差,从而量化噪声协方差。肉眼也可以检查最终结果。假设基线不包含系统信号(定感兴趣的事件),白色基线信号应遵循多个高斯分布,即在给定条件下,白色基线信号应为-1.96和1.96之间 时间样本。基于相同的推理,全球场的功率(GFP)期望值为1(计算GFP真正的自由应该考虑,比如ddof=3.有两个活动SSP向量):

evoked = epochs.average() evoked.plot_white(noise_cov_reg, time_unit='s') plt.show() 

该图还显示了每个通道的白化诱发信号和白化GFP。GFP面板中的数字代表数据的估计等级,相当于计算白色GFP时跨传感器的平方和除以的有效自由度。GFP由于过度或不正则化,也有助于检测虚假的晚期诱发成分。

请注意,如果使用信号空间分离(SSS) 处理数据时,梯度仪和磁力仪会同时显示,因为两者都是相同的SSS基向量以相同的值重建。这意味着这两种传感器类型在统计数据上不再独立。这些评估方法可用于评估模型违规行为。

对于专家用例或调试,还可以比较替代估计,演示白化对源估计的影响:

noise_covs = mne.compute_covaiance(
    epochs, tmax=0., method=('empirical', 'shrunk'), return_estimators=True,
    rank=None)
evoked.plot_white(noise_covs, time_unit='s')
plt.show()

这将绘制出为最佳估计量而诱发的白化并在相关面板中将所有估计器的GFP显示为单独的行。

最后,让我们看一下空房间和与事件相关的协方差之间的区别,使用"method"选项,使它们的类型显示在图例中。

evoked_meg = evoked.copy().pick('meg')
noise_cov['method'] = 'empty_room'
noise_cov_baseline['method'] = 'baseline'
evoked_meg.plot_white([noise_cov_baseline, noise_cov], time_unit='s')
plt.show()

基于对数可能性的负值,基线协方差似乎更合适。

参考

1.Engemann D. and Gramfort A. (2015) Automated model selection in covariance estimation and spatial whitening of MEG and EEG signals, vol. 108, 328-342, NeuroImage.

2.Taulu, S., Simola, J., Kajola, M., 2005. Applications of the signal space separation method. IEEE Trans. Signal Proc. 53, 3359-3372.

不用于商业行为,转载请联系后台

若有侵权,请后台留言,管理员即时删侵!

更多阅读

EEG公开数据集汇总

CMU贺斌教授团队提出FAST-IRES技术

Python可视化Evoked数据

探索双耳助听器中的人体通信

手部的运动区域也与整个身体相连

他们想把广告植入你的梦境

EEG伪影详解和过滤工具的汇总(二)

如何让你的工作让更多人知晓和受益?

脑机接口社区就是这样一个连接学界、

企业界和爱好者的平台渠道。

社区鼓励高校实验室、企业或个人在我们平台上分享优质内容。

稿件系个人原创作品,若已在其他平台发表,请明确标注。

稿件一经录取,便提供稿费!

微信扫码,备注:投稿+姓名+单位

微信交流群,请扫码上方微信

(备注:姓名+单位+专业/领域行业)

QQ交流群:913607986

你的每一次在看,我都很在意!

标签: ssp1传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台