Clustering – How to Reduce Dimensionality of a Similarity Matrix from Categorical Co-occurrence Counts?

clusteringdimensionality reductionhierarchical clusteringmultidimensional scalingpca

Our example person Azra has assigned (open-ended categories of her own choosing) to a fixed set of 35 items, recorded as logical values (TRUE, FALSE).
We have summarised this data matrix into a co-occurence matrix of items x items, where each cell counts the number of categories that are assigned to both items of the item-pair in question.

We interpret these counts as a measure of categorical similarity between items, and consequently set the diagonal to the maximum possible number of categories, 18 in Azra's case.
We then divide all cells by that maximum to scaled our cells to 1.
(We also need to do this because there are other people than Azra who have less then 18 categories in total, so we want to make them comparable).

Loosely speaking, we assume that our cells in this (scaled) co-occurence matrix can be interpreted as percentages of similarity, where 1 on the diagonal is – naturally – the maximum: item, say but-how with but-how obviously is completely similar.

Here's Azra (sorry):

Azra <- structure(c(1, 0.0555555555555556, 0.111111111111111, 0.222222222222222, 
0.166666666666667, 0, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.166666666666667, 0.166666666666667, 0.222222222222222, 0.333333333333333, 
0.111111111111111, 0.166666666666667, 0.166666666666667, 0.277777777777778, 
0.166666666666667, 0.222222222222222, 0.222222222222222, 0.111111111111111, 
0.111111111111111, 0.166666666666667, 0.333333333333333, 0.111111111111111, 
0.222222222222222, 0.111111111111111, 0.222222222222222, 0.0555555555555556, 
0.166666666666667, 0.111111111111111, 0.111111111111111, 0.111111111111111, 
0.111111111111111, 0.0555555555555556, 0.0555555555555556, 1, 
0.0555555555555556, 0.166666666666667, 0.166666666666667, 0.166666666666667, 
0, 0.111111111111111, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0.222222222222222, 0.0555555555555556, 
0.111111111111111, 0, 0.111111111111111, 0.111111111111111, 0, 
0, 0.111111111111111, 0.222222222222222, 0.111111111111111, 0.166666666666667, 
0.222222222222222, 0.166666666666667, 0.0555555555555556, 0, 
0.111111111111111, 0.111111111111111, 0.166666666666667, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 1, 0.111111111111111, 0.277777777777778, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 
0, 0.0555555555555556, 0.166666666666667, 0.166666666666667, 
0.0555555555555556, 0, 0.166666666666667, 0.166666666666667, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0.222222222222222, 
0.166666666666667, 0.166666666666667, 0.222222222222222, 0.111111111111111, 
0.111111111111111, 0.0555555555555556, 0.0555555555555556, 0.111111111111111, 
0, 0.111111111111111, 0.0555555555555556, 0, 0.0555555555555556, 
0.111111111111111, 0.222222222222222, 0.166666666666667, 0.111111111111111, 
1, 0.166666666666667, 0.0555555555555556, 0.0555555555555556, 
0.166666666666667, 0, 0.166666666666667, 0.111111111111111, 0.111111111111111, 
0.333333333333333, 0.111111111111111, 0.166666666666667, 0.0555555555555556, 
0.277777777777778, 0.166666666666667, 0.166666666666667, 0.166666666666667, 
0.166666666666667, 0.166666666666667, 0.166666666666667, 0.277777777777778, 
0.222222222222222, 0.277777777777778, 0, 0.166666666666667, 0.166666666666667, 
0.166666666666667, 0.111111111111111, 0, 0.111111111111111, 0.111111111111111, 
0.0555555555555556, 0.166666666666667, 0.166666666666667, 0.277777777777778, 
0.166666666666667, 1, 0.166666666666667, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0, 0.0555555555555556, 0.222222222222222, 
0.333333333333333, 0.0555555555555556, 0, 0.222222222222222, 
0.333333333333333, 0.166666666666667, 0.222222222222222, 0.111111111111111, 
0.333333333333333, 0.222222222222222, 0.277777777777778, 0.388888888888889, 
0.222222222222222, 0.333333333333333, 0.111111111111111, 0.111111111111111, 
0.222222222222222, 0, 0.222222222222222, 0.111111111111111, 0, 
0.111111111111111, 0.111111111111111, 0, 0.166666666666667, 0.0555555555555556, 
0.0555555555555556, 0.166666666666667, 1, 0, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0, 
0.111111111111111, 0.0555555555555556, 0.0555555555555556, 0, 
0.0555555555555556, 0.0555555555555556, 0, 0, 0.0555555555555556, 
0.111111111111111, 0.0555555555555556, 0.166666666666667, 0.166666666666667, 
0.166666666666667, 0.0555555555555556, 0, 0.111111111111111, 
0.0555555555555556, 0.111111111111111, 0.0555555555555556, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0, 
1, 0, 0, 0, 0, 0.111111111111111, 0.111111111111111, 0, 0, 0.111111111111111, 
0.111111111111111, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.111111111111111, 0, 0.111111111111111, 0.111111111111111, 0, 
0.111111111111111, 0.0555555555555556, 0.111111111111111, 0.0555555555555556, 
0, 0.0555555555555556, 0.0555555555555556, 0, 0.0555555555555556, 
0, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.166666666666667, 0.0555555555555556, 0.111111111111111, 0, 
1, 0.0555555555555556, 0.166666666666667, 0.166666666666667, 
0, 0.166666666666667, 0.111111111111111, 0.166666666666667, 0, 
0.166666666666667, 0, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.111111111111111, 0.0555555555555556, 0.166666666666667, 0.222222222222222, 
0.166666666666667, 0.0555555555555556, 0.111111111111111, 0.0555555555555556, 
0.166666666666667, 0.111111111111111, 0.0555555555555556, 0.166666666666667, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 
0.0555555555555556, 0, 0.0555555555555556, 0.0555555555555556, 
0, 0.0555555555555556, 1, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.0555555555555556, 
0.111111111111111, 0.0555555555555556, 0.0555555555555556, 0, 
0.0555555555555556, 0, 0.111111111111111, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0, 0.111111111111111, 
0, 0, 0.0555555555555556, 0.111111111111111, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0.166666666666667, 0.166666666666667, 
0.111111111111111, 0, 0.166666666666667, 0, 0.0555555555555556, 
0, 0.166666666666667, 0.0555555555555556, 1, 0.166666666666667, 
0.0555555555555556, 0.166666666666667, 0.111111111111111, 0.222222222222222, 
0, 0.111111111111111, 0.0555555555555556, 0.111111111111111, 
0.111111111111111, 0, 0.111111111111111, 0, 0.166666666666667, 
0.166666666666667, 0.111111111111111, 0.0555555555555556, 0.111111111111111, 
0, 0.222222222222222, 0.0555555555555556, 0.0555555555555556, 
0.166666666666667, 0.0555555555555556, 0.0555555555555556, 0.166666666666667, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0, 0.166666666666667, 0.111111111111111, 
0.166666666666667, 1, 0.0555555555555556, 0.166666666666667, 
0.166666666666667, 0.166666666666667, 0.0555555555555556, 0.166666666666667, 
0, 0.111111111111111, 0.166666666666667, 0, 0.111111111111111, 
0.0555555555555556, 0.166666666666667, 0.166666666666667, 0.111111111111111, 
0.111111111111111, 0.111111111111111, 0, 0.166666666666667, 0.111111111111111, 
0.111111111111111, 0.166666666666667, 0.0555555555555556, 0.111111111111111, 
0.222222222222222, 0.0555555555555556, 0.166666666666667, 0.111111111111111, 
0.222222222222222, 0, 0.111111111111111, 0, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 1, 0.222222222222222, 
0.0555555555555556, 0.0555555555555556, 0.222222222222222, 0.166666666666667, 
0.166666666666667, 0.111111111111111, 0.111111111111111, 0.166666666666667, 
0.166666666666667, 0.166666666666667, 0.277777777777778, 0.0555555555555556, 
0.111111111111111, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0, 
0.0555555555555556, 0.111111111111111, 0.333333333333333, 0.222222222222222, 
0.166666666666667, 0.333333333333333, 0.333333333333333, 0.111111111111111, 
0.111111111111111, 0.166666666666667, 0.0555555555555556, 0.166666666666667, 
0.166666666666667, 0.222222222222222, 1, 0.111111111111111, 0.166666666666667, 
0.166666666666667, 0.388888888888889, 0.222222222222222, 0.222222222222222, 
0.222222222222222, 0.222222222222222, 0.222222222222222, 0.277777777777778, 
0.444444444444444, 0.277777777777778, 0.388888888888889, 0.111111111111111, 
0.222222222222222, 0.166666666666667, 0.166666666666667, 0.222222222222222, 
0.111111111111111, 0.111111111111111, 0.166666666666667, 0.0555555555555556, 
0.111111111111111, 0.0555555555555556, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0, 0.111111111111111, 
0.111111111111111, 0.111111111111111, 0.166666666666667, 0.0555555555555556, 
0.111111111111111, 1, 0.111111111111111, 0.0555555555555556, 
0.111111111111111, 0.0555555555555556, 0.0555555555555556, 0.111111111111111, 
0, 0.111111111111111, 0.0555555555555556, 0.111111111111111, 
0.111111111111111, 0.0555555555555556, 0.111111111111111, 0.0555555555555556, 
0, 0.111111111111111, 0.111111111111111, 0.111111111111111, 0.111111111111111, 
0.0555555555555556, 0.166666666666667, 0.166666666666667, 0.111111111111111, 
0, 0.166666666666667, 0, 0.0555555555555556, 0, 0.166666666666667, 
0.0555555555555556, 0.222222222222222, 0.166666666666667, 0.0555555555555556, 
0.166666666666667, 0.111111111111111, 1, 0, 0.111111111111111, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0, 
0.111111111111111, 0, 0.166666666666667, 0.166666666666667, 0.111111111111111, 
0.0555555555555556, 0.111111111111111, 0, 0.222222222222222, 
0.0555555555555556, 0.0555555555555556, 0.166666666666667, 0.0555555555555556, 
0.0555555555555556, 0.166666666666667, 0, 0.166666666666667, 
0.0555555555555556, 0.222222222222222, 0, 0.111111111111111, 
0, 0.111111111111111, 0, 0.0555555555555556, 0.222222222222222, 
0.166666666666667, 0.0555555555555556, 0, 1, 0.222222222222222, 
0.166666666666667, 0.166666666666667, 0.111111111111111, 0.166666666666667, 
0.111111111111111, 0.222222222222222, 0.222222222222222, 0.0555555555555556, 
0.111111111111111, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0, 0.111111111111111, 0.111111111111111, 0, 0.111111111111111, 
0.166666666666667, 0.277777777777778, 0.111111111111111, 0.166666666666667, 
0.277777777777778, 0.333333333333333, 0.0555555555555556, 0.111111111111111, 
0.166666666666667, 0.0555555555555556, 0.111111111111111, 0.166666666666667, 
0.166666666666667, 0.388888888888889, 0.111111111111111, 0.111111111111111, 
0.222222222222222, 1, 0.111111111111111, 0.333333333333333, 0.222222222222222, 
0.222222222222222, 0.166666666666667, 0.277777777777778, 0.333333333333333, 
0.277777777777778, 0.333333333333333, 0.111111111111111, 0.222222222222222, 
0.166666666666667, 0.111111111111111, 0.222222222222222, 0.111111111111111, 
0.111111111111111, 0.111111111111111, 0.0555555555555556, 0.166666666666667, 
0.111111111111111, 0.0555555555555556, 0.166666666666667, 0.166666666666667, 
0.0555555555555556, 0.111111111111111, 0, 0.0555555555555556, 
0.0555555555555556, 0, 0.166666666666667, 0.222222222222222, 
0.0555555555555556, 0.0555555555555556, 0.166666666666667, 0.111111111111111, 
1, 0.111111111111111, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.166666666666667, 0.222222222222222, 0.0555555555555556, 
0.166666666666667, 0.0555555555555556, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0, 
0.166666666666667, 0.111111111111111, 0.222222222222222, 0, 0.111111111111111, 
0.166666666666667, 0.222222222222222, 0, 0.111111111111111, 0.111111111111111, 
0, 0.111111111111111, 0.111111111111111, 0.111111111111111, 0.222222222222222, 
0.0555555555555556, 0.111111111111111, 0.166666666666667, 0.333333333333333, 
0.111111111111111, 1, 0.166666666666667, 0.166666666666667, 0, 
0.111111111111111, 0.222222222222222, 0.111111111111111, 0.222222222222222, 
0.0555555555555556, 0.222222222222222, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.111111111111111, 
0, 0.222222222222222, 0, 0.111111111111111, 0.166666666666667, 
0.111111111111111, 0, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.111111111111111, 0.166666666666667, 0.111111111111111, 
0.222222222222222, 0.111111111111111, 0.111111111111111, 0.111111111111111, 
0.222222222222222, 0.0555555555555556, 0.166666666666667, 1, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.222222222222222, 
0.111111111111111, 0.166666666666667, 0.0555555555555556, 0.166666666666667, 
0.0555555555555556, 0.111111111111111, 0.0555555555555556, 0.0555555555555556, 
0.111111111111111, 0.111111111111111, 0.0555555555555556, 0.111111111111111, 
0.111111111111111, 0.222222222222222, 0.166666666666667, 0.333333333333333, 
0.0555555555555556, 0.111111111111111, 0.0555555555555556, 0, 
0, 0, 0.166666666666667, 0.222222222222222, 0, 0, 0.166666666666667, 
0.222222222222222, 0.111111111111111, 0.166666666666667, 0.0555555555555556, 
1, 0.166666666666667, 0.222222222222222, 0.222222222222222, 0.166666666666667, 
0.222222222222222, 0.0555555555555556, 0.111111111111111, 0.166666666666667, 
0, 0.166666666666667, 0.0555555555555556, 0, 0.0555555555555556, 
0.0555555555555556, 0.111111111111111, 0.222222222222222, 0.166666666666667, 
0.166666666666667, 0.222222222222222, 0.111111111111111, 0, 0.111111111111111, 
0.111111111111111, 0.111111111111111, 0.111111111111111, 0.166666666666667, 
0.222222222222222, 0.111111111111111, 0.111111111111111, 0.111111111111111, 
0.166666666666667, 0.0555555555555556, 0, 0.0555555555555556, 
0.166666666666667, 1, 0.166666666666667, 0.222222222222222, 0.222222222222222, 
0.111111111111111, 0.111111111111111, 0, 0.111111111111111, 0.111111111111111, 
0.222222222222222, 0.111111111111111, 0.0555555555555556, 0, 
0.166666666666667, 0.166666666666667, 0.111111111111111, 0.166666666666667, 
0.166666666666667, 0.277777777777778, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.111111111111111, 0, 0.0555555555555556, 
0.166666666666667, 0.277777777777778, 0.0555555555555556, 0, 
0.222222222222222, 0.277777777777778, 0.166666666666667, 0.111111111111111, 
0.111111111111111, 0.222222222222222, 0.166666666666667, 1, 0.222222222222222, 
0.111111111111111, 0.222222222222222, 0.111111111111111, 0.111111111111111, 
0.166666666666667, 0, 0.222222222222222, 0.111111111111111, 0, 
0.111111111111111, 0.111111111111111, 0.333333333333333, 0.166666666666667, 
0.222222222222222, 0.277777777777778, 0.388888888888889, 0.166666666666667, 
0.111111111111111, 0.166666666666667, 0.0555555555555556, 0.166666666666667, 
0.166666666666667, 0.277777777777778, 0.444444444444444, 0.111111111111111, 
0.166666666666667, 0.222222222222222, 0.333333333333333, 0.222222222222222, 
0.222222222222222, 0.222222222222222, 0.222222222222222, 0.222222222222222, 
0.222222222222222, 1, 0.277777777777778, 0.388888888888889, 0.111111111111111, 
0.222222222222222, 0.166666666666667, 0.166666666666667, 0.166666666666667, 
0.111111111111111, 0.111111111111111, 0.166666666666667, 0.111111111111111, 
0.111111111111111, 0.222222222222222, 0.111111111111111, 0.222222222222222, 
0.222222222222222, 0.166666666666667, 0, 0.222222222222222, 0.0555555555555556, 
0.166666666666667, 0.166666666666667, 0.0555555555555556, 0.277777777777778, 
0.111111111111111, 0.166666666666667, 0.0555555555555556, 0.277777777777778, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0.166666666666667, 
0.222222222222222, 0.111111111111111, 0.277777777777778, 1, 0.277777777777778, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0.166666666666667, 
0.166666666666667, 0.0555555555555556, 0.166666666666667, 0.111111111111111, 
0.111111111111111, 0.222222222222222, 0.166666666666667, 0.111111111111111, 
0.277777777777778, 0.333333333333333, 0.166666666666667, 0.111111111111111, 
0.166666666666667, 0, 0.111111111111111, 0.111111111111111, 0.111111111111111, 
0.388888888888889, 0.0555555555555556, 0.111111111111111, 0.111111111111111, 
0.333333333333333, 0.166666666666667, 0.222222222222222, 0.166666666666667, 
0.222222222222222, 0.111111111111111, 0.222222222222222, 0.388888888888889, 
0.277777777777778, 1, 0.0555555555555556, 0.222222222222222, 
0.222222222222222, 0.111111111111111, 0.166666666666667, 0.0555555555555556, 
0.111111111111111, 0.166666666666667, 0, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.0555555555555556, 
0.111111111111111, 0.111111111111111, 0.111111111111111, 0.111111111111111, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0.111111111111111, 
0.111111111111111, 0.111111111111111, 0.0555555555555556, 0.0555555555555556, 
1, 0.0555555555555556, 0, 0.0555555555555556, 0.166666666666667, 
0.166666666666667, 0.0555555555555556, 0, 0.111111111111111, 
0.222222222222222, 0, 0.0555555555555556, 0.166666666666667, 
0.111111111111111, 0, 0.111111111111111, 0.111111111111111, 0, 
0.111111111111111, 0.111111111111111, 0.111111111111111, 0.222222222222222, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0.222222222222222, 
0.111111111111111, 0.222222222222222, 0.166666666666667, 0.111111111111111, 
0, 0.111111111111111, 0.222222222222222, 0.111111111111111, 0.222222222222222, 
0.0555555555555556, 1, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.111111111111111, 
0, 0.0555555555555556, 0.111111111111111, 0.111111111111111, 
0.166666666666667, 0.222222222222222, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0, 0, 0, 0.0555555555555556, 0.166666666666667, 
0, 0, 0.0555555555555556, 0.166666666666667, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.166666666666667, 0.111111111111111, 
0.166666666666667, 0.166666666666667, 0.111111111111111, 0.222222222222222, 
0, 0.0555555555555556, 1, 0, 0.111111111111111, 0, 0, 0.0555555555555556, 
0, 0.166666666666667, 0.111111111111111, 0, 0.166666666666667, 
0, 0.0555555555555556, 0, 0.166666666666667, 0.0555555555555556, 
0.222222222222222, 0.166666666666667, 0.0555555555555556, 0.166666666666667, 
0.111111111111111, 0.222222222222222, 0, 0.111111111111111, 0.0555555555555556, 
0.111111111111111, 0.111111111111111, 0, 0.111111111111111, 0, 
0.166666666666667, 0.166666666666667, 0.111111111111111, 0.0555555555555556, 
0.111111111111111, 0, 1, 0.0555555555555556, 0.0555555555555556, 
0.166666666666667, 0.0555555555555556, 0.0555555555555556, 0.111111111111111, 
0.166666666666667, 0.111111111111111, 0.111111111111111, 0.222222222222222, 
0.111111111111111, 0.0555555555555556, 0.111111111111111, 0.111111111111111, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0.222222222222222, 
0.111111111111111, 0.0555555555555556, 0.111111111111111, 0.222222222222222, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0.166666666666667, 
0.222222222222222, 0.222222222222222, 0.166666666666667, 0.166666666666667, 
0.166666666666667, 0.166666666666667, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 1, 0.166666666666667, 0.0555555555555556, 
0, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.0555555555555556, 
0.111111111111111, 0.111111111111111, 0.111111111111111, 0.111111111111111, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0.111111111111111, 
0.111111111111111, 0.111111111111111, 0.0555555555555556, 0.0555555555555556, 
0.166666666666667, 0.0555555555555556, 0, 0.0555555555555556, 
0.166666666666667, 1, 0.0555555555555556, 0, 0.111111111111111, 
0.111111111111111, 0.0555555555555556, 0, 0.111111111111111, 
0, 0.0555555555555556, 0, 0.166666666666667, 0.0555555555555556, 
0.166666666666667, 0.166666666666667, 0, 0.111111111111111, 0.111111111111111, 
0.166666666666667, 0, 0.111111111111111, 0, 0.111111111111111, 
0.111111111111111, 0, 0.0555555555555556, 0, 0.111111111111111, 
0.166666666666667, 0.111111111111111, 0.0555555555555556, 0.111111111111111, 
0, 0.166666666666667, 0.0555555555555556, 0.0555555555555556, 
1, 0.0555555555555556, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.111111111111111, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 
0.0555555555555556, 0.0555555555555556, 0.0555555555555556, 0.166666666666667, 
0.0555555555555556, 0.0555555555555556, 0.111111111111111, 0.111111111111111, 
0.166666666666667, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0, 0.111111111111111, 0.166666666666667, 0.111111111111111, 0.166666666666667, 
0, 0.111111111111111, 0.0555555555555556, 0.0555555555555556, 
0, 0, 0.0555555555555556, 1, 0.0555555555555556, 0.0555555555555556, 
0.0555555555555556, 0.111111111111111, 0.0555555555555556, 0.111111111111111, 
0.0555555555555556, 0, 0.0555555555555556, 0.166666666666667, 
0.0555555555555556, 0.111111111111111, 0.111111111111111, 0.0555555555555556, 
0.166666666666667, 0.0555555555555556, 0.166666666666667, 0.0555555555555556, 
0.111111111111111, 0, 0.0555555555555556, 0.0555555555555556, 
0.166666666666667, 0.111111111111111, 0.111111111111111, 0.111111111111111, 
0, 0.111111111111111, 0, 0, 0.0555555555555556, 0.111111111111111, 
0.111111111111111, 0.0555555555555556, 0.0555555555555556, 1), .Dim = c(35L, 
35L), .Dimnames = structure(list(items = c("but-how", "encyclopedia", 
"alien", "language-of-bees", "bad-hen", "correspondence", "bamboozable", 
"inventions", "gray-hair", "i-we", "the-same", "the-better", 
"cockatoo", "caravan", "comma", "headturner", "crocodile", "countries", 
"level", "morning", "idiom", "lullaby", "riddle", "eating-grandpa", 
"easter-bunny", "alphabet-of-swearing", "guilt", "trouble", "eating-animals", 
"random-poetry", "comparatively", "one-letter", "resistance", 
"conjugation", "censored"), items = c("but-how", "encyclopedia", 
"alien", "language-of-bees", "bad-hen", "correspondence", "bamboozable", 
"inventions", "gray-hair", "i-we", "the-same", "the-better", 
"cockatoo", "caravan", "comma", "headturner", "crocodile", "countries", 
"level", "morning", "idiom", "lullaby", "riddle", "eating-grandpa", 
"easter-bunny", "alphabet-of-swearing", "guilt", "trouble", "eating-animals", 
"random-poetry", "comparatively", "one-letter", "resistance", 
"conjugation", "censored")), .Names = c("items", "items")))

