1. Data Source

In this independent analysis, I have used the Peer Group Data from Chapter 3. The dataset is an adjacency matrix that details middle school students reported friendship relations in the classroom. The provided matrix is weighted with 1 being the score for “best friends” and 2 being the score for “friends”(Carolan,2014).

2. Research Question

Studies have suggested that friendships and peer relations in middle school students are associated with their overall socio, emotional, moral and cognitive development (Greco & Morris, 2005). Driven by this trajectory of evidences, I got motivated to explore how network analyis can provide insights to how students relate and how network models can assist in understanding how these peers perceive friendships. Therefore main research question guiding this analysis is:

  1. How can the centrality measure be used to identify central actors and describe peer relations in a middle school classroom?

3. Data Analysis

The process for analyzing the data follows through the Data-Intensive Research Workflow presented by (Krumm et al.,2018) which entails wrangling, exploring and modelling. Each code chunk has comments detailing the process.

##Loading Libraries 
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.6     ✓ dplyr   1.0.7
## ✓ 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(readxl)
library(ggraph)
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
## Importing Data 
PeerGroupsDataChapter3b <- read_excel("data/PeerGroupDataChapter3b.xlsx", 
                            col_names = FALSE)
## New names:
## * `` -> ...1
## * `` -> ...2
## * `` -> ...3
## * `` -> ...4
## * `` -> ...5
## * ...
#Naming the rows and columns for the 27 actors 
rownames(PeerGroupsDataChapter3b) <- 1:27
## Warning: Setting row names on a tibble is deprecated.
colnames(PeerGroupsDataChapter3b) <- 1:27

PeerGroupsDataChapter3b
## # A tibble: 27 × 27
##      `1`   `2`   `3`   `4`   `5`   `6`   `7`   `8`   `9`  `10`  `11`  `12`  `13`
##  * <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1     0     2     0     2     2     2     1     2     2     0     0     2     0
##  2     1     0     0     0     2     0     0     0     0     2     2     0     0
##  3     2     0     0     2     0     0     0     2     0     2     0     0     0
##  4     1     0     0     0     0     0     0     0     0     0     0     2     0
##  5     1     2     0     2     0     2     2     2     2     0     2     2     2
##  6     2     0     0     0     1     0     0     0     2     0     2     2     2
##  7     2     0     1     2     0     0     0     0     2     0     0     0     2
##  8     2     0     2     1     2     0     2     0     2     2     1     0     2
##  9     2     0     0     0     0     2     2     0     0     0     2     0     1
## 10     2     1     2     2     2     0     2     2     0     0     1     2     2
## # … with 17 more rows, and 14 more variables: `14` <dbl>, `15` <dbl>,
## #   `16` <dbl>, `17` <dbl>, `18` <dbl>, `19` <dbl>, `20` <dbl>, `21` <dbl>,
## #   `22` <dbl>, `23` <dbl>, `24` <dbl>, `25` <dbl>, `26` <dbl>, `27` <dbl>
#Converting dataframe to matrix class object 
peergroups_matrix <- as.matrix(PeerGroupsDataChapter3b)
#
peergroups_network <- as_tbl_graph(peergroups_matrix, directed = TRUE)
peergroups_network
## # A tbl_graph: 27 nodes and 203 edges
## #
## # A directed simple graph with 2 components
## #
## # Node Data: 27 × 1 (active)
##   name 
##   <chr>
## 1 1    
## 2 2    
## 3 3    
## 4 4    
## 5 5    
## 6 6    
## # … with 21 more rows
## #
## # Edge Data: 203 × 3
##    from    to weight
##   <int> <int>  <dbl>
## 1     1     2      2
## 2     1     4      2
## 3     1     5      2
## # … with 200 more rows

Visual Description of the network

plot(peergroups_network)

Size, Reciprocity and Centralization

In this study, I investigated three sociometric measures inorder to get deeper understanding of friendship ties in the network.

  1. Size
gorder(peergroups_network)
## [1] 27
gsize(peergroups_network)
## [1] 203

