GGE (M6b) {#gge}

Theory of the model

The experimental design used is fully replicated (D1). The GGE model is the same as the AMMI model except that the PCA is done on a matrix centered on the locations: germplasm and interaction effects are merged ^[Note than in PPBstats, as for AMMI, the PCA is done on germplasm and interaction effects + residuals.] [@gauch_statistical_2006][@gauch_statistical_2008][@yan_gge_2007]. The model is based on frequentist statistics (section \@ref(section-freq)).

The GGE model can be written as followed:

$Y_{ijk} = \mu + \theta_{j} + rep_{k}(\theta_{j}) + \sum_{n}^{N} \lambda_{n} \gamma_{in} \omega_{jn} + \varepsilon_{ijk}; \quad \varepsilon_{ijk} \sim \mathcal{N} (0,\sigma^2)$

with,

or, if there is year effect:

$Y_{ijkl} = \mu + \theta_{j} + rep_{k}(\theta_{j}\beta_{l}) +\sum_{n}^{N} \lambda_{n} \gamma_{in} \omega_{jn} + \beta_{l} + \beta_{l}\alpha_{i} + \beta_{l}\theta_{j} + \varepsilon_{ijk}; \quad \varepsilon_{ijk} \sim \mathcal{N} (0,\sigma^2)$

With,

Steps with PPBstats

For GGE analysis, everything is exactly the same than for AMMI analysis except you should settle gxe_analysis = "GGE" in model_GxE. You can follow these steps (Figure \@ref(fig:main-workflow)):

We will not details everything as it the same than AMMI in the code. Of course the calculation is different on the interaction matrix so you'll get different results.

The workflow is therefore :

Format the data

data(data_model_GxE)
data_model_GxE = format_data_PPBstats(data_model_GxE, type = "data_agro")
head(data_model_GxE)

Run the model

out_gge = model_GxE(data_model_GxE, variable = "y1", gxe_analysis = "GGE")

Check and visualize model outputs

The tests to check the model are explained in section \@ref(check-model-freq).

Check the model
out_check_gge = check_model(out_gge)
Visualize outputs
p_out_check_gge = plot(out_check_gge)

Get and visualize mean comparisons

The method to compute mean comparison are explained in section \@ref(mean-comp-check-freq).

Get mean comparisons
out_mean_comparisons_gge = mean_comparisons(out_check_gge, p.adj = "bonferroni")
Visualize mean comparisons
p_out_mean_comparisons_gge = plot(out_mean_comparisons_gge)

Get and visualize biplot

Get biplot
out_biplot_gge = biplot_data(out_check_gge)
Visualize biplot
p_out_biplot_gge = plot(out_biplot_gge)

Compared to AMMI analysis, in the output of p_out_biplot_gge, which_won_where, mean_vs_stability and discrimitiveness_vs_representativeness are displayed.

The description of these following graphs are greatly inspired from @ceccarelli_manual_2012.

biplot = p_out_biplot_gge$biplot

This graph allow to detect location where germplasm (and the interaction) behave better : 'which won where' [@gauch_statistical_2008,@yan_gge_2007]. The germplasms which have the largest value in a sector "win" in the location present in that sector. The information is summarized in the legend of the plot. See ?plot.PPBstats for more details on this plot.

biplot$which_won_where

The closer a given location is next to the averge location (represented by a red circle), the more desirable it is judged on both discrimination and representativeness.

biplot$discrimitiveness_vs_representativeness$discrimitiveness
biplot$discrimitiveness_vs_representativeness$representativeness
biplot$discrimitiveness_vs_representativeness$discrimitiveness_vs_representativeness

Get and vizualise groups of parameters

Get groups of parameters
# First run the models
gge_2 = model_GxE(data_model_GxE, variable = "y2", gxe_analysis = "GGE")
gge_3 = model_GxE(data_model_GxE, variable = "y3", gxe_analysis = "GGE")

# Then check the models
out_check_gge_2 = check_model(gge_2)
out_check_gge_3 = check_model(gge_3)

# Then run the function for germplasm. It can also be done on location or intra germplasm variance
out_parameter_groups = parameter_groups(
  list("y1" = out_check_gge, "y2" = out_check_gge_2, "y3" = out_check_gge_3), 
  "germplasm"
  )
Visualize groups of parameters
p_germplasm_group = plot(out_parameter_groups)

Apply the workflow to several variables

If you wish to apply the AMMI workflow to several variables, you can use the function workflow_gxe() presented in section \@ref{workflow-gxe} with the following code :

vec_variables = c("y1", "y2", "y3")

out = lapply(vec_variables, workflow_gxe, "GGE")
names(out) = vec_variables

out_parameter_groups = parameter_groups(
  list("y1" = out$y1$out_check_gxe, "y2" = out$y2$out_check_gxe, "y3" = out$y3$out_check_gxe), 
  "germplasm" )

p_germplasm_group = plot(out_parameter_groups)


priviere/PPBstats documentation built on May 6, 2021, 1:20 a.m.