1. PREPARE

Introduction This independent analysis seeks to explore, visualize and compare the nature of interaction between course participants that indicated Networking as one of their goals in the pre-course survey and those who did not. The rationale is based on a simple proposition that since degree centrality is set to measure the number of connections each node has in a network, then the highest count of out_degree measure should be expected from actors that indicated networking as part of their goals in the MOOC-Ed.

Dataset The dataset used for this independent analysis is from a MOOC-Ed called Planning for the Digital Learning Transition in K-12 Schools (DLT 2) which was offered in September 2013 by the Friday Institute (Kellogg et al.,2014)

Research Question The research questions guiding this analysis is: * How is the pattern of collaboration between pre-identified networkers compared to those who are not? * How are the collaboration ties between these two group vary by experience?

2. WRANGLE

Installing Packages and Loading Libraries

#installing packages 
install.packages("tidyverse")
install.packages("ggplot2")
install.packages("igraph") 
install.packages("devtools")
devtools::install_github("ropensci/skimr")
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.6     ✓ dplyr   1.0.8
## ✓ tidyr   1.2.0     ✓ stringr 1.4.0
## ✓ readr   2.1.2     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(tidygraph)
## 
## Attaching package: 'tidygraph'
## The following object is masked from 'package:stats':
## 
##     filter
library(igraph)
## 
## Attaching package: 'igraph'
## The following object is masked from 'package:tidygraph':
## 
##     groups
## The following objects are masked from 'package:dplyr':
## 
##     as_data_frame, groups, union
## The following objects are masked from 'package:purrr':
## 
##     compose, simplify
## The following object is masked from 'package:tidyr':
## 
##     crossing
## The following object is masked from 'package:tibble':
## 
##     as_data_frame
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
library(ggraph)
library(janitor)
## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
library(skimr)
library(ggplot2)

Edges and the attributes of interest:

# Reading edges into r and changing variable types to characters 
dlt2_ties <- read_csv("data/dlt2-edges.csv", 
                      col_types = cols(Sender = col_character(), 
                                       Reciever = col_character(), 
                                       `Category` = col_skip(), 
                                       `CommentID` = col_character(), 
                                       `DiscussionID` = col_character())) |>
  clean_names()

dlt2_ties
## # A tibble: 2,584 × 8
##    sender reciever timestamp title   parent description comment_id discussion_id
##    <chr>  <chr>    <chr>     <chr>   <chr>  <chr>       <chr>      <chr>        
##  1 37     461      9/27/13   Greeti… Group… Please int… 3          1            
##  2 434    434      9/27/13   Sherry… Group… Please int… 4          2            
##  3 302    434      9/27/13   Sherry… Group… Please int… 5          3            
##  4 60     434      9/27/13   Sherry… Group… Please int… 7          3            
##  5 128    434      9/29/13   Sherry… Group… Please int… 38         3            
##  6 158    434      9/30/13   Sherry… Group… Please int… 75         3            
##  7 442    434      10/1/13   Sherry… Group… Please int… 193        3            
##  8 43     245      9/27/13   Planni… Group… What would… 6          4            
##  9 426    245      9/30/13   Planni… Group… What would… 146        4            
## 10 142    245      10/1/13   Planni… Group… What would… 201        4            
## # … with 2,574 more rows
#reading nodes into r and changing variable types to characters 
dlt2_actors <- read_csv("data/dlt2-nodes.csv", 
                      col_types = cols(uid = col_character(), 
                                       facilitator = col_character(), 
                                       `expert` = col_character(),
                                       `connect` = col_character())) |>
  clean_names()

Creating the DLT2 network object

dlt2_network <- tbl_graph (edges = dlt2_ties,
                          nodes = dlt2_actors,
                          node_key = "uid",
                          directed = TRUE)