A plot is easily made, but not very informative for us, because it's overwhelming, so we need some kind of summry.

library(ggplot2)
ggplot(data = melt(Azra, varnames = c("x", "y")), mapping = aes(x = x, y = y, fill = value, )) + geom_raster() + scale_fill_continuous(low = "white", high = "steelblue") + theme(axis.text.x = element_text(angle = 90, hjust = 1))

Azra

We want to be able to see which items Azra thought were categorically similar, and if so, what her dimensions (or clusters?) of similarity are.

What would be an appropriate, and informative method to summarise this kind of data?

Specifically, we'd like to be able to use something akin to Horn's Parallel Analysis (from a PCA context) to decide just how many retainable dimensions there are in Azras similarity matrix.

Notes:

  • We've looked at Multidimensional Scaling (MDS), but that seems to require the number of dimensions as an input, though to us, the number of dimensions on which Azra sees similarity is an empirical question.
  • We've looked at Hierarchical Clustering Methods and respective dendrogram plots, but that seems to sit awkwardly with the fact that similarity is a multidimensional phenomenon; item censored might share category A with but-how, but category B with language-of-bees etc.
  • We've looked at Principal Components Analysis (PCA) – mostly because we know it well, so everything starts looking like a nail … – but that doesn't work with a similarity matrix, and even with a (converted) distance matrix only under some conditions about which we're not sure. (We tried anyway, see below).

