斯皮尔曼等级相关系数一_精品文档Word格式.doc
- 文档编号:13884267
- 上传时间:2022-10-14
- 格式:DOC
- 页数:4
- 大小:49.50KB
斯皮尔曼等级相关系数一_精品文档Word格式.doc
《斯皮尔曼等级相关系数一_精品文档Word格式.doc》由会员分享,可在线阅读,更多相关《斯皮尔曼等级相关系数一_精品文档Word格式.doc(4页珍藏版)》请在冰豆网上搜索。
这里需要注意:
当变量的两个值相同时,它们的排行是通过对它们位置进行平均而得到的。
2、适用范围
斯皮尔曼等级相关系数对数据条件的要求没有皮尔逊相关系数严格,只要两个变量的观测值是成对的等级评定资料,或者是由连续变量观测资料转化得到的等级资料,不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼等级相关系数来进行研究。
3、Matlab实现
源程序一:
斯皮尔曼等级相关系数的Matlab实现(依据排行差分集合d计算,使用上面的公式一)
[cpp]
viewplaincopy
1.function
coeff
=
mySpearman(X
Y)
2.%
本函数用于实现斯皮尔曼等级相关系数的计算操作
3.%
4.%
输入:
5.%
X:
输入的数值序列
6.%
Y:
7.%
8.%
输出:
9.%
coeff:
两个输入数值序列X,Y的相关系数
10.
11.
12.if
length(X)
~=
length(Y)
13.
error('
两个数值数列的维数不相等'
);
14.
return;
15.end
16.
17.N
length(X);
%得到序列的长度
18.Xrank
zeros(1
N);
%存储X中各元素的排行
19.Yrank
%存储Y中各元素的排行
20.
21.%计算Xrank中的各个值
22.for
i
1
:
N
23.
cont1
1;
%记录大于特定元素的元素个数
24.
cont2
-1;
%记录与特定元素相同的元素个数
25.
for
j
26.
if
X(i)
<
X(j)
27.
+
28.
elseif
==
29.
30.
end
31.
32.
Xrank(i)
mean([0
cont2]);
33.end
34.
35.%计算Yrank中的各个值
36.for
37.
38.
39.
40.
Y(i)
Y(j)
41.
42.
43.
44.
45.
46.
Yrank(i)
47.end
48.
49.%利用差分等级(或排行)序列计算斯皮尔曼等级相关系数
50.fenzi
6
*
sum((Xrank
-
Yrank).^2);
51.fenmu
(N^2
1);
52.coeff
fenzi
/
fenmu;
53.
54.end
%函数mySpearman结束
源程序二:
使用Matlab中已有的函数计算斯皮尔曼等级相关系数(使用上面的公式二)
1.coeff
corr(X
Y
'
type'
Spearman'
注意:
使用Matlab自带函数计算斯皮尔曼等级相关系数时,需要保证X、Y均为列向量;
Matlab自带的函数是通过公式二计算序列的斯皮尔曼等级相关系数的。
一般情况下,使用上面给出的源程序一是可以得到所要的结果的,但是当序列X或Y中出现具有相同值的元素时,源程序一给出的结果就会与Matlab中corr函数计算的结果不同,这是因为当序列X或Y中有相同的元素时,公式一和公式二计算的结果会有偏差。
这里可以通过将源程序一中的以下三行
1.fenzi
2.fenmu
3.coeff
改为
corr(Xrank'
Yrank'
%皮尔逊相关系数
这样便可以使源程序一在计算包含相同元素值的变量(至少有一个变量的取值集合中存在相同的元素)间的斯皮尔曼等级相关系数时,得到与Matlab自带函数一样的结果。
程序一经过修改过后同样可以用来计算一般变量(两个变量的取值集合中均不存在相同的元素)等级相关间的斯皮尔曼等级系数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 斯皮尔曼 等级 相关系数 精品 文档