Python的公式: r,p=stats.spearmanr(X1,X2)結果為:r:相關係數,p:p_value功能:是兩個資料集之間關係單調性的非引數度量,Spearman相關性不假設兩個資料集都是正態分佈的。(檢驗2個變數之間的相關性)r: 這個相關係數在-1和+1之間變化,0表示沒有相關性。相關係數的絕對值約接近1,相關性越高,p: p值粗略地表示不相關係統產生具有Spearman相關性的資料集的機率(通俗的說,就是2個變數不相關的機率,總體上,若2個變數的相關係數越高,則P值會相對較低)。p值並不完全可靠,但對於大於500左右的資料集可能是合理的。例子:r,p=stats.spearmanr([1,2,3,4,5], [5,6,7,8,7]) np.random.seed(1234321) x2n = np.random.randn(100, 2) y2n = np.random.randn(100, 2) stats.spearmanr(x2n) #結果(0.059969996999699973, 0.55338590803773591) stats.spearmanr(x2n[:,0], x2n[:,1]) #結果(0.059969996999699973, 0.55338590803773591) rho, pval = stats.spearmanr(x2n, y2n) '''#結果 >>> rho array([[ 1. , 0.05997 , 0.18569457, 0.06258626], [ 0.05997 , 1. , 0.110003 , 0.02534653], [ 0.18569457, 0.110003 , 1. , 0.03488749], [ 0.06258626, 0.02534653, 0.03488749, 1. ]]) >>> pval array([[ 0. , 0.55338591, 0.06435364, 0.53617935], [ 0.55338591, 0. , 0.27592895, 0.80234077], [ 0.06435364, 0.27592895, 0. , 0.73039992], [ 0.53617935, 0.80234077, 0.73039992, 0. ]]) >>> rho, pval = stats.spearmanr(x2n.T, y2n.T, axis=1) >>> rho array([[ 1. , 0.05997 , 0.18569457, 0.06258626], [ 0.05997 , 1. , 0.110003 , 0.02534653], [ 0.18569457, 0.110003 , 1. , 0.03488749], [ 0.06258626, 0.02534653, 0.03488749, 1. ]]) ''' stats.spearmanr(x2n, y2n, axis=None) #總體的相關性:(0.10816770419260482, 0.1273562188027364) stats.spearmanr(x2n.ravel(), y2n.ravel()) #總體的相關性:(0.10816770419260482, 0.1273562188027364) xint = np.random.randint(10, size=(100, 2)) stats.spearmanr(xint) #(0.052760927029710199, 0.60213045837062351)
Python的公式: r,p=stats.spearmanr(X1,X2)結果為:r:相關係數,p:p_value功能:是兩個資料集之間關係單調性的非引數度量,Spearman相關性不假設兩個資料集都是正態分佈的。(檢驗2個變數之間的相關性)r: 這個相關係數在-1和+1之間變化,0表示沒有相關性。相關係數的絕對值約接近1,相關性越高,p: p值粗略地表示不相關係統產生具有Spearman相關性的資料集的機率(通俗的說,就是2個變數不相關的機率,總體上,若2個變數的相關係數越高,則P值會相對較低)。p值並不完全可靠,但對於大於500左右的資料集可能是合理的。例子:r,p=stats.spearmanr([1,2,3,4,5], [5,6,7,8,7]) np.random.seed(1234321) x2n = np.random.randn(100, 2) y2n = np.random.randn(100, 2) stats.spearmanr(x2n) #結果(0.059969996999699973, 0.55338590803773591) stats.spearmanr(x2n[:,0], x2n[:,1]) #結果(0.059969996999699973, 0.55338590803773591) rho, pval = stats.spearmanr(x2n, y2n) '''#結果 >>> rho array([[ 1. , 0.05997 , 0.18569457, 0.06258626], [ 0.05997 , 1. , 0.110003 , 0.02534653], [ 0.18569457, 0.110003 , 1. , 0.03488749], [ 0.06258626, 0.02534653, 0.03488749, 1. ]]) >>> pval array([[ 0. , 0.55338591, 0.06435364, 0.53617935], [ 0.55338591, 0. , 0.27592895, 0.80234077], [ 0.06435364, 0.27592895, 0. , 0.73039992], [ 0.53617935, 0.80234077, 0.73039992, 0. ]]) >>> rho, pval = stats.spearmanr(x2n.T, y2n.T, axis=1) >>> rho array([[ 1. , 0.05997 , 0.18569457, 0.06258626], [ 0.05997 , 1. , 0.110003 , 0.02534653], [ 0.18569457, 0.110003 , 1. , 0.03488749], [ 0.06258626, 0.02534653, 0.03488749, 1. ]]) ''' stats.spearmanr(x2n, y2n, axis=None) #總體的相關性:(0.10816770419260482, 0.1273562188027364) stats.spearmanr(x2n.ravel(), y2n.ravel()) #總體的相關性:(0.10816770419260482, 0.1273562188027364) xint = np.random.randint(10, size=(100, 2)) stats.spearmanr(xint) #(0.052760927029710199, 0.60213045837062351)