Skip to main content

Tulip vs Firefox Dataset

Firefox data set

Mozilla Labs and the Metrics Team are hosting an Open Data Visualization Competition based on Test Pilot data. (Firefox challenge web site). The data set is composed of two files. The first one is a questionnaire filled by firefox users. That file contains about 4080 users. The second file provides the list of events (for each user) hapeening during one week life of firefox browser. 
Using the Tulip visual analytics software we do provide a analysis framework answering the question "How do people use Firefox?" 

Data Preparation

In order to analyze the proposed data set we first transformed it from its tabular form into a graph based data model. In that graph, entities (nodes) can be of two types, "users" or "survey item". Edges represents weighted relations between these entities.
In the original dataset, there exist several users that do not answer to the survey and the file also contains missing values. To analyze the data, we filtered out users who did not correctly fill in all the fields of the questionnaire and only  considered events for the other users. We also removed from our analysis the users who have no recorded event.
Furthermore, the events dataset is time stamped, in order to ease the analysis, we have aggegated values for each type of events. In the following analysis the aggregation is done for all the period of the evaluation, but it can be reproduced for sub-periods of time with slight changes.
We have chosen a subset of events that seemed to be useful for the analysis task :  
1) Bookmark activity: create (event #9), choose (event #10) and modify (event #11)
2) Downloads activity: download (event #12) 
3) Memory usage : startup (event #1), memory usage (event #19) and number of opened windows and tabs (event #26)

User measures

Using these events we obtain height measures defined for each user U: 
downloads(U)             = events(U, 12) / events(U) 
starts(U)                     = #events(U, 1)  / #events(U) 
bookmark_create(U)  = #events(U, 9)  / #events(U) 
bookmark_modify(U)  = #events(U, 11) / #events(U) 
bookmark_choose(U) = #events(U, 10) / #events(U) 
mem_usage(U)          = sum(event_data2(U, 19)) / #events(U,19) 
tabs(U)                       = sum(event_data2(U, 26)) / #events(U,26) 
wins(U)                       = sum(event_data1(U, 26)) / #events(U,26) 
To enable dimensions comparison but also to define a distance in this 8-dimensional space, we then scaled and standardized these mesures over all users.

Survey data

We built one entity by survey answer item, and we connected entities together if both of them are found in at least one user survey. For each entity or relations we count the users who checked this answer (or this pair of answers).


Visualization of survey item

 When dealing with a dataset like the survey answers, a critical step is to have a good idea of the distribution of the studied population over several attributes.  A simple goal could be to find patterns which garantee the quality of the data or some unexpected correlations which correspond to errors inside survey answers. The sooner the analyst knows it the better. 
In order to perform a bivariate analysis of nominative variables, contingency tables  are often used with correlation measures. However this tool can be time-consuming because of the number of pairs of dimensions to look at.  
We provide here a fast way to visualise relevant informations inside the survey. We compute the Pearson Phi coefficient for each relations between survey items and we use this value to show relevant associations by selecting only the biggest ones. The item is colored according to the question from which it comes from, correlations values are mapped on edges from negative (red) to postive (blue) values.
This visualisation reveals some expected informations : for example people who use Internet for socializing are likely to visit socials networks in order to communicate. 
 Some funny associations appear : young people using internet at school are likely to go visit video content web sites. Notice also that developpers find themselves associated with the highest computer/web skill level.


User behaviour ?

 A univariate analysis of users measures described above suggests a very dense distribution of some variables (memory usage, number of tabs, etc.) around their mean with a non-negligeable number of individuals with high values. Using Tulip and scatter plot matrices we were able to find a linear correlation between tab usage and memory usage. However non linear correlation are present in that dataset. In order to show up these correlation in a single visualization we used the Tulip Self Organizing Map.

Wikipedia definition : A self-organizing map (SOM) is a type of artificial neural network that is trained using unsupervised learning to produce a low-dimensional (typically two-dimensional), discretized representation of the input space of the training samples, called a map. Self-organizing maps are different from other artificial neural networks in the sense that they use a neighborhood function to preserve the topological properties of the input space. In the figure 2, one can easily find interesting behaviour. For instance, people with a high memory usage are those who use many tabs and seldomly restart Firefox. Fig.2, the red halo in the log_memory sub SOM is at the same position in the map of the log_tabs sub view when there is a blue halo in the log_start sub_view in that region of the map. One other interesting behaviour is that people that use a lot of table are not the ones who use bookmarks. In fact, it seems that tabs can replace bookmarks and then we weren't surprised to find that information in our map. Many other behaviours can be seen in that visualization. For instance, the number of extension and the number of downloads seems to be correlated with memory usage.

Aggregating behaviours

To detect clusters of Firefox users, we used the MCL Algorithm. That algorithm allows to cluster elements according to a similarity measure using spectral analysis method. We applied MCL on the user data set where the distance between two elements was the euclidean distance in 8-dimensionals space defined above.

In the figure one can see that at the first level we displat a star plot visualization that summarizes the behaviour of aggreagted elements. When zooming in, a smooth animation is performed to show up individual elements of the focused cluster.