《非参数统计》与MATLAB编程 第八章 相关分析
- 格式:doc
- 大小:90.00 KB
- 文档页数:27
第八章 相关分析
协方差
命令:C = cov(X)
当X为行或列向量时,它等于 var(X) 样本标准差。
X=1:15;cov(X)
ans =
20
>> var(X)
ans =
20
当X为矩阵时,此时X的每行为一次观察值,每列为一个变量。cov(X)为协方差矩阵,它是对称矩阵。
例:x=rand(100,3);c= cov(x)
c=
0.089672 -0.012641 -0.0055434
-0.012641 0.07928 0.012326
-0.0055434 0.012326 0.082203
c的对角线为:diag(c)
ans =
0.0897
0.0793
0.0822 它等于:var(x)
ans =
0.0897 0.0793 0.0822
sqrt(diag(cov(x)))
ans =
0.2995
0.2816
0.2867
它等于:std(x)
ans =
0.2995 0.2816 0.2867
命令:c = cov(x,y)
其中x和y是等长度的列向量(不是行向量),它等于cov([x y])或cov([x,y])
例:x=[1;4;9];y=[5;8;6];
>> c=cov(x,y)
c =
16.3333 1.1667
1.1667 2.3333
>> cov([x,y])
ans =
16.3333 1.1667 1.1667 2.3333
COV(X)、 COV(X,0)[两者相等] 或COV(X,Y)、COV(X,Y,0) [两者相等],它们都是除以n-1,而COV(X,1) or COV(X,Y,1)是除以n
x=[1;4;9];y=[5;8;6];
>> cov(x,y,1)
ans =
10.8889 0.7778
0.7778 1.5556
它的对角线与var([x y],1) 相等
ans =
10.8889 1.5556
协差阵的代数计算:
[n,p] = size(X);
X = X - ones(n,1) * mean(X);
Y = X'*X/(n-1); Y为X的协差阵
相关系数(一)
命令:r=corrcoef(x)
x为矩阵,此时x的每行为一次观察值,每列为一个变量。
r为相关系数矩阵。它称为Pearson相关系数
例:x=rand(18,3);r=corrcoef(x)
r =
1.0000 0.1509 -0.2008
0.1509 1.0000 0.1142
-0.2008 0.1142 1.0000
r为对称矩阵,主对角阵为1
命令:r=corrcoef(x,y)
其中x和y是等长度的列向量(不是行向量),它等于cov([x
y])或cov([x,y]),或x和y是等长度的行向量,r=corrcoef(x,y)它则等于r=corrcoef(x’,y’),
r=corrcoef([x’,y’])
例:x=[1;4;9];y=[5;8;6]; corrcoef(x,y)
ans =
1.0000 0.1890 0.1890 1.0000
yy x x yy x x 22rcorrcoef([x,y])
ans =
1.0000 0.1890
0.1890 1.0000
C = COV(X)
Rij =C(i,j)/SQRT(C(i,i)*C(j,j))
如:X=[1 2 7 4 ;5 12 7 8;9 17 11 17];
cov(X)
ans =
16.0000 30.0000 8.0000 26.0000
30.0000 58.3333 13.3333 46.6667
8.0000 13.3333 5.3333 14.6667
26.0000 46.6667 14.6667 44.3333
corrcoef(X)
ans =
1.0000 0.9820 0.8660 0.9762
0.9820 1.0000 0.7559 0.9177
0.8660 0.7559 1.0000 0.9538
0.9762 0.9177 0.9538 1.0000
则有:30/sqrt(16*58.3333)
ans =
0.9820
命令:[r,p]=corrcoef[….]
它还将返回p值,原假设是变量之间不相关。
例:
销售量x 430 335 520 490 470 210 195 270 400 480
气温y 30 21 35 42 37 20 8 17 35 25
x = [430 335 520 490 470 210 195 270
400 480];
y=[30 21 35 42 37 20 8 17
35 25];
[r,p]=corrcoef(x,y)
r =
1.0000 0.8594
0.8594 1.0000
p =
1.0000 0.0014
0.0014 1.0000 P矩阵主对角矩阵全为1,
当总体变量X和Y都服从正态分布,并且总体相关系数等于0时,有:
)2(~122ntrnrt
P矩阵的计算,即上例中0.0014的算法。
4.75408594.012108594.01222rnrt (1-tcdf(4.7540,8))*2 得:0.0014
在显著性水平0.05下,0.0014小于0.05,拒绝两总体不相关的原假设,即销售量与气温相关。
命令:[r,p,rlo,rup]=corrcoef(….)
rlo与rup是与r矩阵大小相同的矩阵,rlo为相关系数r的下限,rup为相关系数r的上限。在缺失情况下,置信度为95%。
例:x = [430 335 520 490 470 210 195
270 400 480];
y=[30 21 35 42 37 20 8 17
35 25]; [r,p,rlo,rup]=corrcoef(x,y)
r =
1.0000 0.8594
0.8594 1.0000
p =
1.0000 0.0014
0.0014 1.0000
rlo =
1.0000 0.5006
0.5006 1.0000
rup =
1.0000 0.9662
0.9662 1.0000
因此销售量与气温相关系数95%的置信区间为
[0.5006,0.9662]
如果要求99%的销售量与气温相关系数的置信区间:
[r,p,rlo,rup]=corrcoef(x,y,'alpha',0.01)
注意不是:[r,p,rlo,rup]=corrcoef(x,y,0.01)
r =
1.0000 0.8594
0.8594 1.0000
p = 1.0000 0.0014
0.0014 1.0000
rlo =
1.0000 0.3071
0.3071 1.0000
rup =
1.0000 0.9786
0.9786 1.0000
得销售量与气温相关系数99%的置信区间为
[0.3071,0.9786]比95%的置信区间[0.5006,0.9662]
更宽。
rlo和rup具体怎么算出来的还没弄明白。帮助文件是这样说的:
The confidence bounds are based on an asymptotic normal
distribution of 0.5*log((1+R)/(1-R)), with an
approximate variance equal to 1/(n-3).
命令:[...]=corrcoef(...,'param1',val1,'param2',val2,...)
例:[...]=corrcoef(...,'alpha',0.01) 是求在置信度为99%,求r置信区间。
[...]=corrcoef(...,'rows', 'all') 只计算两个变量(两列)所有观察值(所有行)都存在的两个变量。缺失情况下,就是用这种方法计算。
例:
x =[ 3 9 2 34
5 NaN 6 66
NaN 4 9 7
8 7 33 9
9 14 11 22]
[r,p,rlo,rup]=corrcoef(x,'rows', 'all')
r =
NaN NaN NaN NaN
NaN NaN NaN NaN
NaN NaN 1.0000 -0.5296
NaN NaN -0.5296 1.0000
p =
NaN NaN NaN NaN
NaN NaN NaN NaN
NaN NaN 1.0000 0.3587
NaN NaN 0.3587 1.0000
rlo =
NaN NaN NaN NaN
NaN NaN NaN NaN