日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kendall Rank(肯德尔等级)相关系数

發布時間:2025/4/14 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kendall Rank(肯德尔等级)相关系数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


1、簡介
在統計學中,肯德爾相關系數是以Maurice Kendall命名的,并經常用希臘字母τ(tau)表示其值??系聽栂嚓P系數是一個用來測量兩個隨機變量相關性的統計值。一個肯德爾檢驗是一個無參數假設檢驗,它使用計算而得的相關系數去檢驗兩個隨機變量的統計依賴性。肯德爾相關系數的取值范圍在-1到1之間,當τ為1時,表示兩個隨機變量擁有一致的等級相關性;當τ為-1時,表示兩個隨機變量擁有完全相反的等級相關性;當τ為0時,表示兩個隨機變量是相互獨立的。

?

假設兩個隨機變量分別為X、Y(也可以看做兩個集合),它們的元素個數均為N,兩個隨即變量取的第i(1<=i<=N)個值分別用Xi、Yi表示。X與Y中的對應元素組成一個元素對集合XY,其包含的元素為(Xi, Yi)(1<=i<=N)。當集合XY中任意兩個元素(Xi, Yi)與(Xj, Yj)的排行相同時(也就是說當出現情況1或2時;情況1:Xi>Xj且Yi>Yj,情況2:Xi<Xj且Yi<Yj),這兩個元素就被認為是一致的。當出現情況3或4時(情況3:Xi>Xj且Yi<Yj,情況4:Xi<Xj且Yi>Yj),這兩個元素被認為是不一致的。當出現情況5或6時(情況5:Xi=Xj,情況6:Yi=Yj),這兩個元素既不是一致的也不是不一致的。

?

這里有三個公式計算肯德爾相關系數的值

?

公式一:

?

其中C表示XY中擁有一致性的元素對數(兩個元素為一對);D表示XY中擁有不一致性的元素對數。

注意:這一公式僅適用于集合X與Y中均不存在相同元素的情況(集合中各個元素唯一)。

?

公式二:

?

注意:這一公式適用于集合X或Y中存在相同元素的情況(當然,如果X或Y中均不存在相同的元素時,公式二便等同于公式一)。

其中C、D與公式一中相同;

;;

N1、N2分別是針對集合X、Y計算的,現在以計算N1為例,給出N1的由來(N2的計算可以類推):

將X中的相同元素分別組合成小集合,s表示集合X中擁有的小集合數(例如X包含元素:1 2 3 4 3 3 2,那么這里得到的s則為2,因為只有2、3有相同元素),Ui表示第i個小集合所包含的元素數。N2在集合Y的基礎上計算而得。

?

公式三:

?

注意:這一公式中沒有再考慮集合X、或Y中存在相同元素給最后的統計值帶來的影響。公式三的這一計算形式僅適用于用表格表示的隨機變量X、Y之間相關系數的計算(下面將會介紹)。

參數M稍后會做介紹。

?

以上都是圍繞用集合表示的隨機變量而計算肯德爾相關系數的,下面所講的則是圍繞用表格表示的隨機變量而計算肯德爾相關系數的。

?

通常人們會將兩個隨機變量的取值制作成一個表格,例如有10個樣本,對每個樣本進行兩項指標測試X、Y(指標X、Y的取值均為1到3)。根據樣本的X、Y指標取值,得到以下二維表格(表1):

?

由表1可以得到X及Y的可以以集合的形式表示為:

X={1, 1, 2, 2, 2, 2, 2, 3, 3, 3};

Y={1, 2, 1, 1, 2, 2, 3, 2, 3, 3};

得到X、Y的集合形式后就可以使用以上的公式一或公式二計算X、Y的肯德爾相關系數了(注意公式一、二的適用條件)。

當然如果給定X、Y的集合形式,那么也是很容易得到它們的表格形式的。

?

