Problems with representing and analysing non-network data as a network?

Suppose I have a dataset with 200 observations of 30 categorical variables. The dataset describes websites and different kinds of design features they deploy (or do not deploy).

If I were to convert this into a network format (for example, using the igraph package in R), could I analyse it effectively using social network analysis?

For example, the network could be two-mode: vertices are either observations (websites) or categories of variables. A directed edge between vertex i and vertex j means that website i deployed design feature j.

More specifically, could I use clustering methods (e.g. modularity) instead of, for example, multiple correspondence analysis?

What kinds of fundamental statistical errors might I blunder into using such an approach, if any?

• I wonder what is the gain from modelling non-network data this way. You seem to be asking 'why not?', could you elaborate on the 'why'? – dv_bn Apr 27 '16 at 4:23
• Thanks - this is a good question. Here are two reasons why. (1) The network visualisations of the community clustering is much better at expressing the clustering patterns to non-technical users (e.g. qualitative sociologists). (2) It provides the opportunity to cross-validate and 'sanity check' traditional statistical methods (e.g. multiple correspondence analysis), to see how the results compare/contrast. – timothyjgraham Apr 29 '16 at 3:17
• You are not willing to capture interactions between websites, for instance through clustering of communities of websites that interact with each other. In contrary, you seem to be willing to cluster websites according to the features they have in common using network analysis. In some sense it would be similar to clustering communities of anonymous users that 'follow' music artists according to what artists they follow, and then study the characteristics of these communities. I don't see any problem with that... It should actually provide an insightful visualization of the dataset. – dv_bn Apr 29 '16 at 12:27
• Thanks @dv_bn, this is a positive sign. I will research into this more, and report back any findings for the benefit of other users. – timothyjgraham Apr 30 '16 at 4:16

There is plenty of precedent in general for reinterpreting problems as graph problems in order to obtain a different perspective. Correlation matrices of securities, for instance, can be interpreted as the weighted adjacency matrix of a graph. A common next step is to construct a minimum spanning tree from that graph, which can be used to build qualitative understanding of the market structure. See, for instance, here. Graphs offer several unique tools for analyzing data, with notions like betweenness that don't really have analogues elsewhere.

In your case, the graph would necessarily be bipartite. I don't know much about bipartite graphs specifically, but I do know that standard social network techniques aren't really designed for them. You might instead get better mileage out of website-website or feature-feature similarity matrices analogous to user-user and item-item similarity matrices used in collaborative filtering.

That said, I did find one interesting article that specifically uses bipartite graphs to cluster bivariate categorical data: "Bipartite graph partitioning and data clustering" by He, Ding, and Gu, 2001. (Free on Arxiv) I also found a paper that uses explicit bipartite graph structures for co-clustering: "Co-clustering by bipartite spectral graph partitioning for out-of-tutor prediction" by Trivedi, Pardos, Sárközy, and Heffernan, 2012. (Free) This opens up the possibility that you can apply a general bi-clustering algorithm to your data, which, like collaborative filtering, is well-established and might be more natural in your case.

As for statistical concerns specific to graph analysis, the easiest mistake to make is to forget that graph data is mostly not iid. It is more than hand-waving to conduct standard hypothesis tests on graphs; it is usually outright wrong, and will give you the wrong results. Instead, you need to use more sophisticated and computationally intensive techniques like the quadratic assignment procedure conduct hypothesis tests on graphs.

The problem you plan to analyse can be translated easily into a graph problem, as you and ssdecontrol point out. The most obvious advantage is in terms of visualisation: you will obtain more appealing and intuitive graph visualisations than you would with multiple correspondence analysis. For example, you could use the degree of a feature to represent the size of the node. This would tell you which features are the most represented. Variation of this would use the traffic of individual website to set their node size to get a view of whether the bigger websites in terms of traffic share the same features. Combining the two, you would get a picture that tells you in one look if the websites with high traffic have similar or different features to other high traffic websites and to the rest of your sample of websites. The following blog post have examples that might be helpful in coming up with a visualisation: working with bipartite data in r

This said, @ssdecontrol has a point that most social network analysis tools are geared towards one-mode (or unipartite) graphs. However, there are tools that provide some support for two mode networks. Two R packages come to mind igraph and tnet. However, in the analysis, the question of projection, reducing the two-mode data into one-mode, will arise, most likely to be able to use a specific algorithm only designed for one-mode. When this happens, I have found the following paper useful in thinking about how to approach those problems:

Everett, M. G., & Borgatti, S. P. 2013. The dual-projection approach for two-mode networks. Social Networks, 35(2): 204–210.

Their argument is simple and appealing: if one use both projections from a network (projections on nodes of both types, in your case, feature-feature network and website-website network), the loss of information linked to the projection is limited.