1

所以我读到可以将 AR 模型拟合到 EEG 数据,然后使用 AR 系数作为对数据进行聚类或分类的特征:例如 Mohammadi 等人,使用 AR 模型进行 EEG 信号的人员识别,2006 年。

作为质量控制步骤和解释的帮助,我想直观地看到拟合模型产生/模拟的时间序列类型。如果我正在做 K 均值或其他分类,这也将允许我展示原型模型。

然而,我似乎能够产生的只是噪音!

朝着我想要的方向迈出的任何一步都将受到欢迎。

section1 = data[88000:91800]
section2 = data[0:8000]
section3 = data[143500:166000]

section1 -= np.mean(section1)
section2 -= np.mean(section2)
section3 -= np.mean(section3)

绘制时: 在此处输入图像描述

maxOrder = 20
model_one = AR(section1).fit(maxOrder, ic = 'aic', trend = 'nc') 
model_two = AR(section2).fit(maxOrder, ic = 'aic', trend = 'nc') 
model_three = AR(section3).fit(maxOrder, ic = 'aic', trend = 'nc') 

fake1 = arma_generate_sample(model_one.params,[1],1000, sigma = 1)
fake2 = arma_generate_sample(model_two.params,[1],1000,sigma = 1)
fake3 = arma_generate_sample(model_three.params,[1],1000,sigma = 1)

ax1.plot(fake1)
ax2.plot(fake2)
ax3.plot(fake3)

在此处输入图像描述

4

1 回答 1

3

关于 EEG 数据的标准最简单的或多或少真实的说法是它具有 1/f 或“粉红色”分布。1/f 信号的一个有趣之处在于它们是非平稳的,并且无法通过任何阶的 ARMA 过程正确建模。(1/f 意味着低频波动任意大,这意味着任意相隔的点保持相关性,并且您拥有的数据越多,您可以检测到的相关性越远——ACF 永远不会收敛到任何有限的东西。另外,重要的是要认识到频谱内容和类似 ARMA 的过程是超级超级相关的,因为信号的自相关函数完全决定了它的频谱分布,反之亦然——这两个函数是彼此的傅里叶变换。)

所以基本上这意味着你使用基本时间序列统计所做的任何事情都将是一个巨大的违反理论的黑客行为。这并不意味着它不会在实践中产生一些有用的分类特征,而是相应地校准你的期望......你得到的结果很可能与 Mohammadi 等人得到的结果完全相同,而且他们只是没有费心去做任何适合度的检查/报告。

有一些方法可以通过小波或 ARIMA 过程直接对 1/f 噪声进行建模。

根据您的数据,您可能还需要担心与简单 1/f 分布的偏差:诸如 alpha 之类的东西(在 10 Hz 时会在频谱分布中产生明显的颠簸),诸如肌肉噪声、电线噪声和心脏噪声之类的伪影节拍(这也会导致与简单的 1/f 频谱的显着偏差——尤其是肌肉会产生非常独特的宽带~白色噪声)和眨眼(会产生巨大的脉冲偏差,这些偏差不会被任何假设平稳性或在频域中工作的技术)。

在我的论文的第 5.3 节中有更多关于这些问题的讨论(附有参考资料),尽管是在进行类似 ERP 的分析而不是机器学习的背景下。

于 2015-05-27T23:58:30.033 回答