Recipe/Theory/Statistics exploration

From Open Food Facts wiki
Jump to navigation Jump to search

Finding the recipe of a product based on the list of ingredients and nutritional values, is a statistical problem of Linear regression for which a lot of theory exists. The recipe fitting problem is very specific and it is a bit difficult to find the right statistical approach in all the dense wikipedia pages.

Simple regression

We are not used to the terminology used in linear regression statistics, so some translation is needed:

  • dependent variables / observed values (y) - these comparable to a nutrient of the product. Usually there are many values y observed (n dimensions);
  • regressors / independent variable (x) - this is a nutrient in an ingredient. This independent variable kan have multiple dimensions p;
  • regression coefficients (β) - the recipe fraction. In a general situation β can have p values for each observation (making a matrix);
  • error term (ε) - the deviation from the fit for each observation;


This gives the relation:

(1) y = X β + ε

The recipe estimation is much simpler:

  • there is only one product, so only 1 observed value, so n = 1;
  • but also p = 1, as there is only one percentage per ingredient;

This simplifies the relation (1) to a simple multiplication for products with one nutrient. And in that case ε = 0.

Relation (1) could be extended with a term β0, which designates the intercept. In the recipe case this is 0, i.e. if there are no nutrients in the ingredient, then there are also nu nutrients in the product. In a mathematic approach it might be necessary to retain the β0 though.

Multivariate regression

Clearly we need a more complicated approach that supports multiple ingredients and multiple nutrients. The theory that corresponds to this is general multivariate regression. The corresponding formula is:

(2) Y = X B + U

In this formula

  • Y is a matrix observations yij, with i an observation and j an aspect like a nutrient;
  • X is the matrix of the nutrients for each ingredient;
  • B the matrix of the recipe fractions for each obervation;
  • U is a matrix containing the errors, which we will try to minimise;

As we have only one observation, (2) reverts to a simple matrix calculation. And now it corresponds to the formula we have originally. But the multivariate solutions should be used otherwise we cannot support multiple nutrients.

Latent variables

The data used for the recipe estimation is very strange from a statistical point of view: the nutrients of the product are only related to the nutrients of the ingredients through their name. In a linear regression approach we should measure the nutrients of the ingredients before we do the processing and then measure the nutrients of the product. Are there statistical models that support this?

This wikipedia page discusses the difference between latent and observable variables. This seems to fit the recipe problem very well. The observable variables are the nutrients of the product, whereas the latent variables are ingredients. The examples are mostly from social sciences, so it is hard to transpose the recipe problem onto a social science problem.

There are many models classes and methodologies to find and quantify the latent variables. Of all these theories Factor analysis seems most appropriate.

Factor analysis

It is unclear whether Factor analysis is appropriate enough for the recipe problem. Maybe a Measurement error model needs to be developed, which could help with finding better ingredients than Ciqual ingredients. A factor analysis.

One of the assumptions in Factor analysis is that there is a linear combination between the observed variables and the potential factors. This holds for the recipe problem, as the nutrients are clearly related to the ingredients used.

Factor analysis uses a loading matrix, which relates the factors to the observations. In the recipe case this will be the supposed nutrients for each ingredient.