這里需要注意的是:公式二也可以用來計算表格形式表示的二維變量的肯德爾相關系數,不過它一般用來計算由正方形表格表示的二維變量的肯德爾相關系數,公式三則只是用來計算由長方形表格表示的二維變量的Kendall相關系數。這里給出公式三中字母M的含義,M表示長方形表格中行數與列數中較小的一個。表1的行數及列數均為三。

?

2、適用范圍?
肯德爾相關系數與斯皮爾曼相關系數對數據條件的要求相同,可參見統計相關系數(2)--Spearman Rank(斯皮爾曼等級)相關系數及MATLAB實現中介紹的斯皮爾曼相關系數對數據條件的要求。

?

3、Matlab實現
源程序一:

肯德爾相關系數的Matlab實現(依據公式二得到)

?

function coeff = myKendall(X , Y) % 本函數用于實現肯德爾等級相關系數的計算操作 % % 輸入: % X:輸入的數值序列 % Y:輸入的數值序列 % % 輸出: % coeff:兩個輸入數值序列X,Y的相關系數if length(X) ~= length(Y)error('兩個數值數列的維數不相等');return; end%將X變為行序列(如果X已經是行序列則不作任何變化) if size(X , 1) ~= 1X = X'; end %將Y變為行序列(如果Y已經是行序列則不作任何變化) if size(Y , 1) ~= 1Y = Y'; endN = length(X); %得到序列的長度 XY = [X ; Y]; %得到合并序列 C = 0; %一致性的數組對數 D = 0; %不一致性的數組對數 N1 = 0; %集合X中相同元素總的組合對數 N2 = 0; %集合Y中相同元素總的組合對數 N3 = 0; %合并序列XY的總對數 XPair = ones(1 , N); %集合X中由相同元素組成的各個子集的元素數 YPair = ones(1 , N); %集合Y中由相同元素組成的各個子集的元素數 cont = 0; %用于計數%計算C與D for i = 1 : N - 1for j = i + 1 : Nif abs(sum(XY(: , i) ~= XY(: , j))) == 2 switch abs(sum(XY(: , i) > XY(: , j)))case 0C = C + 1;case 1D = D + 1;case 2C = C + 1;endendend end%計算XPair中各個元素的值 while length(X) ~= 0cont = cont + 1;index = find(X == X(1));XPair(cont) = length(index);X(index) = []; end %計算YPair中各個元素的值 cont = 0; while length(Y) ~= 0cont = cont + 1;index = find(Y == Y(1));YPair(cont) = length(index);Y(index) = []; end%計算N1、N2及N3的值 N1 = sum(0.5 * (XPair .* (XPair - 1))); N2 = sum(0.5 * (YPair .* (YPair - 1))); N3 = 0.5 * N * (N - 1);coeff = (C - D) / sqrt((N3 - N1) * (N3 - N2));end %函數myKendall結束

  

?

源程序二:

使用Matlab中已有的函數計算肯德爾相關系數

?

coeff = corr(X , Y , 'type' , 'Kendall');

  

注意:使用Matlab自帶函數計算肯德爾相關系數時,需要保證X、Y均為列向量;Matlab自帶的函數是通過公式二計算序列的肯德爾相關系數的。

?

這里還有另外一種不是計算肯德爾相關系數的公式(僅適用于集合X與Y中均不存在相同元素的情況,實際上其與公式一等價),可見參考文獻(3)。

?

4、參考內容
(1)、http://en.wikipedia.org/wiki/Kendall_tau_rank_correlation_coefficient

(2)、http://www.unesco.org/webworld/idams/advguide/Chapt4_2.htm

(3)、http://www.wikidoc.org/index.php/Kendall_tau_rank_correlation_coefficient
---------------------
作者:wsywl
來源:CSDN
原文:https://blog.csdn.net/wsywl/article/details/5889419
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

轉載于:https://www.cnblogs.com/sddai/p/10323561.html

總結

以上是生活随笔為你收集整理的Kendall Rank(肯德尔等级)相关系数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。