dlt2_network
## # A tbl_graph: 492 nodes and 2584 edges
## #
## # A directed multigraph with 69 components
## #
## # Node Data: 492 × 13 (active)
##   uid   facilitator role  experience2 experience grades location region country
##   <chr> <chr>       <chr>       <dbl>      <dbl> <chr>  <chr>    <chr>  <chr>  
## 1 1     0           curr…           2         17 gener… IN       Midwe… US     
## 2 2     0           other           1          3 prima… NC       South  US     
## 3 3     0           inst…           2         20 gener… US       South  US     
## 4 4     0           inst…           2         12 middle TX       South  US     
## 5 5     0           other           1          0 gener… CAN      Inter… CA     
## 6 6     0           inst…           1          7 gener… CAN      Inter… CA     
## # … with 486 more rows, and 4 more variables: group <chr>, gender <chr>,
## #   expert <chr>, connect <chr>
## #
## # Edge Data: 2,584 × 8
##    from    to timestamp title   parent  description     comment_id discussion_id
##   <int> <int> <chr>     <chr>   <chr>   <chr>           <chr>      <chr>        
## 1    37   461 9/27/13   Greeti… Group … Please introdu… 3          1            
## 2   434   434 9/27/13   Sherry… Group … Please introdu… 4          2            
## 3   302   434 9/27/13   Sherry… Group … Please introdu… 5          3            
## # … with 2,581 more rows

The DLT2 network has 64 components with 492 actors and 2584 edges.

3. EXPLORE

Starting off the explore phase by getting an overall picture of the network and its components

autograph(dlt2_network)

Exploring Strong and Weak components and the number of actors they contain.

#exploring weak components 
components(dlt2_network, mode = c("weak"))
## $membership
##   [1]  1  2  2  2  3  2  2  2  4  2  2  2  2  2  5  6  2  2  2  2  2  2  2  2  7
##  [26]  2  2  2  2  2  8  2  2  2  2  2  2  2  9  2  2  2  2  2 10  2 11  2  2  2
##  [51]  2  2  2  2  2  2  2 12  2  2  2  2  2  2 13  2  2  2  2  2  2  2  2  2  2
##  [76]  2  2 14 15  2  2  2  2  2 16  2  2  2 17  2  2  2  2  2  2  2  2  2  2  2
## [101]  2  2  2 18 19  2  2  2  2  2  2  2 20  2 21  2  2  2  2  2  2  2  2  2  2
## [126]  2  2  2  2  2  2  2  2  2  2 22  2 23  2  2 24  2  2  2  2 25  2  2  2  2
## [151]  2  2  2  2  2  2  2  2  2  2  2  2 26  2 27  2  2  2  2  2  2  2  2  2 28
## [176]  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2 29  2 30 31  2  2  2  2  2  2
## [201] 32  2  2 33  2  2  2  2  2  2  2  2  2  2  2  2  2  2 34  2  2  2  2  2 35
## [226]  2  2 36  2  2  2  2  2  2  2  2  2 37  2  2  2  2 38  2  2  2 39 40 41  2
## [251]  2 42 27 43  2  2  2  2 44  2 23 45  2  2  2  2  2  2  2  2  2  2  2  2  2
## [276] 46  2  2  2  2  2  2  2  2  2  2  2  2  2 47  2  2  2 48 49  2  2  2  2  2
## [301]  2  2  2  2  2  2  2  2  2  2  2  2  2  2 50  2  2  2  2 51  2  2  2  2 52
## [326]  2 53  2  2 54  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2
## [351]  2 55  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2 56  2  2  2  2  2  2  2
## [376]  2 57  2  2  2  2  2  2  2  2  2  2  2  2 58  2  2  2  2  2  2  2  2  2 59
## [401]  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2 60  2  2  2  2  2  2  2
## [426]  2  2  2  2  2  2  2  2  2  2  2  2 61 62  2  2  2 63 64  2  2  2  2  2  2
## [451]  2  2  2  2  2 65  2  2  2  2  2  2  2  2  2  2  2  2 66  2  2  2 67  2  2
## [476] 68  2  2  2  2  2  2  2  2  2  2 69  2  2  2  2  2
## 
## $csize
##  [1]   1 422   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [20]   1   1   1   2   1   1   1   2   1   1   1   1   1   1   1   1   1   1   1
## [39]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [58]   1   1   1   1   1   1   1   1   1   1   1   1
## 
## $no
## [1] 69

Interestingly, the network has a total of 69 components.One component has 422 members, one has two members and the rest of 67 components have one member each.

