Network Measurement

SNA Module 2: Badge

Author

LASER Institute

Published

July 17, 2025

The final activity for each learning module provides space to work with data and to reflect on how the concepts and techniques introduced in each module might apply to your own research.

To earn a badge for each module, you are required to respond to a set of prompts for two parts: 

Part I: Reflect and Plan

Use your institutional library, Google Scholar, or search engine of your choice to locate a research article, presentation, or resource that applies social network analysis to an educational context or topic of interest. More specifically, locate a network study that makes use of network-level structural measures to describe mathematically the network being studied. You are also welcome to select one of the research papers listed in the essential readings that may have piqued your interest.

  1. Provide an APA citation for your selected study.

    • Ma, S., Herman, G. L., West, M., Tomkin, J., & Mestre, J. (2019). Studying STEM faculty communities of practice through social network analysis, The Journal of Higher Education, 90(5), 773-799. https://doi.org/10.1080/00221546.2018.1557100
  2. Were the data collected on the complete, ego, or partial network? Describe the sources of these network data.

    • Complete network - authors defined community of practice as a bounded network

    • sources - faculty in each CoP were asked to identify members of their CoP with whom they: (a) had conversations about teaching, (b) had collaborated on course design, (c) had implemented new instructional strategies

  3. What relations were measured and what instruments were used to measure them?

    • directed, specific types of professional interactions related to teaching

    • a structured survey questionnaire (survey included name-generator quesions

Think about a network that you may be interested in studying, and answer the following questions:

  1. Would your study employ a positional, relational, or event-based approach to specify the network’s boundary?

    • relational approach - i want to understand the friendship ties among peers
  2. What data would you want to collect for this study and how might you go about doing it?

    • multi-item name generator (who in this course you would consider as a close friend, who do you turn to for emotional support related to coursework? who do you spend time with outside of class?)

    • individual attribute data

  3. What relations would you measure and what individual attribute information might you collect?

    • Individual attribute data - demographic and academic variable, social/psychological variable (e.g., belonging, self-efficacy), course-related?

    • focusing on friendship, and this will be defined using multiple sources based on theories

      • emotional closeness (affect)

      • frequency of interaction (behavioral)

      • trust/confidence (cognitive)

  4. How might you approach collecting this data for your study? 

    • in the mid-semester, conduct an online survey (roster-based name generator to avoid recall bias as introductory STEM courses tend to be big)

    • theoretical framing of what really means by friendship (maybe peer influence, social capital)

Part II: Data Product

Using the data from our case study or one of the data sets provided in the data folder, your goal for this module is to create a polished sociogram and write a brief narrative including some network measures to help describe your network. For example, you may be interested in comparing size, density and level of reciprocity of two networks.

Alternatively, you may use your own data set to create a sociogram and calculate network-level measures to describe it. 

I highly recommend creating a new R or Python script to complete this task. When your code is ready to share, use the appropriate code chunk below to share the all the code necessary to reproduce your analysis and create your data product.

# YOUR FINAL R CODE HERE
#using the case study

library(janitor) #for data wrangling

Attaching package: 'janitor'
The following objects are masked from 'package:stats':

    chisq.test, fisher.test
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidygraph)

Attaching package: 'tidygraph'

The following object is masked from 'package:stats':

    filter
library(ggraph)
library(igraph)

Attaching package: 'igraph'

The following object is masked from 'package:tidygraph':

    groups

The following objects are masked from 'package:lubridate':

    %--%, union

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
dlt1_ties <- read_csv("data/dlt1-edges.csv", 
                      col_types = cols(Sender = col_character(), 
                                       Receiver = col_character(), 
                                       `Category Text` = col_skip(), 
                                       `Comment ID` = col_character(), 
                                       `Discussion ID` = col_character())) |>
  clean_names()

dlt1_ties
# A tibble: 2,529 × 9
   sender receiver timestamp    discussion_title             discussion_category
   <chr>  <chr>    <chr>        <chr>                        <chr>              
 1 360    444      4/4/13 16:32 Most important change for y… Group N            
 2 356    444      4/4/13 18:45 Most important change for y… Group D-L          
 3 356    444      4/4/13 18:47 DLT Resources—Comments and … Group D-L          
 4 344    444      4/4/13 18:55 Most important change for y… Group O-T          
 5 392    444      4/4/13 19:13 Most important change for y… Group U-Z          
 6 219    444      4/4/13 19:16 Most important change for y… Group M            
 7 318    444      4/4/13 19:26 Most important change for y… Group M            
 8 4      444      4/4/13 19:44 Most important change for y… Group N            
 9 355    356      4/4/13 20:12 DLT Resources—Comments and … Group D-L          
10 355    444      4/4/13 20:13 Most important change for y… Group D-L          
# ℹ 2,519 more rows
# ℹ 4 more variables: parent_category <chr>, discussion_identifier <chr>,
#   comment_id <chr>, discussion_id <chr>
dlt1_actors <- read_csv("data/dlt1-nodes.csv", 
                   col_types = cols(UID = col_character(), 
                                    Facilitator = col_character(), 
                                    expert = col_character(), 
                                    connect = col_character())) |>
  clean_names()

dlt1_network <- tbl_graph(edges = dlt1_ties,
                          nodes = dlt1_actors,
                          node_key = "uid",
                          directed = TRUE)

ggraph(dlt1_network, layout = "fr") + #Fruchterman-Reingold (FR) object
  geom_edge_link(alpha = .2) + #change the opacity
  geom_node_point(aes(color = experience2, #changing the node characteristic to grade level
                      size = local_size())) +
  theme_graph()

ggraph(dlt1_network, layout = "fr") + #Fruchterman-Reingold (FR) object
  geom_edge_link(alpha = .2) + #change the opacity
  geom_node_point(aes(color = region, 
                      size = local_size())) +
  theme_graph() 

Narrative

  • Nodes represent individual participant (registered users who posted in the discussion forum
  • edges represent peer-to-peer interaction in the discussion forums (directed)
  • node attribute - experience (green nodes representing years of experience more than 20 years are centrally located and large (figure 1)
  • tried running sociograms to compare different node attributes (homophily), understanding power and influence, whether geographic location makes a difference

To receive your SNA Badge, you will need to render this document and publish via a method designated by your instructor such as: Quarto Pub, Posit Cloud, RPubs , GitHub Pages, or other methods. Once you have shared a link to you published document with your instructor and they have reviewed your work, you will be provided a physical or digital version of the badge pictured at the top of this document!

If you have any questions about this badge, or run into any technical issues, don’t hesitate to contact your instructor.