Dr.Can在他的教学视频(【卡尔曼滤波器】2_数学基础_数据融合_协方差矩阵_状态空间方程_观测器问题)中使用了足球运动员的数据介绍了协方差矩阵的概念和计算方法,原始数据如下图,那么协方差矩阵到底是什么?他有什么用?我们怎么计算协方差矩阵?如何编写程序让计算机帮助我们计算协方差矩阵呢?
协方差矩阵其实是用来描述一个数据集中不同字段(属性)数据之间的关联程度的。百度词条的解释是:
协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
用数学语言,协方差的公式可以表示为:
我们用简单的人话来说,就是如果两个字段(属性)正相关的(也就是变化趋势一致),协方差是正的;如果负相关(也就是变化趋势相反),那么协方差就是负的。将协方差和两个属性的标准差相除,我们还可以得到一个区间为(-1,1)的相关系数,用来归一化的表示两个字段(属性)的相关程度:
DR.CAN提到了一种基于过度矩阵的计算方法,也就是将协方差的计算公式变形一下,这样我们就可以使用matlab中自带的矩阵运算函数得到非常简洁的表达,并且能够高效快速的得到计算结果