您的位置:首页 > 其它

协方差矩阵的概念,算法以及自己的一些理解

2012-10-18 20:44 281 查看
在统计学与概率论中,,协方差矩阵是一个矩阵,其每个元素是各个向量元素之间的协方差。是从标量随机变量到高维度随机向量的自然推广。

方差反映的是一个矩阵中元素的离散程度。如果我有矩阵a[3] = {1,2,3} ,其均值为2,方差为(1-2)^2+(2-2)^2+(3-2)^2

协方差反映的是矩阵和矩阵之间(也就是上面说的各个向量元素之间)的关系。比如a[3]={1,2,3} b[3]={2,3,4} 那么a与b的协方差是一个2x2的矩阵。又知道a[]的均值为2,b[]的均值为3 。

矩阵的元素按照由上到下由左到右的顺序依次为:

(1-2)^2+(2-2)^2+(3-2)^2 (1-2)(2-3)+(2-2)*(3-3)+(3-2)*(4-3)

(1-2)(2-3)+(2-2)*(3-3)+(3-2)*(4-3) (2-3)^2+(3-3)^2+(4-3)^2

也就是说:矩阵a与矩阵b的协方差阵包括主对角线的a矩阵的方差和b矩阵的方差;副对角线的ab矩阵间的互协方差

协方差的标准定义为:



也可以进一步展开成为:



有了这些,我们就可以着手考虑代码了:

如果要求m个矩阵的互协方差,其中每个矩阵有n个元素首先明确协方差矩阵是mXm的方阵。具体算法如下:

for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
sum[m]+=a[m][j];
}
avg[m]=sum[m]/n;
}

for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
for(k=0;k<n;k++)
{
temp[m]
+= (a[m][k]-avg[m])*(a
[k]-avg
);
}
temp[m]
/= n;
}
}


以上只是算法,没有声明变量。是自己按照公式写的,如有理解错误,还请大家批评指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