斯皮尔曼等级相关系数一_精品文档Word格式.doc

上传人:b****2 文档编号:13884267 上传时间:2022-10-14 格式:DOC 页数:4 大小:49.50KB
下载 相关 举报
斯皮尔曼等级相关系数一_精品文档Word格式.doc_第1页
第1页 / 共4页
斯皮尔曼等级相关系数一_精品文档Word格式.doc_第2页
第2页 / 共4页
斯皮尔曼等级相关系数一_精品文档Word格式.doc_第3页
第3页 / 共4页
斯皮尔曼等级相关系数一_精品文档Word格式.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

斯皮尔曼等级相关系数一_精品文档Word格式.doc

《斯皮尔曼等级相关系数一_精品文档Word格式.doc》由会员分享,可在线阅读,更多相关《斯皮尔曼等级相关系数一_精品文档Word格式.doc(4页珍藏版)》请在冰豆网上搜索。

斯皮尔曼等级相关系数一_精品文档Word格式.doc

这里需要注意:

当变量的两个值相同时,它们的排行是通过对它们位置进行平均而得到的。

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 

:

23. 

cont1 

1;

%记录大于特定元素的元素个数 

24. 

cont2 

-1;

%记录与特定元素相同的元素个数 

25. 

for 

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 

sum((Xrank 

Yrank).^2);

51.fenmu 

(N^2 

1);

52.coeff 

fenzi 

fenmu;

53. 

54.end 

%函数mySpearman结束 

源程序二:

使用Matlab中已有的函数计算斯皮尔曼等级相关系数(使用上面的公式二)

1.coeff 

corr(X 

'

type'

Spearman'

注意:

使用Matlab自带函数计算斯皮尔曼等级相关系数时,需要保证X、Y均为列向量;

Matlab自带的函数是通过公式二计算序列的斯皮尔曼等级相关系数的。

一般情况下,使用上面给出的源程序一是可以得到所要的结果的,但是当序列X或Y中出现具有相同值的元素时,源程序一给出的结果就会与Matlab中corr函数计算的结果不同,这是因为当序列X或Y中有相同的元素时,公式一和公式二计算的结果会有偏差。

这里可以通过将源程序一中的以下三行

1.fenzi 

2.fenmu 

3.coeff 

改为

corr(Xrank'

Yrank'

%皮尔逊相关系数 

这样便可以使源程序一在计算包含相同元素值的变量(至少有一个变量的取值集合中存在相同的元素)间的斯皮尔曼等级相关系数时,得到与Matlab自带函数一样的结果。

程序一经过修改过后同样可以用来计算一般变量(两个变量的取值集合中均不存在相同的元素)等级相关间的斯皮尔曼等级系数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1