components(dlt2_network, mode = c("strong"))
## $membership
##   [1] 245 244 154 241 153 154 154 216 152 154 154 230 242 154 151 150 154 154
##  [19] 154 154 149 154 154 154 148 154 147 154 154 154 146 154 154 154 243 145
##  [37] 143 154 142 154 154 195 154 154 141 154 140 154 239 169 154 154 154 167
##  [55] 224 139 138 137 154 154 166 154 154 136 135 134 133 154 154 154 219 154
##  [73] 132 154 128 127 154 126 125 208 124 154 154 154 123 122 121 154 120 154
##  [91] 119 194 154 154 154 172 213 154 118 154 227 211 193 117 116 154 154 115
## [109] 171 154 154 154 114 154 113 165 154 214 154 112 110 154 234 154 154 154
## [127] 154 154 154 154 164 154 154 154 154 109 154 108 107 106 105 154 238 104
## [145] 103 102 154 154 154 154 101 154 100  99 154 220 154 154  98 154 154 202
## [163]  97  96  95  93 154  92 154 154 154  91 190 154  90 154 154 154 188 154
## [181] 154  89 154 131 154 154 154 154 154 154  88 154  87  86 154 154 154 154
## [199] 163 154  85 225 154  84 162 187 154 154 199  83 161 154 154 154  82 154
## [217] 154 154  81 240 232  80 154 154  79 154 154  78 154  77 160  76 154  75
## [235] 154 154 159  74 154 186 154  94  73 154 154 154  72  71  70 184 154  69
## [253]  95  68 154 185 154  67  66 154  65  64 154 154 154 154 154 154 229 154
## [271] 154 154 154 154  63  62 154  61 204 154 154  60 154 154 154  59 221 154
## [289]  58  57 183 154 233  56  55 154  54 154  53 228 154 154 154 154  52 217
## [307] 129 201 154 154 158  51  50 182  49 154 154 154 130  48 154 154 181 215
## [325]  47 154  46 154 154  45 154 154 154 180 154 154 154 157  44 154 154 154
## [343] 231 154 154  43 154 154  42 203 154  41 156  40 237 236 154 154 191  39
## [361] 154 154  38  37  36 196 154  35 154 189 154 154 154 154 154 168  34 154
## [379] 154 154 154 154 154 154  33 222 154 154 209  32 192  31  30 154  29 154
## [397] 212 154 200  28 154  27 154  26 154  25 154  24 154 155 154 154 154 111
## [415]  23 198 154  22 154 154 154 154 154 170  21 154 179 154 154 154 154  20
## [433] 154 226 178 154 154  19  18 154 210  17  16  15 154  14 154 177 207  13
## [451] 218  12 154 176 154  11 154 154 154 154 144 197 154  10 223 154   9   8
## [469]   7 205 154   6   5 154 235   4 154 175 154 154 154   3 154 154 154 154
## [487]   2   1 206 174 154 173
## 
## $csize
##   [1]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [19]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [37]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [55]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [73]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [91]   1   1   1   1   2   1   1   1   1   1   1   1   1   1   1   1   1   1
## [109]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [127]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [145]   1   1   1   1   1   1   1   1   1 247   1   1   1   1   1   1   1   1
## [163]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [181]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [199]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [217]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [235]   1   1   1   1   1   1   1   1   1   1   1
## 
## $no
## [1] 245

Basic plot of the network to explore the topology

plot(dlt2_network, vertex.color = "green", vertex.size =5, edge.color = "black",  edge.arrow.size = 0.1, vertex.label=NA)

dlt2_network <- dlt2_network |>
  activate(nodes) |>
  mutate(strong_component = group_components(type = "strong"))
as_tibble(dlt2_network)
## # A tibble: 492 × 14
##    uid   facilitator role  experience2 experience grades location region country
##    <chr> <chr>       <chr>       <dbl>      <dbl> <chr>  <chr>    <chr>  <chr>  
##  1 1     0           curr…           2         17 gener… IN       Midwe… US     
##  2 2     0           other           1          3 prima… NC       South  US     
##  3 3     0           inst…           2         20 gener… US       South  US     
##  4 4     0           inst…           2         12 middle TX       South  US     
##  5 5     0           other           1          0 gener… CAN      Inter… CA     
##  6 6     0           inst…           1          7 gener… CAN      Inter… CA     
##  7 7     0           oper…           1          6 gener… RI       North… US     
##  8 8     0           curr…           2         12 middle ME       North… US     
##  9 9     0           other           2         11 gener… VA       South  US     
## 10 10    0           inst…           3         21 gener… WV       South  US     
## # … with 482 more rows, and 5 more variables: group <chr>, gender <chr>,
## #   expert <chr>, connect <chr>, strong_component <int>
dlt2_network |>
  as_tibble() |>
  group_by(strong_component) |>
  summarise(count = n()) |>
  arrange(desc(count))
