A. Crine & L. Durand11/14/2018

Categorized/Described napping interpretation with HMFA

What is ‘categorized napping’ and how can ‘categorized napping’ datasets be processed?

As its name suggests, this method groups together two widely used methods: napping and categorization. During a ‘categorized napping’ session, the panelists are first asked to set the N different products on the “tablecloth”, then to create different groups in which they put the products and eventually to describe the groups. Thus, two products with very close coordinates will be put in the same group with the same description. On the contrary, two products with very distant coordinates will be put in two different groups. The panelists have to create at least two groups, on the maximum n-1 groups and mustn’t put in the same group two products that have very distant coordinates on the ‘tablecloth’.

This method is interesting because it completes the information given by the napping results with qualitative description of the products of each judge. It helps to understand what criterion is used by the judges when they set the products but also enable to compare judges (is there a consensus between the judges or not?).

Particularity of the ‘categorized napping’ data

The collected data have a particular structure, described below:

Judge 1 / Judge 2 / Judge k / Judge K
Napping / Cat. / Napping / Cat. / Napping / Cat. / Napping / Cat.
X / Y / X / Y / X / Y / X / Y

This structure is in fact divided in groups and subgroups: for each judge, there is a group of variables in which the first subgroup contains two quantitative variables (coordinates X and Y on the “tablecloth”) and the second subgroup contains one textual qualitative variable (description of the product). This hierarchical structure has to be taken into consideration in the data processing. Indeed, the influence of each subgroup (napping data and categorization data) has to be balanced. This also applies to the groups (here, the judges).

Presentation of the data studied in this example

The data set is made of 8 rows (products: 4 French and 4 Pakistani biscuits) and 54 columns. Load the data set as a text file by clickinghere.

Review of HMFA

To sum up, Hierarchical Multiple Factor Analysis is dedicated to datasets wherevariables are structured according to a hierarchy leading to groups and subgroups of variables. Several sets of groups of variables (continuous or categorical) are therefore simultaneously studied. As a consequence, HMFA can be considered as a MFA of MFAs.

For further information on the HMFA, see the following papers: Hierarchical Multiple Factor Analysis: Application to the comparison of sensory profiles, S. Le Dien and J. Pagès. (

Results with HMFA

The purpose of this analysis is to highlight differences or similarities between the 8 products. The HMFA provides results comparable to MFA. But in the case of HMFA, both partial individuals associated with the different judges and partial individuals associated with the different descriptors are represented.

Partial individuals:

The graph of partial individuals shows each product, seen by either each judge (Level 2: coordinates and words) or each judge-words and judge-coordinates. Here we have the first one which is easier to interpret: (for a better reading, the words have been removed here).

On this graph, one can see that the “star” around every product isn’t very large. It can be interpreted as a certain consensus between the judges; they tend to place the products in a similar way on the “tablecloth”.

Individuals:

On the graph of individuals (simplified here), one can see the products and the words associated to them by each judge. It can help to interpret the sense of the factorial axes and the groups. In our example, on the left of the graph the biscuits are described as dry, crusty whereas the right of the graph is dedicated to “sablé”, and butter flavoured biscuits. The vertical axe seems to represent the strength of the taste, with terms like spicy, cinnamon, lemon... on the top. We can also notice that the French biscuits are down on the graph, whereas the Pakistani products are on the upper part, this might mean that judges make a real difference between the biscuits they know and those they don’t know (all the judges were French).

Groups representation:

The interpretation is comparable to the MFA’s one. A group has high coordinates on the first dimension if it contributes a lot to the first dimension. Two groups have close coordinates if they contribute equally to the dimension. It allows then to compare judges.

In this case, variables named with even numbers (words) contribute the most to the two first dimensions. This is linked to the fact that here the judges have made very little groups (1 or 2 products), the variables words present then a larger variability than the coordinates: they are almost all considered different by the computer. Consequently, the variables “words” are highly linked to all the principal components of the analysis and aren’t therefore very interesting on this graph. The position of the groups “tablecloth” tells us about the “performance” of a judge doing the napping, and what dimensions they chose. The comparison of the judges must be done with these variables rather than the judges (L2.GN points that are biased because of they didn’t manage to group the products properly).

Finally, the HMFA appears as an interesting tool to analyse categorized napping datasets: The graphical outputs will allow you to interpret properly a mix of quantitative and qualitative groups/variables while learning more about the products and the judges who tested them.

Annexe

R script :

# Dataset importation

Brut=read.table("C:/.../.../",sep="\t",dec=",",header=T)

# Dataset removing

Newd=Brut[1:8,1:5]

for( i in 1 : 17){

Newd[,(3*(i+1)+0):(3*(i+1)+2)]=Brut[(i*8+1):(i*8+8),3:5]

}

rownames(Newd)=Newd[,2]

Newd=Newd[,3:dim(Newd)[2]]

for (i in 1:18){

Newd[,3*i]=as.factor(as.character(Newd[,3*i]))

}

# Definition of the hierarchy

Hier=list(rep(c(2,1),18),rep(2,18))

Ty=rep(c("c","n"),18)

# HMFA

Hop=HMFA(X=as.data.frame(Newd),H=Hier,type=Ty)