\[
\newcommand{\mY}{\mathbf{Y}}
\newcommand{\mZ}{\mathbf{Z}}
\newcommand{\mX}{\mathbf{X}}
\newcommand{\mU}{\mathbf{U}}
\newcommand{\mV}{\mathbf{V}}
\newcommand{\mD}{\mathbf{D}}
\newcommand{\vg}{\boldsymbol{\gamma}}
\newcommand{\vd}{\boldsymbol{\delta}}
\newcommand{\ybar}{\bar{y}}
\newcommand{\vgs}{\mathbf{g}}
\newcommand{\ves}{\mathbf{e}}
\newcommand{\va}{\mathbf{a}}
\newcommand{\vx}{\mathbf{x}}
\]
Abstract
stab_interpret() turns every result into a headline, findings, recommendations and cautions, computed from the numbers of that result. This vignette shows how it works and how to use its parts in a report.
The parts of an interpretation
fit <-
stab_reg(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
)
txt <-
stab_interpret(
x = fit
, higher_better = TRUE
, top = 5
)
names(txt)
[1] "analysis" "title" "headline" "findings"
[5] "recommendations" "cautions" "facts" "guide"
[1] "Slopes range from 0.09 to 1.71; 2 genotype(s) combine a mean above average with a slope close to 1 (V14154 and PR119)."
facts holds the numbers and lists behind every sentence, so a statement can be checked or reused; guide says how the statistics of the method are read.
Specific to each method
The sentences differ by method: for a regression they speak of slopes and deviations, for AMMI of axes and scores, for the GGE biplot of winners and mega-environments:
am <-
ammi(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
)
stab_interpret(
x = am
, higher_better = TRUE
, top = 3
)$headline
[1] "AMMI8: 8 interaction axes are significant; the first two axes explain 20.1% and 17.3% of the interaction."
p <-
gge_biplot(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
, .which = "which-won-where"
, .svp = "symmetric"
)
stab_interpret(
x = p
, higher_better = TRUE
, top = 3
)$headline
[1] "The biplot shows 45.1% of G + GE; 5 winning genotype(s) divide the environments into 5 sector(s) with environments."
[1] "AMMI: additive genotype and environment effects plus principal components of the interaction, each tested (Gollob's F). The number of significant axes chooses the model (AMMI1, AMMI2, ...). Scores near zero = stable; genotype and environment scores of the same sign = positive interaction."
Traits where lower is better
gm <-
ge_means(
.data = ge_data
, .y = Yield
, .gen = Gen
, .env = Env
)
stab_interpret(
x = gm
, higher_better = FALSE
, top = 3
)$headline
[1] "9 different genotype(s) are best in the 11 environments; the best overall, SD1013, is best in 3 of them."
In a report
format() returns Markdown that can be pasted into a Quarto or R Markdown report:
## AMMI analysis
AMMI8: 8 interaction axes are significant; the first two axes explain 20.1%
and 17.3% of the interaction.
### Findings
- The interaction is significant (p < 0.001).
- Genotypes with a mean above average and the smallest first-axis scores
(stable): NIBGE GANDUM3, PR119 and V14154.
- Environments with the strongest interaction (largest first-axis scores):
Gujranwala, FSD and KSK; the weakest: FSDR, Sahiwal and Khanewal.
- Genotypes and environments with first-axis scores of the same sign interact
positively (the genotype does better there than its mean predicts).
### Recommendations
- Use AMMI8 for predictions and the stability indices (stab_asv(),
stab_masv() with .m = 8).
- Look at the AMMI1 biplot (plot(x, which = "ammi1")) to see mean and
interaction together.
### Cautions
- The first two axes explain less than half of the interaction; biplots show
it only partly.
Summary
The interpretation is a starting point: it states what the numbers show and where to be careful. Decisions on recommendations still need the breeder’s knowledge of the environments and of more than one season.
References
Becker, H. C. and Leon, J. (1988). Stability analysis in plant breeding. Plant Breeding, 101(1), 1–23.