## # A tibble: 245 × 2
##    strong_component count
##               <int> <int>
##  1                1   247
##  2                2     2
##  3                3     1
##  4                4     1
##  5                5     1
##  6                6     1
##  7                7     1
##  8                8     1
##  9                9     1
## 10               10     1
## # … with 235 more rows

I decided to filter isolates and continue analysis with the strong components only.

dlt2_network |>
  activate(nodes) |>
  filter(strong_component == 1) |>
 autograph()

dlt2_network |>
  as_tibble() |>
  group_by(strong_component) |>
  summarise(count = n()) |>
  arrange(desc(count))
## # A tibble: 245 × 2
##    strong_component count
##               <int> <int>
##  1                1   247
##  2                2     2
##  3                3     1
##  4                4     1
##  5                5     1
##  6                6     1
##  7                7     1
##  8                8     1
##  9                9     1
## 10               10     1
## # … with 235 more rows
clique_num(dlt2_network)
## Warning in clique_num(dlt2_network): At cliques.c:1125 :directionality of edges
## is ignored for directed graphs
## [1] 8
cliques(dlt2_network, min = 8, max = NULL)
## Warning in cliques(dlt2_network, min = 8, max = NULL): At
## igraph_cliquer.c:57 :Edge directions are ignored for clique calculations
## [[1]]
## + 8/492 vertices, from ef8dcfd:
## [1]  23 125 158 183 229 302 361 477
## 
## [[2]]
## + 8/492 vertices, from ef8dcfd:
## [1]  23 119 125 158 183 229 267 302
## 
## [[3]]
## + 8/492 vertices, from ef8dcfd:
## [1]  23 125 158 229 267 302 361 419
## 
## [[4]]
## + 8/492 vertices, from ef8dcfd:
## [1]  23 125 158 183 229 267 302 361
## 
## [[5]]
## + 8/492 vertices, from ef8dcfd:
## [1]  23 125 158 183 302 361 422 477
## 
## [[6]]
## + 8/492 vertices, from ef8dcfd:
## [1]  23 125 158 267 302 361 419 422
## 
## [[7]]
## + 8/492 vertices, from ef8dcfd:
## [1]  23 125 158 183 186 267 361 422
## 
## [[8]]
## + 8/492 vertices, from ef8dcfd:
## [1]  23 125 158 183 267 302 361 422
dlt2_network <- dlt2_network |>
  morph(to_undirected) |>
  activate(nodes) |>
  mutate(sub_group = group_edge_betweenness()) |>
  unmorph()

dlt2_network |>
  as_tibble()
## # A tibble: 492 × 15
##    uid   facilitator role  experience2 experience grades location region country
##    <chr> <chr>       <chr>       <dbl>      <dbl> <chr>  <chr>    <chr>  <chr>  
##  1 1     0           curr…           2         17 gener… IN       Midwe… US     
##  2 2     0           other           1          3 prima… NC       South  US     
##  3 3     0           inst…           2         20 gener… US       South  US     
##  4 4     0           inst…           2         12 middle TX       South  US     
##  5 5     0           other           1          0 gener… CAN      Inter… CA     
##  6 6     0           inst…           1          7 gener… CAN      Inter… CA     
##  7 7     0           oper…           1          6 gener… RI       North… US     
##  8 8     0           curr…           2         12 middle ME       North… US     
##  9 9     0           other           2         11 gener… VA       South  US     
## 10 10    0           inst…           3         21 gener… WV       South  US     
## # … with 482 more rows, and 6 more variables: group <chr>, gender <chr>,
## #   expert <chr>, connect <chr>, strong_component <int>, sub_group <int>
dlt2_network |>
  activate(nodes) |>
  as_tibble() |>
  group_by(sub_group) |>
  summarise(count = n()) |>
  arrange(desc(count))