In determining the size of the network, the computation indicates that the peer group has a total of 27 nodes (actors) and 203 corresponding edges. Inorder, to study the network and its properties further, I decide to calculate the reciprocity measure. This will provide insightful measure of how these friendship relations in the class are reciprocated. The reciprocity can describe how the relations in the network are balanced and in a certain extent demonstrates validity of these ties.

#calculating reciprocity score
reciprocity (peergroups_network)
## [1] 0.6699507

The score of 0.67 indicates that that 67% of ties are reciprocated.

4. Data Product

#centralization
centr_degree(peergroups_network, mode = "out")
## $res
##  [1] 13  6  4  5 17  7  6 14 13 14 19  8  7  6  2  4  5  4  0  2 12  6  3  1 10
## [26]  3 12
## 
## $centralization
## [1] 0.4415954
## 
## $theoretical_max
## [1] 702
centr_degree(peergroups_network, mode = "in")
## $res
##  [1] 16  7  4 13 13  7 10  8 12  5 10  8  8  7  1  2  6  5  0  4 12  6 11  2 11
## [26]  5 10
## 
## $centralization
## [1] 0.3262108
## 
## $theoretical_max
## [1] 702
peergroups_network <- peergroups_network |>
  activate(nodes) |>
  mutate(degree = centrality_degree(mode = "all"))

peergroups_network
## # A tbl_graph: 27 nodes and 203 edges
## #
## # A directed simple graph with 2 components
## #
## # Node Data: 27 × 2 (active)
##   name  degree
##   <chr>  <dbl>
## 1 1         29
## 2 2         13
## 3 3          8
## 4 4         18
## 5 5         30
## 6 6         14
## # … with 21 more rows
## #
## # Edge Data: 203 × 3
##    from    to weight
##   <int> <int>  <dbl>
## 1     1     2      2
## 2     1     4      2
## 3     1     5      2
## # … with 200 more rows
# sociagram
ggraph(peergroups_network, layout ="stress") +
   geom_edge_link(aes(colour = weight)) +
geom_node_point(aes(size = degree, color = degree)) +
  geom_node_text(aes(filter = degree >= 2, label = name),family = "serif")+
  theme_graph() +
  theme(legend.position = 'none')

The sociogram shows the overall network topology. The light blue edges indicate the “friends” nominations and the darkblue edges reflect the “best friends” nominations. The size of the node indicates the degree measure for each actor.

5. Findings and Discussions

The independent analysis provided foundation information on the relations and ties in this student network. In this process, I have learned the importance of deploying various approches in the wrangling, exploration and modelling phases of network analysis. For example, in studying general properties of the network using the plot function, I noticed that the network has two components with one actor being completely isolated without any ties (19). In studies that aim to align the social relations to students’ peformance, such information can be useful in quickly identifying actors that may be prone to challenges related to peer interaction and overall performance. In answering the research question which is : How can centrality measure be used to identify central actors in the network? In the data visualization that is modeled based on the weight and degree, it can be observed that the actors that have the largest number of vertices are 25, 27, 21. However, we should keep in mind that these interactions are in the level of “friends” since the lines are light blue. Furthermore, from the data product, it can be observed that the students such as 20, even though they have least number of nominations for “friends”, they have the most number of nominations for “best friends”. The degree measure of this network can provide an indication of where control and influence of the ties in this network is placed. As Carolan(2013) explains that, these identified central actors wield a disproportionate amount of influence on the network.

Implications

This basic analysis has provided insightful information about how these middle school students relate in the context of ‘friendships” in the classroom. Since this is a classroom scenario,these ties and relations can be an invaluable resource in studies that seek to align social relations to other factors such as students’ learning outcomes and overall academic performance.

References

Carolan, B. V. (2014). Social network analysis and education: Theory, methods & applications. Sage Publications.

Greco, L. A., & Morris, T. L. (2005). Factors influencing the link between social anxiety and peer acceptance: Contributions of social skills and close friendships during middle childhood. Behavior Therapy, 36(2), 197-205.