matlab 中的cov等的统计函数的用法;假设X={xij}是一个p*n的矩阵,即有p个变元,n次观察,如何求协方差矩

来自:    更新日期:早些时候
在matlab中如何求两个列矩阵的协方差?~

matlab函数:mean
>>x=[1,2,3]
>>mean(x)=2
如果x是一个矩阵,则其均值是一个向量组。mean(x,1)为列向量的均值,mean(x,2)为行向量的均值。
>>x=[1
2
3
4
5
6]
>>mean(x,1)=[2.5,
3.5,
4.5]
>>mean(x,2)=[2
5]
若要求整个矩阵的均值,则为mean(mean(x))。
>>mean(mean(x))=3.5
也可使用mean2函数:
>>mean2(x)=3.5
协方差矩阵
a=[61.45,55.9,61.95,59,58.14,53.61,55.48,54.21,61.52,54.92];
b=[40.36,39.8,49.2,48,51.5,49.39,51.13,58.06,61,62.35];
c=[8.61,8.91,10.43,13.32,13.48,15.75,18.14,19.95,21.95,23.53];
d=[14.31,14.72,15.28,15.91,14.67,15,15.86,15.16,13.72,12.94];
e=[7.67,7.75,8.15,9.24,10.68,10.58,10.31,10,8.91,8.51];
>>
q=[a',b',c',d',e'];
>>
w=cov(q)
w
=
10.3710
-4.7446
-6.6023
-0.1873
-1.8881
-4.7446
59.1503
38.7606
-3.0743
3.0982
-6.6023
38.7606
28.6966
-2.0199
2.4166
-0.1873
-3.0743
-2.0199
0.8474
0.3936
-1.8881
3.0982
2.4166
0.3936
1.3412
来自网络

这是协方差
可以连等
cov(X1-X2,Y)=cov(x1,Y)-cov(x2,Y)
具体还有什么要问的吗

>> a=[1 2 3;2 5 6]

a =

     1     2     3

     2     5     6

>> b=mean(a)%%mean是按列求平均值,从b中的值可以看出

b =

    1.5000    3.5000    4.5000

>> c=mean(a')%%所以要按行求平均值,直接转置求取,最后对c再求转置即可得到p维列向量

c =

    2.0000    4.3333

%%%%%%%%%%%%%%%%%%%%%%%%%%

>> M=rand(4,3)

M =

    0.9501    0.8913    0.8214

    0.2311    0.7621    0.4447

    0.6068    0.4565    0.6154

    0.4860    0.0185    0.7919

>> m=cov(M)

m =

   0.0892    0.0330    0.0405

    0.0330    0.1505   -0.0186

    0.0405   -0.0186    0.0305%%%%%%%%可以看出最后得到的协方差是3*3,由此知cov也是按列计算的,m对角线的元素是每列的方差,其余元素是列与列之间的协方差

>> n=cov(M')

n =

    0.0042   -0.0061   -0.0006   -0.0110

   -0.0061    0.0714   -0.0214   -0.0714

   -0.0006   -0.0214    0.0080    0.0326

   -0.0110   -0.0714    0.0326    0.1517%%转置后计算协方差,n为4*4,那么对角线元素就是行的方差,其余元素就是行与行之间的协方差。

%%%%%%%%%%%%%%%%%

关于cov计算的结果和手算的结果不同,这里的原因是:

matlab在计算相关矩阵时,把每一列的数作为一个随机变量的样本,每一行作为一个这几个随机变量的联合样本,即第i个随机变量取第k行的样本值时,第j个随机变量也取第k行的样本值。利用这个性质,我们就可以用协方差的公式代入来计算协方差矩阵了。

      然而,由于矩阵中给出只是这些随机变量的样本,根据概率论的知识我们知道,由于我们不知道这些随机变量的概率分布(或联合概率分布),我们是不可能计算出这些随机变量的期望、方差或是协方差的,而只能计算出它们的一个无偏估计,即样本均值、样本方差与样本协方差。其计算公式如下所示:




matlab 中的cov等的统计函数的用法;假设X={xij}是一个p*n的矩阵,即有p个变元,n次观察,如何求协方差矩视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网