1. David’s Scoreの算出

1.1 David’s Scoreとは

David’s Score(以下、DS)は、個体間の相対的なdominanceの差の違いを考慮して順位を算出してくれる指標である。一般的には個体の順位を高い方から順に1位, 2位, 3位, …と等間隔に割り振っていくため、1位 vs 2位と2位 vs 3位の間のdominanceの差が同じとみなされる。一方で、DSはその値の差が大きい個体間ほど、dominanceに差があることを表すことができる。

例えば、A, B, Cという個体のDSがそれぞれ2, 4, 7とすると、AとBの間のdominanceの差はBとCの差よりも小さいことになる。なお、DSは値が高い個体ほど順位が高いことを表す。

1.2 DSの定義

個体\(i\)の個体\(j\)に対する勝率を\(P_{ij} = s_{ij}/n_{ij}\)、敗率を\(\; P_{ji} = 1-P_{ij}\)とするとき(ただし、\(n_{ij}\): 全敵対的交渉数, \(s_{ij}\): \(i\)\(j\)に勝った回数)、個体\(i\)について\(w_i, w_{2i}, l_i, l_{2i}\)を以下のように定義する(\(N\)は個体数)。

\[ \begin{aligned} w_i &= \sum_{j=1}^{N} P_{ij} \;\; (j \neq i) \;\; \text{(個体}i\text{の勝率の合計)}\\ w_{2i} &= \sum_{j=1}^{N} w_jP_{ij} \;\; (j \neq i) \;\; \text{(個体}j\text{の}w_j\text{で重みづけした個体}i\text{の勝率の合計)}\\ l_i &= \sum_{j=1}^{N} P_{ji} \;\; (j \neq i) \;\; \text{(個体}i\text{の敗率の合計)}\\ l_{2i} &= \sum_{j=1}^{N} l_jP_{ji} \;\; (j \neq i) \;\; \text{(個体}j\text{の}l_j\text{で重みづけした個体}i\text{の敗率の合計)}\\ \end{aligned} \]

このとき、個体\(i\)のDS(\(DS_i\))は以下のように定義される。

\[ DS_i = w_i + w_{2i} - l_i - l_{2i} \]

なお、個体ごとの敵対的交渉(\(n_ij\))の試行数の違いを考慮するため、\(P_{ij}\)のかわりに以下の\(D_{ij}\)を、\(P_{ji}\)の代わりに\(D_{ji} = 1- D_{ij}\)用いてDSの算出を算出することもある。詳細は De Vries et al. (2006) を参照。 De Vries et al. (2006) では\(D_{ij}\)を使う方法が推奨されているようだが、十分に試行数がある場合には\(P_{ij}\)を使う方がいいと書いてある論文もあるようだ(Balasubramaniam et al. 2012)

\[ D_ij = P_{ij} - \{(P_{ij}-0.5)/(n_{ij}+1)\} \]

1.3 Normalized David’s Scoreの定義  

DSを算出する際には、steepness(後述)を算出する際にその値が0から1におさまるように標準化することが多い。これをNormalized David’s Score(以下、nDS)という(De Vries et al. 2006)。nDSは以下の式で計算される。これによって、nDSは0から\(N-1\)の間に収まる。

\[ nDS_i = \{DS_i + N(N-1)/2\}/N \]

1.4 Rでの算出方法

それではRでnDSの算出を行う。本稿では、 Vervaecke et al. (2007) に載っている馬の攻撃交渉の勝敗データを用いる。データはdata frameではなく、matrix(隣接行列)として読み込む必要があるので、csvファイルなどから読み込むときは必要に応じてas.matrix()でmatrix化する必要がある。

Rで直接マトリックスを作成する場合

mat <- matrix(c(0,58,50,61,32,37,29,39,25,8,0,22,22,9,27,20,10,48,
              3,3,0,19,29,12,13,19,8,5,8,9,0,33,38,35,32,57,
              4,7,9,1,0,28,26,16,23,4,3,0,0,6,0,7,6,12,
              2,0,4,1,4,4,0,5,3,0,2,1,1,5,8,3,0,10,3,1,3,0,0,4,1,2,0),
              nrow=9,byrow=TRUE)

individuals <- c("V","VS","B","FJ","PR","VB","TOR","MU","ZV") %>% 
  as.character()

##列名と行名を追加  
colnames(mat) <- individuals
rownames(mat) <- individuals

mat
##     V VS  B FJ PR VB TOR MU ZV
## V   0 58 50 61 32 37  29 39 25
## VS  8  0 22 22  9 27  20 10 48
## B   3  3  0 19 29 12  13 19  8
## FJ  5  8  9  0 33 38  35 32 57
## PR  4  7  9  1  0 28  26 16 23
## VB  4  3  0  0  6  0   7  6 12
## TOR 2  0  4  1  4  4   0  5  3
## MU  0  2  1  1  5  8   3  0 10
## ZV  3  1  3  0  0  4   1  2  0

csvファイルから読みこむ場合

mat2 <- read.csv("matrix.csv", row.names = 1) %>%
  ## matrix形式に変換
  as.matrix()



それでは、算出する。EloRatingパッケージのDS関数を用い、prop =PijDijを指定する。
結果を確認すると、\(P_{ij}\)\(D_{ij}\)を用いた場合で微妙に値が異なることが分かる。

\(P_{ij}\)を用いた場合

nDS_p <- EloRating::DS(mat, prop = "Pij")

nDS_p 

\(D_{ij}\)を用いた場合

nDS_d <- EloRating::DS(mat, prop = "Dij")

nDS_d 

References

Balasubramaniam KN, Dittmar K, Berman CM, et al (2012) Hierarchical steepness and phylogenetic models: Phylogenetic signals in macaca. Anim Behav 83:1207–1218
De Vries H, Stevens JMG, Vervaecke H (2006) Measuring and testing the steepness of dominance hierarchies. Anim Behav 71:585–592
Vervaecke H, Stevens JMG, Vandemoortele H, et al (2007) Aggression and dominance in matched groups of subadult icelandic horses (equus caballus). J Ethol 25:239–248