Here's our rough, hacky and probably just plain wrong/dumb way to do this:
It doesn't give us any indication of how many dimensions we should be retaining.

We first make a distance matrix as per the cosine theorem (?!):

distances <- sqrt(1-Azra)

We then plug that into a (classical?) MDS and plot the result:

md_scaled <- cmdscale(d = distances)
md_scaled <- as.data.frame(md_scaled)
ggplot(data = md_scaled, mapping = aes(x = V1, y = V2, label = rownames(md_scaled))) + geom_text()

azra-mds

Best Answer

Based on @amoeba's suggestion, we have decided to go back to the raw, logical data and conceptualize similarity differently, than we did in the question; we can now use the familiar (and simple) correlation coefficients and Principal Components Analysis (PCA) to summarize the data.

Instead of co-occurence counts, inspired by Barton's Z, we transformed the TRUE FALSE values in the logical raw data into their respective deviations from their expected value. The expected value of some (inductive, participant-defined) category to be assigned TRUE on some item is, simply, the total number of TRUEs on that category, divided by the number of items. We take these simple expected values as a weighted means of the outcomes, because draws of items (category assignments on items) are independent: just because you've assigned some TRUE already doesn't mean you can't assign it some more.

The resulting deviations from their expected TRUE value can be interpreted as a surprisal value of TRUEishness. For example, if some item has a positive value (close to 1), this means that it has been assigned TRUE despite that being very unlikely. We thereby weight more heavily those cells, that are less likely to occur, and thereby carry more informational value. We count TRUE as 1, FALSE as 0, and thereby conveniently get surprisal values scaled between -1 and 1.

