介于中间性得分加权图和多图之间的不同结果

时间:2018-09-16 07:35:15

标签: r igraph sna

我正在研究StatsBomb FIFA世界杯18数据,并试图找出每支球队的核心球员。为此,我构建了一个通行证网络(有向图,其中玩家进行了通行,而玩家接受了通行证)。然后,我研究了各种中心度度量标准,以衡量最关键的参与者(关于游戏制作)

从本质上讲,有两种方法可以将数据呈现给算法。一种是在创建图形时将每个事件(通过)作为单独的行(两个节点之间的多个边)进行单独设置,另一种是通过传球者和接收者进行汇总,并根据玩家A传递给玩家B的次数赋予边缘权重等

查看强度得分时,结果完全相同。但是,仅此而已就没什么好意思了(击球手会收到很多球,但是他们不再向前传球那么多,所以不能说它们陷入了困境)

Betweenness-score更为合适,它计算球员X是球从A到B的桥梁的频率(以我对“ neestneess-measure”加权形式的最佳理解)

但是,这里的结果波动很大。每行一遍,两个节点之间的多个边给出合理的逻辑结果(这里,阿根廷对克罗地亚和梅西是仅次于防守者尼古拉·塔格里亚菲科,前锋阿圭罗和后来的伊瓜因的第二大中锋。记住,这场比赛对阿根廷来说是一场灾难:https://www.independent.co.uk/sport/football/world-cup/world-cup-2018-argentina-jorge-sampaoli-group-nigeria-lionel-messi-tactics-a8411031.html

然而,加权版本将伊瓜因(Sub Higuain)放在首位,并为阿奎罗(Aguero)和另外两个子迪巴拉(Dybala)/帕文(Pavon)提供了不错的成绩。这可能不对,但我不知道结果为何如此不同。在个人层面上,通行证的顺序是否重要?

这是我的R代码,需要通过devtools::install_github("statsbomb/StatsBombR")从Github安装StatsBombR

library(StatsBombR)

library(dplyr)

library(igraph)

matches <- FreeMatches(43)

#download match events

match <- get.matchFree(matches[9,])

#take info about passes, remove non-pass events

passes <- select(match,player.name,pass.recipient.name,team.name)

passes <- na.omit(passes)

#teams in match

teams <- unique(passes$team.name)

#two ways of presenting data, pass-per-row or aggregated player-wise

teamPasses <- passes[passes$team.name==teams[2],1:2]

weightPasses <- teamPasses %>% 
    group_by(player.name, pass.recipient.name) %>% 
    summarise(weight=n())

#create graphs

net <- graph_from_data_frame(teamPasses, directed = TRUE)

net2 <- graph_from_data_frame(weightPasses, directed = TRUE)
E(net2)$weight <- weightPasses$weight

#scores

betweenness(net)

betweenness(net2)

strength(net, mode = "out")

strength(net2, mode = "out")

1 个答案:

答案 0 :(得分:0)

广告strength()

它们是相同的,只是顶点的顺序不同

all.equal(
  sort(strength(net, mode="out")),
  sort(strength(net2, mode="out"))
)
# TRUE

广告betweenness()

在像下面两个这样的简单图形上进行解释比较容易:

el <- data_frame(
  from = c("A", "B", "A", "D", "A"), 
  to = c("B", "C", "D", "C", "B")
  )
g <- graph_from_data_frame(el)

elw <- el %>%
  count(from, to) %>%
  rename(weight=n)

gw <- graph_from_data_frame(elw) 

plot(g)

enter image description here

gw中只有4个弧(g中有5个弧),弧A-> B的权重为2,其他所有的权重为1。让我们关注B的中间度:

  • 在多重图形g中,它将为2/3,因为:

    1. B仅位于A和C之间的最短路径上
    2. 从A到C共有3条最短路径:A-> D-> C和两条路径A-> B-> C,因为我们可以选择(A ,B)dyad。
    3. 其中两条路径涉及B
  • 在加权图gw中,它将为0,因为:

    1. 路径A-> B-> C的权重为3
    2. 路径A-> D-> C的权重为2
    3. “最短”(最小重量)路径仅一条,并且不涉及B

换句话说,在加权图中,最短路径实际上是“具有最小弧权重之和的路径”。从这个意义上说,您正在寻找球员传球最少的路径,这可能完全不是您所追求的。