综合评价法之秩和比法(RSR)
在編制指標(biāo)體系和數(shù)據(jù)分析時,需要從多個維度對多個評價對象進(jìn)行綜合評價時,可以考慮使用秩和比法。從實(shí)驗(yàn)數(shù)據(jù)來看,當(dāng)評價對象較多時,結(jié)果會呈現(xiàn)較好的正態(tài)分布特征。
文章目錄
- 1. 背景介紹
- 2. 設(shè)計思想
- 2.1 優(yōu)點(diǎn)
- 2.1 缺點(diǎn)
- 3. 計算步驟
- 3.1 編秩
- 3.1.1 整次秩和比法
- 3.1.1 非整次秩和比法
- 3.2 計算RSR
- 3.3 評價對象分級
- 3.3.1 確定RSR分布
- 3.3.2 計算回歸方程
- 3.3.3 計算校正RSR值
- 3.3.4 根據(jù)校正RSR分級
- 4. 相關(guān)代碼Python
1. 背景介紹
秩和比法(Rank-sum ratio,簡稱RSR法),是我國學(xué)者、原中國預(yù)防醫(yī)學(xué)科學(xué)院田鳳調(diào)教授于1988年提出的,集古典參數(shù)統(tǒng)計與近代非參數(shù)統(tǒng)計各自優(yōu)點(diǎn)于一體的統(tǒng)計分析方法。
它不僅適用于四格表資料的綜合評價,也適用于行×列表資料的綜合評價,同時也適用于計量資料和分類資料的綜合評價。
RSR法現(xiàn)在廣泛地應(yīng)用于醫(yī)療衛(wèi)生、科技、經(jīng)濟(jì)等鄰域的多指標(biāo)綜合評價、統(tǒng)計預(yù)測預(yù)報、鑒別分類、統(tǒng)計質(zhì)量控制等方面。
2. 設(shè)計思想
使用數(shù)據(jù)大小的相對關(guān)系,對評價對象進(jìn)行排名,根據(jù)排名的結(jié)果計算得到RSR。
一般過程是將效益型指標(biāo)從小到大排序進(jìn)行排名、成本型指標(biāo)從大到小排序進(jìn)行排名,再計算秩和比,最后統(tǒng)計回歸、分檔排序。通過秩轉(zhuǎn)換,獲得無量綱統(tǒng)計量RSR;
在此基礎(chǔ)上,運(yùn)用參數(shù)統(tǒng)計分析的概念與方法,研究RSR的分布;以RSR值對評價對象的優(yōu)劣直接排序或分檔排序,從而對評價對象做出綜合評價。
2.1 優(yōu)點(diǎn)
以非參數(shù)法為基礎(chǔ),對指標(biāo)的選擇無特殊要求,適用于各種評價對象,由于計算時使用的數(shù)值是秩次,可以消除異常值的干擾。
2.1 缺點(diǎn)
排序的主要依據(jù)是利用原始數(shù)據(jù)的秩次,最終算得的 RSR 值反映的是綜合秩次的差距,而與原始數(shù)據(jù)的順位間的差距程度大小無關(guān),這樣在指標(biāo)轉(zhuǎn)化為秩次是會失去一些原始數(shù)據(jù)的信息,如原始數(shù)據(jù)的大小差別等。
當(dāng) RSR 值實(shí)際上不滿足正態(tài)分布時,分檔歸類的結(jié)果與實(shí)際情況會有偏差(根據(jù)中心極限定理,樣本量大時會趨近于正態(tài)分布),且只能回答分級程度是否有差別,不能進(jìn)一步回答具體的差別情況。
3. 計算步驟
此處計算步驟以基金投資案例說明,選取7個指標(biāo)對基金投資進(jìn)行評價。
其中X1,X2,X3為正向指標(biāo)(效益型指標(biāo)),值越大越好,排序時從小到大排。
? X4,X5為負(fù)向指標(biāo)(成本型指標(biāo)),值越低越好,排序時從大到小排。
原始數(shù)據(jù)如下:
| 1 | 34100 | 0.999091 | 0.98 | 0.971793 | 0.002727 |
| 2 | 22630 | 0.673973 | 0.673973 | 1 | 0 |
| 3 | 5766 | 0.774194 | 0.774194 | 0.993056 | 0 |
| 4 | 992 | 1 | 0.9375 | 0.71875 | 0.21875 |
| 5 | 13206 | 0.680751 | 0.664319 | 0.775862 | 0.00939 |
| 6 | 26319 | 0.831567 | 0.804476 | 0.805949 | 0.014134 |
| 7 | 45601 | 0.807614 | 0.7845 | 0.771886 | 0.004759 |
| 8 | 34007 | 0.836828 | 0.807657 | 0.899782 | 0.000912 |
| 9 | 34565 | 0.910314 | 0.896861 | 0.796059 | 0.006278 |
| 10 | 5735 | 1 | 1 | 1 | 0 |
3.1 編秩
編秩方法有整次秩和比法和非整次秩和比法。
3.1.1 整次秩和比法
將 n 個評價對象的 m 個評價指標(biāo)排列成 n 行 m 列的原始數(shù)據(jù)表。編出每個指標(biāo)各評價對象的秩,其中效益型指標(biāo)從小到大編秩,成本型指標(biāo)從大到小編秩,同一指標(biāo)數(shù)據(jù)相同者編平均秩。
得到秩矩陣 R=(Rij)m×nR=\left ( R_{ij} \right )_{m \times n}R=(Rij?)m×n?
如下表:
| 1 | 34100 | 8 | 0.999091 | 8 | 0.98 | 9 | 0.971793 | 4 | 0.002727 | 6 |
| 2 | 22630 | 5 | 0.673973 | 1 | 0.673973 | 2 | 1 | 1.5 | 0 | 9 |
| 3 | 5766 | 3 | 0.774194 | 3 | 0.774194 | 3 | 0.993056 | 3 | 0 | 9 |
| 4 | 992 | 1 | 1 | 9.5 | 0.9375 | 8 | 0.71875 | 10 | 0.21875 | 1 |
| 5 | 13206 | 4 | 0.680751 | 2 | 0.664319 | 1 | 0.775862 | 8 | 0.00939 | 3 |
| 6 | 26319 | 6 | 0.831567 | 5 | 0.804476 | 5 | 0.805949 | 6 | 0.014134 | 2 |
| 7 | 45601 | 10 | 0.807614 | 4 | 0.7845 | 4 | 0.771886 | 9 | 0.004759 | 5 |
| 8 | 34007 | 7 | 0.836828 | 6 | 0.807657 | 6 | 0.899782 | 5 | 0.000912 | 7 |
| 9 | 34565 | 9 | 0.910314 | 7 | 0.896861 | 7 | 0.796059 | 7 | 0.006278 | 4 |
| 10 | 5735 | 2 | 1 | 9.5 | 1 | 10 | 1 | 1.5 | 0 | 9 |
3.1.1 非整次秩和比法
用類似于線性插值(也比較像優(yōu)劣解距離法)的方式對指標(biāo)值進(jìn)行編秩,以改進(jìn) RSR 法編秩方法的不足,所編秩次與原指標(biāo)值之間存在定量的線性對應(yīng)關(guān)系,從而克服了 RSR 法秩次化時易損失原指標(biāo)值定量信息的缺點(diǎn)。
- 對于正向指標(biāo)(效益型指標(biāo)): Rij=1+(n?1)Xij?min(X1j,X2j,...,Xnj)max(X1j,X2j,...,Xnj)?min(X1j,X2j,...,Xnj)R_{ij}=1+\left ( n-1 \right )\frac{X_{ij}-min\left ( X_{1j},X_{2j},...,X_{nj} \right )}{max\left ( X_{1j},X_{2j},...,X_{nj} \right ) - min\left ( X_{1j},X_{2j},...,X_{nj} \right )}Rij?=1+(n?1)max(X1j?,X2j?,...,Xnj?)?min(X1j?,X2j?,...,Xnj?)Xij??min(X1j?,X2j?,...,Xnj?)?
- 對于負(fù)向指標(biāo)(成本型指標(biāo)): Rij=1+(n?1)max(X1j,X2j,...,Xnj)?Xijmax(X1j,X2j,...,Xnj)?min(X1j,X2j,...,Xnj)R_{ij}=1+\left ( n-1 \right )\frac{max\left ( X_{1j},X_{2j},...,X_{nj}\right ) - X_{ij}}{max\left ( X_{1j},X_{2j},...,X_{nj} \right ) - min\left ( X_{1j},X_{2j},...,X_{nj} \right )}Rij?=1+(n?1)max(X1j?,X2j?,...,Xnj?)?min(X1j?,X2j?,...,Xnj?)max(X1j?,X2j?,...,Xnj?)?Xij??
3.2 計算RSR
將某對象的各秩乘以相應(yīng)的權(quán)重并求和后,除以對象個數(shù),得到該對象的RSR,公式: RSRi=1n∑j=1mωjRijRSR_{i} = \frac{1}{n}\sum_{j=1}^{m}\omega_{j}R_{ij}RSRi?=n1?∑j=1m?ωj?Rij?
其中,iii表示某個對象,jjj表示各指標(biāo)的序號。
當(dāng)各指標(biāo)權(quán)重相同時,權(quán)重 ωj=1m\omega_{j}=\frac{1}{m}ωj?=m1? ,RSR的計算可以簡化為: RSRi=1mn∑j=1mRijRSR_{i} = \frac{1}{mn}\sum_{j=1}^{m}R_{ij}RSRi?=mn1?∑j=1m?Rij?
- 本步驟計算得到的RSR,即可作為為各對象綜合評價得分。
- 有時我們不僅需要計算綜合得分,還需要對評價對象進(jìn)行分級,此時可以從正態(tài)分布的角度對各評價對象分級。
本例中使用整次秩和比法編秩,計算結(jié)果如下,如 RSR11=(8+8+9+4+6)/(5×10)=0.7RSR_{11}=\left (8+8+9+4+6 \right ) /(5 \times 10)=0.7RSR11?=(8+8+9+4+6)/(5×10)=0.7
| 1 | 34100 | 0.999091 | 0.980000 | 0.971793 | 0.002727 | 8 | 8 | 9 | 4 | 6 | 0.7 |
| 2 | 22630 | 0.673973 | 0.673973 | 1 | 0 | 5 | 1 | 2 | 1.5 | 9 | 0.37 |
| 3 | 5766 | 0.774194 | 0.774194 | 0.993056 | 0 | 3 | 3 | 3 | 3 | 9 | 0.42 |
| 4 | 992 | 1 | 0.937500 | 0.71875 | 0.21875 | 1 | 9.5 | 8 | 10 | 1 | 0.59 |
| 5 | 13206 | 0.680751 | 0.664319 | 0.775862 | 0.00939 | 4 | 2 | 1 | 8 | 3 | 0.36 |
| 6 | 26319 | 0.831567 | 0.804476 | 0.805949 | 0.014134 | 6 | 5 | 5 | 6 | 2 | 0.48 |
| 7 | 45601 | 0.807614 | 0.784500 | 0.771886 | 0.004759 | 10 | 4 | 4 | 9 | 5 | 0.64 |
| 8 | 34007 | 0.836828 | 0.807657 | 0.899782 | 0.000912 | 7 | 6 | 6 | 5 | 7 | 0.62 |
| 9 | 34565 | 0.910314 | 0.896861 | 0.796059 | 0.006278 | 9 | 7 | 7 | 7 | 4 | 0.68 |
| 10 | 5735 | 1 | 1.000000 | 1 | 0 | 2 | 9.5 | 10 | 1.5 | 9 | 0.64 |
3.3 評價對象分級
對RSR進(jìn)行分布檢驗(yàn),確認(rèn)分布之后通過分布的概率進(jìn)行分級。主要步驟:
3.3.1 確定RSR分布
確定RSR分布是指用概率單位Probit表達(dá)值的累計頻率。Probit模型是一種廣義的線性模型,服從正態(tài)分布。其轉(zhuǎn)換步驟為:
以上4個步驟為理論步驟,實(shí)際操作中可以簡化為:
| 1 | 13206 | 0.680751 | 0.664319 | 0.775862 | 0.00939 | 4 | 2 | 1 | 8 | 3 | 0.36 | 1 | 1 | 0.1 | 0.1 | -1.28155 | 3.718448 |
| 2 | 22630 | 0.673973 | 0.673973 | 1 | 0 | 5 | 1 | 2 | 1.5 | 9 | 0.37 | 1 | 2 | 0.2 | 0.2 | -0.84162 | 4.158379 |
| 3 | 5766 | 0.774194 | 0.774194 | 0.993056 | 0 | 3 | 3 | 3 | 3 | 9 | 0.42 | 1 | 3 | 0.3 | 0.3 | -0.5244 | 4.475599 |
| 4 | 26319 | 0.831567 | 0.804476 | 0.805949 | 0.014134 | 6 | 5 | 5 | 6 | 2 | 0.48 | 1 | 4 | 0.4 | 0.4 | -0.25335 | 4.746653 |
| 5 | 992 | 1 | 0.937500 | 0.71875 | 0.21875 | 1 | 9.5 | 8 | 10 | 1 | 0.59 | 1 | 5 | 0.5 | 0.5 | 0 | 5 |
| 6 | 34007 | 0.836828 | 0.807657 | 0.899782 | 0.000912 | 7 | 6 | 6 | 5 | 7 | 0.62 | 1 | 6 | 0.6 | 0.6 | 0.253347 | 5.253347 |
| 7 | 45601 | 0.807614 | 0.784500 | 0.771886 | 0.004759 | 10 | 4 | 4 | 9 | 5 | 0.64 | 1 | 7.5 | 0.75 | 0.75 | 0.67449 | 5.67449 |
| 8 | 5735 | 1 | 1.000000 | 1 | 0 | 2 | 9.5 | 10 | 1.5 | 9 | 0.64 | 1 | 7.5 | 0.75 | 0.75 | 0.67449 | 5.67449 |
| 9 | 34565 | 0.910314 | 0.896861 | 0.796059 | 0.006278 | 9 | 7 | 7 | 7 | 4 | 0.68 | 1 | 9 | 0.9 | 0.9 | 1.281552 | 6.281552 |
| 10 | 34100 | 0.999091 | 0.980000 | 0.971793 | 0.002727 | 8 | 8 | 9 | 4 | 6 | 0.7 | 1 | 10 | 1 | 0.975 | 1.959964 | 6.959964 |
3.3.2 計算回歸方程
? 此處的校驗(yàn)R-squared和Adj. R-squared值并不高,因?yàn)閿?shù)據(jù)做了截取。在真實(shí)數(shù)據(jù)中這兩項(xiàng)的值都超過了0.99
3.3.3 計算校正RSR值
將Probit代入回歸方程,計算出校正RSR值
| 1 | 13206 | 0.680751 | 0.664319 | 0.775862 | 0.00939 | 4 | 2 | 1 | 8 | 3 | 0.36 | 1 | 1 | 0.1 | 0.1 | -1.28155 | 3.718448 | 0.368154 |
| 2 | 22630 | 0.673973 | 0.673973 | 1 | 0 | 5 | 1 | 2 | 1.5 | 9 | 0.37 | 1 | 2 | 0.2 | 0.2 | -0.84162 | 4.158379 | 0.42236 |
| 3 | 5766 | 0.774194 | 0.774194 | 0.993056 | 0 | 3 | 3 | 3 | 3 | 9 | 0.42 | 1 | 3 | 0.3 | 0.3 | -0.5244 | 4.475599 | 0.461446 |
| 4 | 26319 | 0.831567 | 0.804476 | 0.805949 | 0.014134 | 6 | 5 | 5 | 6 | 2 | 0.48 | 1 | 4 | 0.4 | 0.4 | -0.25335 | 4.746653 | 0.494844 |
| 5 | 992 | 1 | 0.937500 | 0.71875 | 0.21875 | 1 | 9.5 | 8 | 10 | 1 | 0.59 | 1 | 5 | 0.5 | 0.5 | 0 | 5 | 0.52606 |
| 6 | 34007 | 0.836828 | 0.807657 | 0.899782 | 0.000912 | 7 | 6 | 6 | 5 | 7 | 0.62 | 1 | 6 | 0.6 | 0.6 | 0.253347 | 5.253347 | 0.557276 |
| 7 | 45601 | 0.807614 | 0.784500 | 0.771886 | 0.004759 | 10 | 4 | 4 | 9 | 5 | 0.64 | 1 | 7.5 | 0.75 | 0.75 | 0.67449 | 5.67449 | 0.609168 |
| 8 | 5735 | 1 | 1.000000 | 1 | 0 | 2 | 9.5 | 10 | 1.5 | 9 | 0.64 | 1 | 7.5 | 0.75 | 0.75 | 0.67449 | 5.67449 | 0.609168 |
| 9 | 34565 | 0.910314 | 0.896861 | 0.796059 | 0.006278 | 9 | 7 | 7 | 7 | 4 | 0.68 | 1 | 9 | 0.9 | 0.9 | 1.281552 | 6.281552 | 0.683967 |
| 10 | 34100 | 0.999091 | 0.980000 | 0.971793 | 0.002727 | 8 | 8 | 9 | 4 | 6 | 0.7 | 1 | 10 | 1 | 0.975 | 1.959964 | 6.959964 | 0.767558 |
3.3.4 根據(jù)校正RSR分級
在分級時可以按照合理拍檔或最佳拍檔原則進(jìn)行分級。本例中將40%以下的作為C等,80%以下的作為B等,其余的作為A等。40%,80%對應(yīng)的就是正態(tài)分布函數(shù)的累計概率(面積)。
注:其實(shí)在實(shí)際操作中,level分類時,直接使用regression的分位數(shù)得到的效果也是一樣的,而且操作起來更簡單。
| 1 | 13206 | 0.680751 | 0.664319 | 0.775862 | 0.00939 | 4 | 2 | 1 | 8 | 3 | 0.36 | 1 | 1 | 0.1 | 0.1 | -1.28155 | 3.718448 | 0.368154 | C |
| 2 | 22630 | 0.673973 | 0.673973 | 1 | 0 | 5 | 1 | 2 | 1.5 | 9 | 0.37 | 1 | 2 | 0.2 | 0.2 | -0.84162 | 4.158379 | 0.42236 | C |
| 3 | 5766 | 0.774194 | 0.774194 | 0.993056 | 0 | 3 | 3 | 3 | 3 | 9 | 0.42 | 1 | 3 | 0.3 | 0.3 | -0.5244 | 4.475599 | 0.461446 | C |
| 4 | 26319 | 0.831567 | 0.804476 | 0.805949 | 0.014134 | 6 | 5 | 5 | 6 | 2 | 0.48 | 1 | 4 | 0.4 | 0.4 | -0.25335 | 4.746653 | 0.494844 | C |
| 5 | 992 | 1 | 0.937500 | 0.71875 | 0.21875 | 1 | 9.5 | 8 | 10 | 1 | 0.59 | 1 | 5 | 0.5 | 0.5 | 0 | 5 | 0.52606 | B |
| 6 | 34007 | 0.836828 | 0.807657 | 0.899782 | 0.000912 | 7 | 6 | 6 | 5 | 7 | 0.62 | 1 | 6 | 0.6 | 0.6 | 0.253347 | 5.253347 | 0.557276 | B |
| 7 | 45601 | 0.807614 | 0.784500 | 0.771886 | 0.004759 | 10 | 4 | 4 | 9 | 5 | 0.64 | 1 | 7.5 | 0.75 | 0.75 | 0.67449 | 5.67449 | 0.609168 | B |
| 8 | 5735 | 1 | 1.000000 | 1 | 0 | 2 | 9.5 | 10 | 1.5 | 9 | 0.64 | 1 | 7.5 | 0.75 | 0.75 | 0.67449 | 5.67449 | 0.609168 | B |
| 9 | 34565 | 0.910314 | 0.896861 | 0.796059 | 0.006278 | 9 | 7 | 7 | 7 | 4 | 0.68 | 1 | 9 | 0.9 | 0.9 | 1.281552 | 6.281552 | 0.683967 | A |
| 10 | 34100 | 0.999091 | 0.980000 | 0.971793 | 0.002727 | 8 | 8 | 9 | 4 | 6 | 0.7 | 1 | 10 | 1 | 0.975 | 1.959964 | 6.959964 | 0.767558 | A |
4. 相關(guān)代碼Python
import pandas as pd import statsmodels.api as sm from warnings import simplefilter from scipy.stats import normdf = pd.DataFrame([[34100, 0.999091, 0.98, 0.971793, 0.002727],[22630, 0.673973, 0.673973, 1, 0],[5766, 0.774194, 0.774194, 0.993056, 0],[992, 1, 0.9375, 0.71875, 0.21875],[13206, 0.680751, 0.664319, 0.775862, 0.00939],[26319, 0.831567, 0.804476, 0.805949, 0.014134],[45601, 0.807614, 0.7845, 0.771886, 0.004759],[34007, 0.836828, 0.807657, 0.899782, 0.000912],[34565, 0.910314, 0.896861, 0.796059, 0.006278],[5735, 1, 1, 1, 0] ], columns=["X1", "X2", "X3", "X4", "X5"]) # 正向指標(biāo),從小到大排序 df["R1"] = df["X1"].rank(ascending=True, method="average") df["R2"] = df["X2"].rank(ascending=True, method="average") df["R3"] = df["X3"].rank(ascending=True, method="average") # 負(fù)向指標(biāo),從大到小排 df["R4"] = df["X4"].rank(ascending=False, method="average") df["R5"] = df["X5"].rank(ascending=False, method="average") # 計算RSR值 df["RSR"] = df.loc[:, ["R1", "R2", "R3", "R4", "R5"]].sum(axis=1) / (5 * 10) # 排序 df.sort_values(by="RSR", inplace=True) # 因?yàn)閷?shí)際數(shù)據(jù)沒有重復(fù),此處偷懶,直接寫1 df["f"] = 1 df["Σf"] = df["RSR"].rank(method="average") df["R/n"] = df["Σf"] / len(df) df["R/n'"] = df["R/n"] df.iat[-1, -1] = 1 - 1 / 4 / len(df)df["Probit"] = norm.ppf(df["R/n'"]) df["Probit'"] = df["Probit"] + 5 import numpy as npr0 = np.polyfit(df["Probit'"], df["RSR"], deg=1) if r0[1] > 0:print(f"\n回歸直線方程為:y = {r0[0]} Probit + {r0[1]}") else:print(f"\n回歸直線方程為:y = {r0[0]} Probit - {abs(r0[1])}")simplefilter(action="ignore", category=FutureWarning) simplefilter(action="ignore", category=UserWarning) print(sm.OLS(df["Probit"], sm.add_constant(df["RSR"])).fit().summary()) df["regression"] = np.polyval(r0, df["Probit'"])C_LEVEL = norm.ppf(0.4) + 5 B_LEVEL = norm.ppf(0.8) + 5 A_LEVEL = 10threshold = np.polyval(r0, [0, C_LEVEL, B_LEVEL, A_LEVEL]) print("threshold:", threshold) df["level"] = pd.cut(df["regression"], threshold, labels=["C", "B", "A"]) df["regression_pct"] = df["regression"].rank(pct=True, ascending=True, method="average") # 設(shè)置pandas打印時顯示的列數(shù) pd.set_option("display.max_columns", 1000) pd.set_option("display.max_columns", None) pd.set_option("display.width", 1000) print(df)總結(jié)
以上是生活随笔為你收集整理的综合评价法之秩和比法(RSR)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF扫雷游戏(简略版)
- 下一篇: ClickHouse 实时数据去重fin