We can simply find an item x item correlation matrix, where we correlate the surprisal values of some item-pair over the observed categories, thereby, oddly, treating categories as observations.

This yields an informative correlation matrix, where high values imply an item pair that was surprisingly co-/non-assigned, and a high negative value implies that of the pair, one item had high, the other a low surprisal value, that is, surprising disagreement about some item pair. A low value around 0 implies, appropriately, that the item pair showed no consistent pattern across the observed categories, or that many assignments were unsurprising.

This correlation matrix is also still quite overwhelming, but can be easily reduced in dimensionality using PCA.

Here's what we did:

Azra <- structure(c(FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, 
TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, 
FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, 
TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, 
FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, 
FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, 
TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, 
FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, 
TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, 
TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, 
TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, TRUE, 
FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, 
FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, 
FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, 
TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, 
FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, 
FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, 
FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, 
FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, 
TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, 
FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, 
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, 
FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, 
FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, 
TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, TRUE, 
TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, 
FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, 
FALSE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, 
TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, 
FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, 
TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), .Dim = c(35L, 
18L), .Dimnames = structure(list(items = c("but-how", "encyclopedia", 
"alien", "language-of-bees", "bad-hen", "correspondence", "bamboozable", 
"inventions", "gray-hair", "i-we", "the-same", "the-better", 
"cockatoo", "caravan", "comma", "headturner", "crocodile", "countries", 
"level", "morning", "idiom", "lullaby", "riddle", "eating-grandpa", 
"easter-bunny", "alphabet-of-swearing", "guilt", "trouble", "eating-animals", 
"random-poetry", "comparatively", "one-letter", "resistance", 
"conjugation", "censored"), categories = NULL), .Names = c("items", 
"categories")))    
# Azra has items as rownames, and (user-defined, open-eded columns as colnames), TRUE/FALSE as values

