Skip to contents

stab_interpret() turns the result of any analysis of the package into a plain-language interpretation written for that method: what the tests say, which genotypes are high-yielding and stable, which are specifically adapted and to which environments, which environments discriminate, and what to check before acting on the results. Every statement is computed from the numbers of the result, so the interpretation is reproducible and needs no connection to any service.

Usage

stab_interpret(x, higher_better = TRUE, top = 5L, ...)

# S3 method for class 'stab_interpretation'
print(x, ...)

# S3 method for class 'stab_interpretation'
format(x, style = c("text", "markdown"), width = getOption("width", 80L), ...)

Arguments

x

a result of an analysis of the package (or the ggplot returned by gge_biplot).

higher_better

TRUE (default) when larger values of the trait are better (yield); FALSE for traits such as days to maturity or disease score. The rankings built into the stability indices assume larger is better; with FALSE the interpretation says so.

top

number of genotypes named in lists (default 5).

...

unused.

style

"text" (default) or "markdown".

width

line width of the text (default getOption("width")).

Value

An object of class "stab_interpretation": a list with analysis (the class of the result), title, headline (one sentence), findings, recommendations and cautions (character vectors of sentences), facts (named list of the numbers behind the sentences) and guide (how to read the method). print() shows the text; format(x, style = "markdown") returns it as Markdown.

Details

The interpretation is built from the facts of the result (test results, rankings, classes of genotypes and environments), each a named element of the component facts, and from rules that are specific to the method:

  • analyses of variance (add_anova, indiv_anova): significance and size of environment, genotype and interaction effects; precision (coefficient of variation; values below 10 percent are commonly taken as good and above 20 percent as poor); homogeneity of the error variances before pooling;

  • regression methods (er_anova, stab_reg): slope against 1 and deviations from regression, classifying genotypes as widely adapted (high mean, slope not different from 1, small deviations), responsive to favourable environments (slope above 1), suited to poor environments (slope below 1) or unpredictable (significant deviations);

  • variance and rank methods (stab_measures, stab_par, stab_kang, stab_fox): genotypes that combine a mean above the grand mean with a small stability statistic, and how strongly mean and stability are related;

  • AMMI methods (ammi, ammi_biplot, stab_asv, stab_masv, stab_dist): number of significant interaction axes, genotypes close to the origin, environments with the strongest interaction;

  • GGE biplot (gge_biplot): the findings of the view that was drawn (.which): winning genotypes and mega-environments (which won where), mean against stability on the average environment axis, or discriminating and representative environments; with a caution when the scaling (.svp) does not suit the view;

  • safety-first and superiority methods (stab_eskridge, stab_reliability, stab_superiority): the genotypes with the best lower confidence limits or closest to the best of every environment, and how much stability changes the choice made on the mean;

  • nonparametric methods (stab_huehn): tests of the rank statistics;

  • tables (ge_means, ge_effects): changes of the best genotype across environments, rank correlations, the largest specific adaptations.

The component guide explains how the statistics of the method are read; with facts it is the material for a longer written interpretation (for instance in the application of the companion package).

See also

The analyses: add_anova, stab_reg, ammi, gge_biplot.

Author

Muhammad Yaseen (myaseen208@gmail.com), Kent M. Eskridge (keskridge1@unl.edu)

Examples

data(ge_data)
fit <-
  stab_reg(
      .data = ge_data
    , .y    = Yield
    , .rep  = Rep
    , .gen  = Gen
    , .env  = Env
    )
txt <-
  stab_interpret(
      x             = fit
    , higher_better = TRUE
    , top           = 5
    )
txt
#> Finlay and Wilkinson's regression on the environment index
#> 
#> 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).
#> 
#> Findings:
#> - Widely adapted (mean above average, slope not different from 1, no
#>   significant deviations): V14154 and PR119.
#> - Responsive to favourable environments (slope significantly above 1): DN126
#>   and 122557.
#> - Better in poor environments (slope significantly below 1): BARDC1016.
#> - The regression explains on average 59% of the variation of a genotype over
#>   environments; below 50% for 17 genotype(s), whose response is poorly
#>   described by a line.
#> - Significant deviations from regression (unpredictable response): DN126,
#>   V14170, PR115, 12B.2511, FAISALABAD08 and 50 more.
#> 
#> Recommendations:
#> - Read the slope together with the mean: a slope of 1 is desirable only for a
#>   high-yielding genotype.
#> - Recommend responsive genotypes for favourable, high-input conditions.
#> - Recommend genotypes with low slopes where conditions are often poor.
#> 
#> Cautions:
#> - With few environments the confidence intervals of the slopes are wide.
txt$facts$widely_adapted
#> [1] "V14154" "PR119" 
cat(format(x = txt, style = "markdown"))
#> ## Finlay and Wilkinson's regression on the environment index  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).  ### Findings - Widely adapted (mean above average, slope not different from 1, no   significant deviations): V14154 and PR119. - Responsive to favourable environments (slope significantly above 1): DN126   and 122557. - Better in poor environments (slope significantly below 1): BARDC1016. - The regression explains on average 59% of the variation of a genotype over   environments; below 50% for 17 genotype(s), whose response is poorly   described by a line. - Significant deviations from regression (unpredictable response): DN126,   V14170, PR115, 12B.2511, FAISALABAD08 and 50 more.  ### Recommendations - Read the slope together with the mean: a slope of 1 is desirable only for a   high-yielding genotype. - Recommend responsive genotypes for favourable, high-input conditions. - Recommend genotypes with low slopes where conditions are often poor.  ### Cautions - With few environments the confidence intervals of the slopes are wide.