R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

library(igraph)
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
library(igraph)

family <- graph_from_literal(
  Gabriel--Mother--Dad--Brother1--Brother2--Brother3--Brother4--Sister,
  Gabriel--Dad,
  Gabriel--Brother1,
  Gabriel--Brother2,
  Gabriel--Brother3,
  Gabriel--Brother4,
  Gabriel--Sister,
  Mother--Brother1,
  Mother--Brother2,
  Mother--Brother3,
  Mother--Brother4,
  Mother--Sister,
  Dad--Brother1,
  Dad--Brother2,
  Dad--Brother3,
  Dad--Brother4,
  Dad--Sister,
  Brother1--Brother2,
  Brother1--Brother3,
  Brother1--Brother4,
  Brother1--Sister,
  Brother2--Brother3,
  Brother2--Brother4,
  Brother2--Sister,
  Brother3--Brother4,
  Brother3--Sister,
  Brother4--Sister
)

plot(
  family,
  vertex.size = 30,
  vertex.color = "lightblue",
  vertex.label.color = "black",
  vertex.label.cex = 0.8,
  edge.color = "gray",
  main = "Gabriel Velez's Family Network"
)

Scenario

A fitness-apparel brand is launching a new product and can give free samples to only two people. The network below shows who influences whom on social media. Use network metrics to decide who should receive the samples.

library(igraph)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:igraph':
## 
##     as_data_frame, groups, union
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# A social media network around a brand
g_mkt <- graph_from_literal(
  Brand-Ava-Ben-Cara,       # chain of connections
  Brand-Cara,
  Ava-Dan:Eli:Fay,          # Ava is connected to Dan, Eli, and Fay
  Ben-Gus,
  Cara-Hal:Ivy,
  Dan-Eli,
  Fay-Gus,
  Hal-Ivy-Jon,
  Brand-Kim-Jon
)

set.seed(123)  # fixes the layout so the plot looks the same each time
plot(g_mkt, vertex.color = "lightblue", vertex.label.color = "black")

Tasks

Task 1: Visualize the network

Look at the plot above. Who looks most “central” visually? Identify any cliques (tightly connected groups).

Your answer: Ava, Brand, and Cara appear most central because they connect multiple parts of the network. Ava, Dan, and Eli form a clique because they are all connected to one another. Hal and Ivy also form a clique because they are directly connected to each other.

Task 2: Compare centrality measures

Compute degree, closeness, and betweenness, then put the results in one data frame and rank the nodes.

centrality_df <- data.frame(
  person      = V(g_mkt)$name,
  degree      = degree(g_mkt),
  closeness   = round(closeness(g_mkt), 3),
  betweenness = round(betweenness(g_mkt), 2)
)

centrality_df %>% arrange(desc(betweenness))
##       person degree closeness betweenness
## Ava      Ava      5     0.050       25.83
## Cara    Cara      4     0.048       18.17
## Brand  Brand      3     0.050       17.00
## Ben      Ben      3     0.048       13.33
## Kim      Kim      2     0.037        5.00
## Ivy      Ivy      3     0.037        4.50
## Fay      Fay      2     0.036        2.17
## Gus      Gus      2     0.034        1.50
## Jon      Jon      2     0.033        1.50
## Dan      Dan      2     0.034        0.00
## Eli      Eli      2     0.034        0.00
## Hal      Hal      2     0.034        0.00

Your answer: Which people rank highest on each measure? Do the rankings agree? Ava and Cara have high degree centrality because they connect to several people directly. Betweenness centrality identifies people who act as bridges between different parts of the network, while closeness measures how quickly someone can reach others, so the rankings may differ because each metric measures a different type of influence.

Task 3: Choose two seed customers

Which two people should receive free samples? Justify your choice using at least two different metrics. (Hint: is high degree the same as being a bridge?) I would choose Ava and Cara to receive the free samples because both have several direct connections and can spread product awareness. Ava connects with Dan, Eli, and Fay, while Cara connects with Ben, Hal, and Ivy. Their high degree and potential bridging roles could help the fitness-apparel brand reach different groups of customers.