In this project, you will be presented (by the instructor) with several networks, which depict various types of inter-organization relationships among a large set of companies. Your objective is to detect potential for alliances, the impact of interlocking boards, and attempt to identify strategic opportunities and challenges. Your instructor will provide further guidance and resources in order for you to successfully complete the analysis and visually present your findings. This assignment is somewhat open ended in the sense that there is no one correct set of strategic decisions that is universally accepted as the best course of action. You will present your conclusions, and back them up with “clever” visualization of your analysis. Your instructor will clarify the full scope of the expected analysis and depth.
Inter-organizational networks within organizations affect the power structure of those organizations and their employee’s work attitudes.
There are two common forms of linkage between inter-organizational relations:
Both of these linkages will be covered in this report.
The data set used in this project is a corporate leadership data set from the Koblenz Network Collection.
“This bipartite network contains person–company leadership information between companies and 20 corporate directors. The data was collected in 1962. Left nodes represent persons and right nodes represent companies. An edge between a person and a company shows that the person had a leadership position in that company.” -http://konect.uni-koblenz.de/networks/brunson_corporate-leadership
This is the code for reading in the data:
# read in the data
raw.data = readChar("out.brunson_corporate-leadership_corporate-leadership",
file.info("out.brunson_corporate-leadership_corporate-leadership")$size)
# split on new lines
raw.data = strsplit(raw.data, "\n")[[1]]
# get rid of beginning comments
raw.data = raw.data[!grepl("%.*", raw.data)]
# get rid of ending spaces
raw.data = sub(" $", "", raw.data)
# split by spaces
raw.data = strsplit(raw.data, " ")
# create the data frame
data = as.data.frame(t(as.data.frame(raw.data)))
rownames(data) = NULL
colnames(data) = c("person", "company")
data$person = paste0("P", data$person)
data$company = paste0("C", data$company)
These are the first few rows of the data frame:
library(knitr)
kable(head(data))
| person | company |
|---|---|
| P1 | C1 |
| P1 | C2 |
| P1 | C3 |
| P1 | C4 |
| P1 | C5 |
| P2 | C1 |
This is a visualization of the network:
library(igraph)
net = graph_from_data_frame(data)
plot(net, edge.arrow.size = 0.4, vertex.label.color = "black", vertex.label.cex = 0.6,
vertex.color = c("#FAD7A0", "#D7BDE2")[1 + grepl("P.*", as_data_frame(net, what = "vertices")$name)])
legend(x = -2.5, y = -1.0, c("Person", "Company"), pt.bg = c("#D7BDE2", "#FAD7A0"), bty = "n",
pch = 21, pt.cex = 2)
“Interlocking boards connect organizations together as board members at one organization may come from multiple other organizations. It can occur unilaterally, such as organization A appointing personnel from organizations B and C to its board. It can also occur in mutuality, such as organizations A, B, and C appointing each other’s personnel to their respective boards” (Social Network Analysis: Methods and Examples, 127).
Companies normally try to hire their board of directors key personnel from other main organizations in the national economy. By doing this they can exercise control over macro-level economic conditions.
A bipartite graph is made from the corporate data set. This way, we can see how many companies share the same employees. The plot below displays the companies in the network connected by shared employees.
V(net)$type = grepl("P.*", as_data_frame(net, what = "vertices")$name)
net.bp = bipartite.projection(net)
plot(net.bp$proj1, edge.arrow.size = 0.4, vertex.label.color = "black",
vertex.label.cex = 0.6, vertex.color = "#FAD7A0")
The degree for each node in this graph is calculated below:
degree(net.bp$proj1)
## C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18
## 11 10 13 23 22 22 13 15 9 3 8 5 6 6 10 10 9 17
## C19 C20 C21 C22 C23 C24
## 9 10 10 9 9 9
The company with the most ties to other companies is C4. This company is connected to 23 other companies in the network based on the fact that they share upper-level employees. C4 would then theoretically have the most information and control over the network’s economy.
“Strategic alliances are another major form of inter-organizational relation, by which organizations join hands to deal with the primary strategic opportunities or challenges they are facing” (Social Network Analysis: Methods and Examples, 127).
Strategic alliances are formed in response to specific challenges or opportunities that the firm or partner firm faces.
Observing the existing cliques in the bipartite network created in the previous section will show any alliances formed by companies in the corporate data set. The ties in this bipartite network are formed by whether the companies share upper-level employees, so the assumption is that cliques of companies formed by these ties are likely to have formed an alliance, or will form one.
Below are the largest cliques in the network:
net.bp.cl = largest_cliques(net.bp$proj1)
net.bp.cl
## [[1]]
## + 9/24 vertices, named, from 04fb10b:
## [1] C4 C5 C6 C18 C20 C7 C9 C11 C19
##
## [[2]]
## + 9/24 vertices, named, from 04fb10b:
## [1] C4 C5 C6 C18 C8 C24 C21 C22 C23
##
## [[3]]
## + 9/24 vertices, named, from 04fb10b:
## [1] C4 C5 C6 C3 C8 C21 C22 C23 C24
Each of these cliques are separately highlighted in red below:
vcol = rep("#FAD7A0", vcount(net.bp$proj1))
vcol[unlist(net.bp.cl[1])] = "#E74C3C"
plot(net.bp$proj1, edge.arrow.size = 0.4, vertex.label.color = "black",
vertex.label.cex = 0.6, vertex.color = vcol)
vcol = rep("#FAD7A0", vcount(net.bp$proj1))
vcol[unlist(net.bp.cl[2])] = "#E74C3C"
plot(net.bp$proj1, edge.arrow.size = 0.4, vertex.label.color = "black",
vertex.label.cex = 0.6, vertex.color = vcol)
vcol = rep("#FAD7A0", vcount(net.bp$proj1))
vcol[unlist(net.bp.cl[3])] = "#E74C3C"
plot(net.bp$proj1, edge.arrow.size = 0.4, vertex.label.color = "black",
vertex.label.cex = 0.6, vertex.color = vcol)
The three cliques shown above would benefit greatly from maintaining the alliances formed between the companies. “Strategic alliances seem to be consequential to a firm’s performance” (Social Network Analysis: Methods and Examples).
Corporate Leadership. (n.d.). Retrieved February 23, 2018, from http://konect.uni-koblenz.de/networks/brunson_corporate-leadership
Yang, S., Zhang, L., & Keller, F. B. (2017). Social network analysis: methods and examples. Los Angeles: Sage.