# Network clustering based on factor scores

I have a clustering problem for the following data (sample from the original):

    Category    Dim1    Dim2    Dim3    Dim4    Dim5
BlogsInd.   -13.11  0.41    0.65    -1.5    -0.79
BlogsInd.   -9.28   -3.35   -0.83   -0.58   -0.33
BlogsNews   -23.61  3.82    -3.09   -1.48   1.72
BlogsNews   -0.44   -1.21   3.3 -5.07   -4.53
BlogsNM 21.21   4.06    -0.05   0.92    -1.06
BlogsNM 2.3 6.78    -1.37   -0.14   2.14
BlogsTech   0.74    1.77    -0.8    -0.02   1.09
BlogsTech   -21.65  -5.15   11.46   -3.32   -1.03
Columns -8.92   -0.49   7.39    0.23    -1.68
Columns -18.45  -1.04   5.27    -0.02   3.32
CommInd.    17.38   -0.44   -4.76   -2.64   -1.46
CommInd.    1.24    1.6 4.92    -0.89   0.02
CommNews    8.31    0.97    -0.97   -2.07   0.41
CommNews    1.27    0.35    4.77    -0.37   -0.83
CommTech    6.22    1.88    -1.3    -0.88   -0.2
CommTech    0.78    0.23    -2.17   0.99    -1.72
Face2Face   3.68    -4.47   11.18   0.89    -0.94
Face2Face   36.55   13.03   -9.9    -1.09   1.02
FBGroups    12.14   5.54    -8.57   -2.84   -1.12
FBGroups    10.37   5.29    4.06    3.94    0.27
FBStatus    10  1.87    0.23    -1.16   0.81
FBStatus    3.04    -3.27   4.69    -2.68   0.08
Interview   11.1    4.48    -0.41   0.14    0.37
Interview   10.41   5.13    4.26    3.22    -1.62
News    -36.32  -2.39   1.24    -0.74   0.87
News    -5.36   0.45    -4.47   5.36    2.54
TalkShows   8.88    2.47    1.96    8.72    -0.77
TalkShows   -10.71  -1.6    -4.18   -0.72   1.35
Tweets  26.21   -1.07   -10.68  -2.71   -2.94
Tweets  16.74   -4.85   -4.17   -2.22   1.19


I am interested in visualising the relationship between the factor levels of first column based on the similarities or differences in their EFA scores. For this purpose, I thought network clustering/ network visualisation could be appropriate. So far I have been able to cluster this data in two ways:

1. Aggregate the factors scores by grouping the data points according to Category variable, create a distance matrix and cluster them, for example, using hclust in R.

2. Apply hclust or k-means to individual data points and cluster them. This will discard the original grouping based on the factor variable, and create a new grouping according to similarity or differences based on the factors scores.

Method 1 creates a nice tree diagram which can be interpreted very easily. However it is not useful because it loses all the variance that is there in the data. For example, there will be some data points in BlogsInd. that are very similar to BlogsNews.

In case of method 2, if hclust is applied, the resulting tree is not interpretable because there are too many data points. In case of k-means, absolute groupings are created (depending on k), and I do not get a visualisation like a tree in hclust.

I imagined that there could be a way to show the relationship of factor levels (in Category) using network clustering/igraph or something similar. However, I do not understand how can I create hundreds of vertices/ links based on Dim1 to Dim5 for 15 nodes (factor levels in Category). Like above two situations, either I can create a network visualisation using the aggregated mean scores (like hclust in 1) or based on individual data points (creating hundreds of nodes and making the interpretation impossible like hclust in 2).

Is it possible to plot 15 nodes as I explained above?