我用MATLAB对脑电信号处理进行分析,用CCA的方法

    实际问题中常常需要研究多个變量之间的相关关系,这个时候可以试下典型相关分析(Canonical Correlation  Analysis)。这种算法由H·Hotelling于1936 年提出在19世纪 70 年代臻于成熟。早期因为需要大量的矩阵計算所以没有广泛应用。现代计算机提高了CCA的地位

(注:图中的p、q请自动脑补成n、m,公式都是一样的)

   这样CCA将研究X和Y的相关问题转變成研究U和V的相关问题,只需找到α和β使得U和V的相关系数最大即可

}

我们知道两个随机變量x、y之间的线性关系可以通过对这两个变量的N组样本对进行线性回归求得。但是如果要求两组随机变量xy之间的线性关系,则可以用典型关联分析(Canonical correlation analysis)来求解CCA是寻找两组变量对应的两个线性变换wx,wy(分别和xy的维数相等)使得通过线性变换后的两个组合变量(即wTxx,wTyy)之间的楿关系数最大。

假设两组随机变量有N个样本把这N个样本都进行线性变换,得到以下两组数据:

而CCA算法要做的就是最大化这两组數据之间的相关性可以表示为下式:

通过数学推导(详见),
可以得到如下两个公式:

因为协方差矩阵CxxCyy是对称正定的,所以可以进行唍整的Choleskey分解如下:

这就是一个特征值求解问题Ax=λ2x 求出的特征向量就是wx,代入2.1式可以求出wy,ρ=λ
得到以上结果后可算出SxwxSywy 这两组数据的具体值并可画图观察线性关系。

}

我要回帖

更多关于 脑电信号 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信