## # A tibble: 406 × 2
##    sub_group count
##        <int> <int>
##  1         1    43
##  2         2     4
##  3         3     4
##  4         4     3
##  5         5     3
##  6         6     3
##  7         7     3
##  8         8     3
##  9         9     2
## 10        10     2
## # … with 396 more rows

Since the out_degree is a measure of interest in this study, the histogram showing the general distribution of out_degree is insightful.

dlt2_network <- dlt2_network |>
  activate(nodes) |>
  mutate(in_degree = centrality_degree(mode = "in"),
         out_degree = centrality_degree(mode = "out"))
  
dlt2_network |> 
  as_tibble()
## # A tibble: 492 × 17
##    uid   facilitator role  experience2 experience grades location region country
##    <chr> <chr>       <chr>       <dbl>      <dbl> <chr>  <chr>    <chr>  <chr>  
##  1 1     0           curr…           2         17 gener… IN       Midwe… US     
##  2 2     0           other           1          3 prima… NC       South  US     
##  3 3     0           inst…           2         20 gener… US       South  US     
##  4 4     0           inst…           2         12 middle TX       South  US     
##  5 5     0           other           1          0 gener… CAN      Inter… CA     
##  6 6     0           inst…           1          7 gener… CAN      Inter… CA     
##  7 7     0           oper…           1          6 gener… RI       North… US     
##  8 8     0           curr…           2         12 middle ME       North… US     
##  9 9     0           other           2         11 gener… VA       South  US     
## 10 10    0           inst…           3         21 gener… WV       South  US     
## # … with 482 more rows, and 8 more variables: group <chr>, gender <chr>,
## #   expert <chr>, connect <chr>, strong_component <int>, sub_group <int>,
## #   in_degree <dbl>, out_degree <dbl>
dlt2_network |> 
  as_tibble() |>
  ggplot() +
  geom_histogram(aes(x = out_degree))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

dlt2_network |> 
  as_tibble() |>
  skim()
Data summary
Name as_tibble(dlt2_network)
Number of rows 492
Number of columns 17
_______________________
Column type frequency:
character 11
numeric 6
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
uid 0 1 1 3 0 492 0
facilitator 0 1 1 1 0 2 0
role 0 1 5 18 0 13 0
grades 0 1 4 10 0 5 0
location 1 1 2 4 0 62 0
region 0 1 4 13 0 6 0
country 2 1 2 3 0 19 0
group 0 1 2 4 0 4 0
gender 0 1 4 6 0 2 0
expert 0 1 1 1 0 2 0
connect 0 1 1 1 0 2 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
experience2 0 1 1.93 0.78 1 1.00 2.0 3.00 3 ▇▁▇▁▆
experience 0 1 15.73 11.05 0 8.00 15.0 22.00 120 ▇▂▁▁▁
strong_component 0 1 61.75 78.89 1 1.00 1.0 122.25 245 ▇▁▁▁▁
sub_group 0 1 169.45 129.86 1 37.75 160.5 283.25 406 ▇▃▃▃▃
in_degree 0 1 5.25 20.98 0 0.00 1.0 5.00 430 ▇▁▁▁▁
out_degree 0 1 5.25 11.99 0 0.00 1.0 6.00 166 ▇▁▁▁▁
dlt2_network <- dlt2_network |>
  activate(nodes) |>
  mutate(in_degree = centrality_degree(mode = "in"),
         out_degree = centrality_degree(mode = "out"))
  
dlt2_network |> 
  as_tibble()
