






收稿日期:2023-06-04
基金項目:2022年浙江省中華職業教育科研項目立項課題(ZJCV2022C37)
DOI:10.19850/j.cnki.2096-4706.2023.21.044
摘" 要:樣本若無重復數據時,計算Spearman秩相關系數的程序比較容易設計。如果樣本出現重復數據時,則可以從樣本數據的結、秩平均值等概念出發設計程序;此時,既要考慮不重復數據的秩,也要考慮對重復數據秩平均值的確定。該課題基于清華大學王星教授給出的數據結、秩平均值定義,設計Spearman秩相關系數的計算程序,并在實證分析中運用,操作簡便易行。
關鍵詞:Spearman秩相關系數;秩平均值;程序設計;案例應用
中圖分類號:TP391" 文獻標識碼:A" 文章編號:2096-4706(2023)21-0195-04
Python Program Design and Application of Spearman Rank Correlation Coefficient
—Empirical Analysis of the Correlation between Book Reading and Tacit Knowledge Acquisition Ability
ZHANG Chigeng
(Jiaxing Vocational and Technical College, Jiaxing" 314036, China)
Abstract: If there is no duplicate data in the sample, the program for calculating Spearman rank correlation coefficient is easier to design. If there is duplicate data in the sample, the program can be designed from the concepts of knot and rank average of the sample data. At this time, we should consider not only the rank of non-repeated data, but also the determination of the rank average of repeated data. The project is based on the definition of data knot and rank average given by Professor Wang Xing of Tsinghua University, designs the calculation program of Spearman rank correlation coefficient and applies it in case analysis, which is simple and easy to operate.
Keywords: Spearman rank correlation coefficient; rank average; programming; case application
0" 引" 言
如果隨機變量的樣本數據或其變換值不服從正態分布,則運用Pearson積矩相關系數分析問題就毫無意義。此時,只能用Spearman(或者Kendall)秩相關系數解決相關性問題[1]。在計算Spearman秩相關系數時,如果取之總體X的樣本x1,x2,…,xn無重復數時,那么設計Spearman秩相關系數的程序比較容易;但有重復數據時,由于對重復數據確定秩的多樣化,例如,算術平均值法,即若第k+1個至k+m個元素值相等:xk+1 = xk+2 = … = xk+m,則取這m個數據的算術平均值作為這m個數據中每個數據的秩,統計軟件Minitab的符號秩和檢驗法就是采用算術平均值法確定每個元素的秩,又如隨機化分配秩等方法[2],因此對應重復數據采用不同的秩時,設計計算Spearman秩相關系數程序的難度存在差異。《非參數統計》(清華大學出版社)作者,王星教授從數據的“結與結長”概念給出秩平均值定義[3]。具體做法:將x1,x2,…,xn按從小到大排序后,若x(1) = x(2) = … =" "= … =" "= … = ,其中g表示樣本結的個數,而ζk(k = 1,2,…,g)表示第k個結中數據的個數(或者重復次數),例如,ζi表示第i個結中的重復數據個數,對第i個結中每個數據賦予相同的秩ri,稱為秩平均,如式(1):
(1)
本課題采用式(1)結的秩平均定義,基于Python代碼首次設計Spearman秩相關系數的計算程序,并將所設計的程序運用于實際案例。
1" 基于樣本“結”秩平均的spearman相關系數計算程序設計
程序設計分五步,參見程序設計框圖,如圖1所示。
1)導入配對數據Xi:xi1,xi2,…,xin,i = 1,2;
2)對Xi按小至大重新排序得 ;從" 各數據的秩找回Xi各數據對應的秩(即ri和qi);3)檢查Xi中是否存在重復數據,以及重復數據出現的個數。若有重復數據,按其‘結’長確定重復數據的秩平均并賦秩平均值;若無重復數據,則處理下一步;4)對不重復數據的秩進行補償處理,即對每個不重復數據的秩都加上1。因為,程序設計中的數組從小至大排秩序時,首位秩是0,往后每位增1;而按結長計秩,首數據的秩值從1開始計,往上遞增;5)計算x1與x2的相關系數[3],如式(2):
(2)
式(2)中,ri和qi,i = 1,2,…,n分別為X1與X2的秩,n為樣本量大小。完整的Python[4]程序設計代碼如下:
import numpy as np
import pandas as pd
from collections import Counter
##數組形式
fb = r'學生高考成績與大學成績比較表.xls'
data2 = pd.read_excel(fb, header=None)#讀入數據文件
data3 = data2.values
row = data2.shape[0]
col = data2.shape[1]
sda1 = np.sort(data3[:, 0]) #對原數據組從小至大排序
sda2 = np.sort(data3[:, 1])
sdb1 = data3[:, 0]
sdb2 = data3[:, 1]
fupr = np.ones((1, row))
fupb = np.ones((1, row))
fups = np.ones((1, row))
for i in range(row):
[c] = np.where(sda1 == sdb1[i]) #計算第一組數據秩統計量
[d] = np.where(sda2 == sdb2[i]) #計算第二組數據秩統計量
fupr[0][i] = c[0]
fups[0][i] = d[0]
global Rrepeat
Rrepeat = []
def adjrank(y, z):
repeat = [item for item, count in Counter(y).items() if count gt; 1]" # 找重復數據
recount = [count for item, count in Counter(y).items() if count gt; 1] # 找重復數據
nr = len(repeat)
for j in range(nr):" # 處理重復數據的秩
[a] = np.where(y == repeat[j])
m = recount[j]
b = a[0] + (m + 1) / 2 #基于結的秩值確定
Rrepeat.append(b)
for k in range(m): #對重復數據賦秩值
[d, c] = np.where(z == a[k])
z[0][c] = b
adjrank(sda1, fupr) #對第一組數據中非重復數據的秩補償(加1)
a_list = fupr
a_list = [float(x) for item in a_list for x in item]
s_list = Rrepeat
for i in range(len(a_list)):
if a_list[i] not in s_list:
a_list[i] = a_list[i] + 1
else:
next
fupr = a_list
adjrank (sda2, fups) #對第二組數據非重復數據的秩補償(加1)
b_list = fups
b_list = [float(x) for item in b_list for x in item]
s_list = Rrepeat
for i in range(len(b_list)):
if b_list[i] not in s_list:
b_list[i] = b_list[i] + 1
else:
next
fups = b_list
npc = 0
for i in range(row):
npc = npc + np.square(fupr[i] - fups[i]) # 計算spearman秩差的平方和
corr = 1 - 6* npc/(row * (np.square(row) - 1) ) 計算spearman秩相關系數
上述導入的數據文件“學生高考成績與大學成績比較表”,引自《非參數統計》(清華大學出版社)第182頁例6.1數值,如表1所示。
此例的秩相關系數在《非參數統計》(清華大學出版社)上給出的計算結果為Corr = 0.772 7;以上設計的程序運行所得相關系數為Corr = 0.772 7,兩者完全一致。須關注兩點:1)若重復數的秩采用算術平均值,結果為Corr = 0.786 7[5]。盡管兩種計算方法的相關系數有差異,但變量間的相關性不改變;2)用SPSS軟件包[6]計算表1數據,spearman相關系數Corr = 0.772,若0.772非四舍五入的截斷函數所得,SPSS軟件計算spearman秩相關系數方式亦可能基于結秩平均設計的。SPSS模塊是封裝的,若需對秩計算表深入分析時且找不到相應秩表輸出功能;本課題程序僅需對fupr[i],fups[i]設置循環輸出for k in range(row),即可得秩表,如表2所示(與《非參數統計》書上顯示的秩表結果一致)。
2" 圖書閱讀與隱性知識習得能力的相關性分析
隱性知識不同于顯性知識,具有無法言傳、不可編碼、不能加以反思等特征[7]。英國物理化學家、哲學家Polanyi提出最著名的認識論命題:我們所認識的多于我們所能告訴的[8],即隱性知識比顯性知識多得多。于是,如何習得隱性知識受到各界學者關注、研究。例如,隱性知識傳遞的師徒制、導師制,以及社交網絡面對面交流等都成為研究模式;而通過圖書閱讀產生靈感,以及閱讀后通過不斷體驗與實踐逐步建構起屬于讀者個體的隱性知識也成為研究新途徑[9,10]。為厘清圖書閱讀與隱性知識習得能力是否存在關聯機制,本課題運用基于結平均秩的spearman秩相關系數對兩者關系進行研究,包括:數據來源及相關性分析。
2.1" 圖書館大學生讀者接受問卷調查構成數據來源
數據來源于嘉興職業技術學院(簡稱嘉職院)圖書館大學生讀者問卷調查。調查表的主要內容為個體“平均每周閱讀時間”,以及通過長期圖書閱讀對“隱性知識習得能力”影響的自我評分。調查表模擬美國著名心理學家Robert基于心理學的隱性知識測量法[11],結合大學生在校期間學習目標及心理現象,并對調查表進行專門設計。調研表設置若干個一級指標,每個一級指標包含若干個二級指標,如表3所示。
本課題一級指標C1:認知思維維度。C1下屬的二級指標7個:c11自我認知能力、c12觀察能力、c13判斷能力、c14邏輯思維能力、c15形象思維能力、c16創新能力,以及c17自身專業知識結構。其余三個一級指標C2為價值觀維度、C3情感維度、C4經驗技能維度,以及其下相應的二級指標,共12個,總共設計了19個二級指標。對于二級指標的評價取值為tij(取0或1:0表示無關聯性,1表示有正相關作用)0≤i≤m,0≤j≤max(n1,n2,…,nm)。表中的Scores是對全部二級指標取值累加后,轉成的百分數。表3反映在學生讀者每周圖書閱讀時間H與隱性知識習得能力自評分Scores。本次調研共發放170份,收回有效問卷158份,相應的統計表及統計圖,如表4、圖2所示。例如,圖2所示第k個學生Sk每周平均閱讀8小時、隱性知識習得能力自評是80分,同理可得其他157對數據。表末是閱讀總平均7小時/周,自評總平均74分。
2.2" 相關性分析
由于158對數據包括兩個非獨立的樣本:平均每周閱讀時間X,隱性知識習得能力得分Y。這兩個隨機變量都不連續,也都不服從正態分布,且重復數據多,如平均每周閱讀5小時、7小時高頻次出現。因此,本課題運用設計的基于結秩平均spearman秩相關系數進行分析。
現只需將表4的158對數據導入到程序中fb =
r‘XXXX.xls'即可。運行結果,相關系數Corr=0.64;由于統計量n>50,因此可以用服從自由度n-2的t分布統計量T進行檢驗,結果為:
=10.40
查表得T = 10.40>t0.001 156≈2.62;因此,可以認為在95%的置信水平上,大學生圖書閱讀時間(小時/周)與其隱性知識習得能力(Scores)存在正相關關系。
3" 結" 論
基于樣本數據結長的秩平均值,運用Python程序設計并計算Spearman秩相關系數,將程序運用于實際案例分析則簡便易行。所設計的程序還可以根據研究需要輸出秩計算表。
參考文獻:
[1] 張利田,卜慶杰,楊桂華,等.環境科學領域學術論文中常用數理統計方法的正確使用問題 [J].環境科學學報,2007(1):171-173.
[2] 王靜龍,梁小筠.非參數統計分析 [M].北京:高等教育出版社,2006.
[3] 王星,褚挺進.非參數統計:第2版 [M].北京:清華大學出版社,2014.
[4] 龍良曲.TensorFlow深度學習 [M].北京:清華大學出版社,2020.
[5] 夏子期lal.斯皮爾曼(spearman)相關系數python代碼實現 [EB/OL].[2023-02-09].https://blog.csdn.net/xiaziqiqi/ category_
12191253.html.
[6] 武松.SPSS實戰與統計思維 [M].北京:清華大學出版社,2019.
[7] Polanyi M.The Tacit Dimension [M].London:Routledge amp; kegan paul,1966.
[8] Polanyi M.Personal knowledge [M].London:Routledge and Kegan Paul,1958.
[9] 劉婷.圖書館內隱學習與緘默知識生成研究——基于認知心理學視角 [J].新世紀圖書館,2018(9):8-13.
[10] 宋貝.心理追蹤—個人隱性知識產生過程及機制 [M].北京:人民郵電出版社,2021.
[11] RICHARD K W,ROBERT J S. Tacit knowledge in managerial success [J].Journal of business and psychology,1987,1(4):301-312.
作者簡介:張馳庚(1984—),男,漢族,浙江杭州人,講師,碩士研究生,研究方向:軟件開發、數據挖掘、職業教育。