Network Degree of Football Networks
Briefly describe the dataset you are using: identify initial network format, describe and identify the nodes (including how many nodes are in the dataset), what constitutes a tie or edge (including how many ties, whether ties are directed/undirected and weighted/binary, and how to interpret the value of the tie if any), whether or not there are edge attributes that might be used to subset data or stack multiple networks (e.g., tie type, year, etc). Not every feature of the network needs to be described, but description should orient reader to the network data and provide any necessary context for the results provided.
Provide at least two or three noteworthy results, including the relevant statistics and interpretation. For example, explaining which node(s) are most central and which are least central. Discuss (with any related evidence) whether or not the node(s) behavior is in line with or violates expectations based on the degree centrality measure. What do you make of network density and centralization measures?
graph.density(ig, loops = FALSE)
[1] 0.005841598
The network density of the football transfer network is 0.005 which indicates that the 0.5% of all possible ties in the network are made. In this case we would leave the loops value as false because it is not possible for a football team to transfer a player back to their own team.
The degree measures the node centrality or a popularity of a node. It gives a count of the relationships that a node is involved in or the number of edges it has. Given that the goal of these blogs to keep all these important network properties in one place, I begin by creating a dataframe that I’ll keep on building as I create these blogs. I call this data frame transfer.nodes
.
# clubs that have the highest relationships in the network
degree <- transfer.nodes %>%
arrange(desc(degree))
kable(head(degree))
name | degree | indegree | outdegree | |
---|---|---|---|---|
AS Roma | AS Roma | 78 | 39 | 39 |
Genoa CFC | Genoa CFC | 73 | 46 | 27 |
AS Monaco | AS Monaco | 72 | 39 | 33 |
US Sassuolo | US Sassuolo | 70 | 35 | 35 |
Inter Milan | Inter Milan | 68 | 32 | 36 |
Juventus FC | Juventus FC | 68 | 27 | 41 |
# Clubs that recieved the most transfers.
indegree <- transfer.nodes %>%
arrange(desc(indegree))
kable(head(indegree))
name | degree | indegree | outdegree | |
---|---|---|---|---|
Genoa CFC | Genoa CFC | 73 | 46 | 27 |
AS Roma | AS Roma | 78 | 39 | 39 |
AS Monaco | AS Monaco | 72 | 39 | 33 |
ACF Fiorentina | ACF Fiorentina | 66 | 38 | 28 |
AC Milan | AC Milan | 60 | 38 | 22 |
Parma Calcio 1913 | Parma Calcio 1913 | 48 | 38 | 10 |
# Clubs that transferred the most.
outdegree <- transfer.nodes %>%
arrange(desc(outdegree))
kable(head(outdegree))
name | degree | indegree | outdegree | |
---|---|---|---|---|
Juventus FC | Juventus FC | 68 | 27 | 41 |
Sporting CP | Sporting CP | 63 | 24 | 39 |
AS Roma | AS Roma | 78 | 39 | 39 |
FC Barcelona | FC Barcelona | 59 | 21 | 38 |
SL Benfica | SL Benfica | 63 | 25 | 38 |
Inter Milan | Inter Milan | 68 | 32 | 36 |
AS ROMA has the highest degree in our football transfer network. Both the in degree and the out degrees hold a value of 39. This means that 39 transfer of players have left the club and 39 players have come in to the club.This makes me wonder if AS ROMA is a club which might be serving like a starting point for various players to move towards the major football leagues. But there might be better ways to explore that later in the analysis.
Genoa FC has the indegree of 46 which means they’ve had 46 transfers to their club.
Juventus FC has the highest ourdegree which means they’ve transferred 41 players out of the club.
#table(head_of(ig, E(ig)))
# make a basic plot
plot(ig,
vertex.label.color = "black",
edge.color = 'gray77',
vertex.size = 6,
edge.arrow.size = 0.1,
layout = layout_nicely(ig))
#create a histogram of Transfer Indegree
hist(transfer.nodes$indegree, main="Football Transfers: In-degree Distribution", xlab="Players Recieved")
#create a histogram of Transfer Indegree
hist(transfer.nodes$outdegree, main="Football Transfers: Out-degree Distribution", xlab="Players Transferred")
Add Interpretation, check if loops are supposed to be true or false
#get network centralization score: igraph
centr_degree(ig, loops = FALSE, mode="in")$centralization
[1] 0.04733078
centr_degree(ig, loops = FALSE, mode="out")$centralization
[1] 0.04155044