## # A tibble: 492 × 17
##    uid   facilitator role  experience2 experience grades location region country
##    <chr> <chr>       <chr>       <dbl>      <dbl> <chr>  <chr>    <chr>  <chr>  
##  1 1     0           curr…           2         17 gener… IN       Midwe… US     
##  2 2     0           other           1          3 prima… NC       South  US     
##  3 3     0           inst…           2         20 gener… US       South  US     
##  4 4     0           inst…           2         12 middle TX       South  US     
##  5 5     0           other           1          0 gener… CAN      Inter… CA     
##  6 6     0           inst…           1          7 gener… CAN      Inter… CA     
##  7 7     0           oper…           1          6 gener… RI       North… US     
##  8 8     0           curr…           2         12 middle ME       North… US     
##  9 9     0           other           2         11 gener… VA       South  US     
## 10 10    0           inst…           3         21 gener… WV       South  US     
## # … with 482 more rows, and 8 more variables: group <chr>, gender <chr>,
## #   expert <chr>, connect <chr>, strong_component <int>, sub_group <int>,
## #   in_degree <dbl>, out_degree <dbl>
dlt2_network <- dlt2_network |>
  activate(nodes) |>
  mutate(closeness = centrality_closeness(
  weights = NULL,
  mode = "out",
  normalized = FALSE,
  cutoff = NULL
))
## Warning in closeness(graph = graph, vids = V(graph), mode = mode, weights =
## weights, : At centrality.c:2874 :closeness centrality is not well-defined for
## disconnected graphs
dlt2_network |> 
  as_tibble()
## # A tibble: 492 × 18
##    uid   facilitator role  experience2 experience grades location region country
##    <chr> <chr>       <chr>       <dbl>      <dbl> <chr>  <chr>    <chr>  <chr>  
##  1 1     0           curr…           2         17 gener… IN       Midwe… US     
##  2 2     0           other           1          3 prima… NC       South  US     
##  3 3     0           inst…           2         20 gener… US       South  US     
##  4 4     0           inst…           2         12 middle TX       South  US     
##  5 5     0           other           1          0 gener… CAN      Inter… CA     
##  6 6     0           inst…           1          7 gener… CAN      Inter… CA     
##  7 7     0           oper…           1          6 gener… RI       North… US     
##  8 8     0           curr…           2         12 middle ME       North… US     
##  9 9     0           other           2         11 gener… VA       South  US     
## 10 10    0           inst…           3         21 gener… WV       South  US     
## # … with 482 more rows, and 9 more variables: group <chr>, gender <chr>,
## #   expert <chr>, connect <chr>, strong_component <int>, sub_group <int>,
## #   in_degree <dbl>, out_degree <dbl>, closeness <dbl>

Data Product

dlt2_network |> 
  as_tibble() |>
  ggplot(aes(x= out_degree, fill= facilitator, color=facilitator)) +
  geom_histogram(binwidth=10000, position = "identity")+
  labs(title="Participants with Collaboration Goals Vs Discussion Posts Sent",x="Discussion Posts Sent", y = "Count")+
  facet_grid(. ~ connect) 

The visualization shows the difference between participants who indicated that they were interested in networking and those who did not indicate. This is captured by the binary variable “connect” in the dataset. Based on th

dlt2_network |> 
  as_tibble() |>
  
  ggplot(aes((V(dlt2_network)$experience), V(dlt2_network)$out_degree), fill = facilitator, color = facilitator) + geom_point(aes(size=out_degree), shape=18, color= "palevioletred4", alpha = 1/2)+
  facet_grid(. ~ connect) +
  labs(title="Out_Degree and Experience",
       x="Experience", y = "out_degree")+
  theme_minimal()

This visualization shows a snapshot of discussion forum posts by the two groups with a mapping of experience.

5. COMMUNICATE

Discussions

The main aim of this analysis was to explore how MOOC-Ed participant’s collaboration goals can be reflected in the distribution of degree centrality measure of the MOOC-Ed network. The structure of this discussion will follow through the posed research questions.

  • How is the pattern of collaboration between pre-identified networkers compared to those who are not?

Based on the performed analysis and visualization, it can be observed that participants who had indicated interest in connections had cumulatively lesser number of out_degree score compared to the participants who did not. The visualization reflects the distinction between facilitators and other participants in order to avoid confusion in case the ties of the two groups overlapped.

  • How are the collaboration ties between these two group vary by experience?

The second visualization shows the out_degree based on the experience and it can be interpreted that, participants with the highest scores are relatively more experienced compared to participants whose out_degree scores are below the mean, which is 5. I should also recall that the average years of experience in the DLT2 group is 15 years and the visualization highlights some prominent discussion posts and replies lie right past the mean mark.