Twitter activity at the MLA conference

The Medical Library Association (MLA) has just held its annual conference in Toronto, Canada. Being based in Australia means that it’s hard for me to attend, but the Twitter stream is a very useful way of keeping up with what’s going on at the conference. I thought I would use it as a test of using the R programming language to conduct some very basic Social Network Analysis (SNA) on the Twitter stream of the conference. See my previous post for a background of my interest in R and SNA.

I used the twitteR package for R to retrieve all the tweets with the hashtag #mlanet16 which had been sent between 13th and 18th May (there were 9,985). Next, the graphTweets package was used to turn these tweets into a data frame which only included all the Twitter accounts which had been included in a mention i.e. an @ message, and/or sent a retweet. This data frame was then converted into a graphml file, which I opened in Gephi, a free data visualisation tool. If you’re interested, the code I used was:

library(twitteR)
library(igraph)
library(graphTweets)
setup_twitter_oauth("API key", "API secret", "access token", "access secret")
tweets <- searchTwitter("#mlanet16", n=15000, lang="en", since="2016-05-13", until="2016-05-18")
tw_df <- twListToDF(tweets)
edges <- getEdges(data = tw_df, tweets = "text", source = "screenName", "retweetCount", "favorited", str.length = 20)
nodes <- getNodes(edges)
g <- graph.data.frame(edges, directed = TRUE, vertices = nodes)
write.graph(g, "F:/mlagraph.graphml", format="graphml")

The raw, unfiltered data looks like this:

MLA complete

Each node represents an individual Twitter account (I’ve left them unlabelled in order not to identify anyone). This is a bit messy and hard to read, so I filtered the data to make the graph easier to interpret. The graph below shows the top nodes based on their “out-degree”, with the larger nodes having a larger out-degree. Out-degree is a measure of the influence of a node, i.e. how many outward ties they have to other nodes.

MLA out-degree

Another filter I applied was in-degree, which is a measure of the number of inward connections that each node has. Nodes with a high in-degree have a high prestige, as other nodes try to connect with them. The in-degree graph looks like this:

MLA in-degree

There are a range of other measures that can be used to filter the data, so I’ll have a play around a bit more. I certainly wouldn’t call myself an expert in R or social network analysis after doing this, but it has been a great introduction to what R can do.

Tinkering with R and Social Network Analysis

My interest in Social Network Analysis (SNA) began when I was studying the Data, Analytics, and Learning MOOC (DALMOOC) through edX a couple of years ago (see my posts from during the course here). During the course it was mentioned that Twitter lends itself to SNA, so I did some fiddling around with analysing the Twitter streams of various library conferences. I used some of the tools that I was introduced to during the DALMOOC, such as Gephi and NodeXL, and managed to produce some graphs. However I put this on the backburner while I focussed on preparing my poster for the EBLIP8 Conference.

Earlier this year, though, I got the urge to start learning more about the R programming language. Although I have absolutely no background in coding or programming (unless you count copying BASIC programs out of a book for my Commodore 128 when I was a kid), I’d heard about the R programming language, and wanted to find out a bit more about it. I came across the free Datacamp course on R and did the first few lessons, but haven’t worked on it for a while now. I started looking around to see if there were any R packages that could do SNA on Twitter data, and I found that there were a few that I could use. There were websites which had some example code which I was able to copy and do some tweaking on (such as this one and this one), and before long I was collecting and analysing my own data.

I still wouldn’t call myself a coder or programmer, but I’m starting to get the hang of using R. It’s pretty easy to use, especially when you’re using code that is freely available and not having to develop your own. In my next post I’ll show some examples of SNA that I prepared based on the tweets sent at the 2016 Medical Library Association conference.

Using some “real” data for social network analysis

This week’s content in the Data, Analytics and Learning MOOC concentrated on some real-world case studies of how social network analysis (SNA) has been used in the study of learning. The studies which were discussed looked at the application of SNA in areas such as learning design, sense of community, creative potential, academic performance, social presence, and MOOCs. The activities we had to complete involved using Gephi and Tableau to analyse and interpret SNA for the study of learning. Seeing that I don’t have access to any data from a Learning Management System, I had to come up with another source of data that I could play with. I decided to use some Twitter data that’s related to a research project that I’m working on at the moment. I used the NodeXL template for Excel to collect the tweets which were sent during a recent conference, and then analysed the network in Gephi and Tableau. Although the data didn’t come from learners in a traditional setting, such as a Learning Management System, I think that a conference is a learning experience, so I think it’s an appropriate source to use for this exercise. This was the first time I’ve used NodeXL, and I found it very easy to use. For ethical and privacy reasons I’ve left the names of the nodes off in each of these visualisations.

This is what the network looks like in Gephi:

screenshot_214311In this representation of the network, each circle represents a Twitter user who retweeted or mentioned another Twitter user. This retweeting and mentioning is represented by the lines connecting the nodes. The darker the colour of the node, the more connections that it has to other nodes in the network i.e. the user sent more retweets and mentions. In SNA this is known as degree centrality. I imported the network data into Tableau to plot some of the measures against each other to try and see if they are any relationships between them. This graph shows the number of followers, the degree centrality, and betweenness centrality (a measure which indicates whether a node is acting as a bridge between distinct communities within the network) for each of the nodes:

Conference tweets 2From this, it looks like (without conducting any statistical analysis) that for this network there is no relationship between the number of followers on Twitter that a network member has, and their degree or betweenness centrality. I can see that combining these two analysis tools (Gephi and Tableau) can be very useful to gain all sorts of insights. I certainly think I’ll be using these tools in some upcoming work that I’ll be doing looking at Twitter networks.

Social Network Analysis with Gephi

The next software package that we were introduced to in the DALMOOC was Gephi, which is an open source tool for conducting social network analysis. I found Gephi an easier tool to use than Tableau, and it was fairly straightforward to load the sample data that was provided and start analysing it.

These were the results of my analysis to determine the density and centrality measures of each dataset :

For the example_1 dataset:

Example_1

For the example_2 dataset:

Example_2

For the CCK11 dataset (Twitter network):

CCK_Twitter

For the CCK11 dataset (blog network):

CCK_blogs

These were the results of using the Giant Component filter, and then determining the modularity for each dataset:

For the example_1 dataset:

Example_1 modularity

For the example_2 dataset:

Example_2 modularity

For the CCK11 dataset (Twitter network):

CCK Twitter modularity

For the CCK11 dataset (blog network):

CCK blogs modularityIt was also fun to play around with the various network representations, and the options for partitioning and highlighting various properties of the network. This is the example_1 network with a few changes made to it: it’s in the Fruchterman Reingold representation, nodes are sized according to betweenness centrality, labels are turned on, and each community is a different colour

Example_1 extra

Here’s the example_2 network with similar changes:

Example_2_extra

And for the CCK dataset (Twitter network):

CCK_Twitter_extra

And finally the CCK dataset (blogs network):

CCK_blogs extraI found these exercises a useful way to get some experience with social network analysis, and I have some ideas of how I could use Gephi in a project that I’m working on.