The hedonic evaluation test involves asking consumers to :
Regarding samples, the objectives of the hedonic tests are to
Differences of sample regarding the note given by the juges.
The data distribution determines the type of tests that should be used to analyze the data set.
$Y_{ij} = \alpha_i + \beta_j + \varepsilon_{ij}; \quad \varepsilon_{ijkl} \sim \mathcal{N} (0,\sigma^2)$
with $Y_{ij}$ the note from 1 to 9 given by a person to a sample, $\alpha_i$ the person (i.e. assessor) that taste the sample, $\beta_j$ the germplasm tasted, $\varepsilon_{ijkl}$ the residuals.
Then, multiple comparison of mean on germplasm are performed. The aim is to obtain a final ranking based on consumers’ preferences.
Appreciation of sample regarding the descriptors given by the juges.
To do so, Correspondance Analysis (CA) is done on the data with descriptors.
Another objective of the analysis is to determine juges profiles based on the note given and the additional information such as sex, age and organic consumption frequency, etc.
It is done with a Hierarchical Clustering on Principle Components (HCPC) that can be implement to identify groups of juges preferences after a Principal Component Analysis (PCA).
PPBstats
For hedonic analysis, you can follow these steps (Figure \@ref(fig:main-workflow-organo)):
format_data_PPBstats()
plot()
model_hedonic()
check_model()
mean_comparisons()
and vizualise it with plot()
biplot_data()
and visualise it with plot()
data(data_hedonic) head(data_hedonic)
The data frame has the following columns: sample, germplasm, location, juges, note, descriptors. The descriptors must be separated by ";". Any other column can be added as supplementary variables.
Then, you must format your data with format_data_PPBstats()
and type = "data_organo_hedonic"
.
Argument threshold
can be set in order to keep only descriptors that have been cited several time.
For exemple with threshold = 2
, only descriptors cited at least twice are kept.
data_hedonic = format_data_PPBstats(data_hedonic, type = "data_organo_hedonic", threshold = 2) names(data_hedonic)
data_hedonic
is a list of four elements :
data
the data formated to run the anova and the multivariate analysis regardinghead(data_hedonic$data$data_sample)
- sample_mean which gathers for each sample a mean for note and descriptors
head(data_hedonic$data$data_sample_mean)
- juges which gathers for each juge a mean for note
head(data_hedonic$data$data_juges)
var_sup
the supplementary variables used in the multivariate analysisdata_hedonic$var_sup
descriptors
the vector of descriptors cited knowing the threshold applyed when formated the data.data_hedonic$descriptors
First, you can describe the data regarding the note given
p_note = plot(data_hedonic, plot_type = "boxplot", x_axis = "germplasm", in_col = "location", vec_variables = "note" ) p_note
As well as the descriptors for each germplasm for example:
descriptors = data_hedonic$descriptors p_des = plot(data_hedonic, plot_type = "radar", in_col = "germplasm", vec_variables = descriptors ) p_des
To run the model on the dataset, used the function model_hedonic
.
out_hedonic = model_hedonic(data_hedonic)
out_hedonic
is a list with three elements:
model
: the result of the anova run on noteout_hedonic$model anova(out_hedonic$model)
CA
: the result of the correspondance analysis run on the data set with the supplementary variables with FactoMineR::CA
out_hedonic$CA
HCPC
: the result of the correspondane analysis run on the data set with the supplementary variables with FactoMineR::PCA
follow by FactoMineR::HCPC
.
It is a list of three elements:out_hedonic$HCPC$res.pca
out_hedonic$HCPC$res.hcpc
head(out_hedonic$HCPC$clust)
The tests to check the model are explained in section \@ref(check-model-freq).
out_check_hedonic = check_model(out_hedonic)
out_check_hedonic
is list with two elements:
hedonic
which it the same objet as out_hedonic
data_ggplot
a list containing information for ggplot:data_ggplot_residuals
a list containing :data_ggplot_normality
data_ggplot_skewness_test
data_ggplot_kurtosis_test
data_ggplot_shapiro_test
data_ggplot_qqplot
data_ggplot_variability_repartition_pie
data_ggplot_var_intra
Once the computation is done, you can visualize the results with plot()
p_out_check_hedonic = plot(out_check_hedonic)
p_out_check_hedonic
is a list with:
residuals
of the ANOVA model
histogram
: histogram with the distribution of the residuals
r
p_out_check_hedonic$residuals$histogram
qqplot
r
p_out_check_hedonic$residuals$qqplot
points
r
p_out_check_hedonic$residuals$points
variability_repartition
: pie with repartition of SumSq for each factor of the ANOVA model
p_out_check_hedonic$variability_repartition
variance_intra_germplasm
: repartition of the residuals for each germplasm which represent the person assessor variation plus the intra-germplasm variance of the ANOVA model.p_out_check_hedonic$variance_intra_germplasm
CA_composante_variance
: variance caught by each dimension of the CAp_out_check_hedonic$CA_composante_variance
HCPC_composante_variance
: variance caught by each dimension of the PCA previous to the HCPCp_out_check_hedonic$PCA_composante_variance
The method to compute mean comparison are explained in section \@ref(mean-comp-check-freq).
Get mean comparisons with mean_comparisons()
.
out_mean_comparisons_hedonic = mean_comparisons(out_check_hedonic)
out_mean_comparisons_hedonic
is a list of one element for futher ggplot : data_ggplot_LSDbarplot_germplasm
p_out_mean_comparisons_hedonic = plot(out_mean_comparisons_hedonic)
p_out_mean_comparisons_hedonic
is a list of on elements with barplots :
For each element of the list, there are as many graph as needed with nb_parameters_per_plot
parameters per graph.
Letters are displayed on each bar.
Parameters that do not share the same letters are different regarding type I error (alpha) and alpha correction.
The error I (alpha) and the alpha correction are displayed in the title.
germplasm
: mean comparison for germplasmpg = p_out_mean_comparisons_hedonic$germplasm names(pg) pg$`1`
The biplot represents information about the percentages of total variation explained by the two axes. It has to be linked to the total variation caught by the interaction. If the total variation is small, then the biplot is useless. If the total variation is high enought, then the biplot is useful if the two first dimension represented catch enought variation (the more the better).
Get biplot regading samples (CA) and juges (HCPC)
out_biplot_hedonic = biplot_data(out_check_hedonic)
p_out_biplot_hedonic = plot(out_biplot_hedonic)
p_out_biplot_hedonic
is a list of two elements with
CA
biplot where descriptors are represented by a triangle in red and samples are represented by text in blue and point in color refering to the sample.p_out_biplot_hedonic$ca_biplot
HCPC
biplot is a list of two elements : one with the variable ans the additionnal variables and the other with the groups of juges detected by the HCPC
.p_out_biplot_hedonic$hcpc_biplot
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.