# this is the expected value
ev <- colSums(Azra) / nrow(Azra)

# and here's the surprisal value
surprise <- t(apply(X = Azra, MARGIN = 1, FUN = function(x) {x - ev}))

# now we correlate across observed CATEGORIES for every item pair
correl <- cor(t(surprise))

# and plot the result
library(ggplot2)
library(GGally)
ggcorr(data = correl, label = TRUE)

# and we can use PCA to summarize the overwhelming corrplot
pcares <- prcomp(x = t(surprise), retx = TRUE, center = TRUE, scale. = TRUE)

pcares$sdev^2 
# surprisingly, we may retain up to 8 factors which have eigenvalues > 1, though this may be overstated, and need a parallel analysis to be safe
# we know that some of the underlying surprisal value correlations might just be random chance; after all, 18 observations (categories in this case, over 35 variables is weird and not very reliable)

# we're not yet sure how to do this, but let's say we rotate Quartimax
# we preliminarily opt for Quartimax, because we like items to be *on* the axes
library(GPArotation)
rotated_Azra <- quartimax(pcares$rotation[,1:3])$loadings
# we just retain/rotate 3 PCs to be safe

g <- ggplot(data = as.data.frame(x = rotated_Azra), mapping = aes(x = PC1, 
                                                                  y = PC2,
                                                                  label = rownames(rotated_Azra)))
g + geom_text()

enter image description here

enter image description here

There's a bunch of things we're not sure about yet, especially how to rotate this result, and how to appropriately deflate it (by a parallel analysis or something like that?), but that's all details.

P.S.: A fuller, though preliminary exposition with some context can be found at http://pensieve.maxheld.de/q-cat.html. P.P.S.: The surprisal value is inspired by Barton's Z, full source in Burton, Michael. 1972. “Semantic Dimensions of Occupation Names.” Multidimensional Scaling: Applications in the Behavioral Sciences 2: 55–72.

Related Question